New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13463 for NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/TOP/PISCES/P4Z/p4zmicro.F90 – NEMO

Ignore:
Timestamp:
2020-09-14T17:40:34+02:00 (4 years ago)
Author:
andmirek
Message:

Ticket #2195:update to trunk 13461

Location:
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@13382        sette 
  • NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/TOP/PISCES/P4Z/p4zmicro.F90

    r10374 r13463  
    1717   USE p4zprod         ! production 
    1818   USE iom             ! I/O manager 
    19    USE prtctl_trc      ! print control for debugging 
     19   USE prtctl          ! print control for debugging 
    2020 
    2121   IMPLICIT NONE 
     
    4242   REAL(wp), PUBLIC ::   epshermin   !: minimum growth efficiency for grazing 1 
    4343 
     44   !! * Substitutions 
     45#  include "do_loop_substitute.h90" 
    4446   !!---------------------------------------------------------------------- 
    4547   !! NEMO/TOP 4.0 , NEMO Consortium (2018) 
     
    4951CONTAINS 
    5052 
    51    SUBROUTINE p4z_micro( kt, knt ) 
     53   SUBROUTINE p4z_micro( kt, knt, Kbb, Krhs ) 
    5254      !!--------------------------------------------------------------------- 
    5355      !!                     ***  ROUTINE p4z_micro  *** 
     
    5961      INTEGER, INTENT(in) ::   kt    ! ocean time step 
    6062      INTEGER, INTENT(in) ::   knt   ! ???  
     63      INTEGER, INTENT(in) ::   Kbb, Krhs  ! time level indices 
    6164      ! 
    6265      INTEGER  :: ji, jj, jk 
     
    6467      REAL(wp) :: zgraze  , zdenom, zdenom2 
    6568      REAL(wp) :: zfact   , zfood, zfoodlim, zbeta 
    66       REAL(wp) :: zepsherf, zepshert, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 
     69      REAL(wp) :: zepsherf, zepshert, zepsherv, zepsherq 
     70      REAL(wp) :: zgrarsig, zgraztotc, zgraztotn, zgraztotf 
    6771      REAL(wp) :: zgrarem, zgrafer, zgrapoc, zprcaca, zmortz 
    6872      REAL(wp) :: zrespz, ztortz, zgrasrat, zgrasratn 
    6973      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7074      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
    71       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo 
    72       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zw3d, zzligprod 
     75      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo, zzligprod 
    7376      CHARACTER (len=25) :: charout 
    7477      !!--------------------------------------------------------------------- 
     
    7679      IF( ln_timing )   CALL timing_start('p4z_micro') 
    7780      ! 
    78       IF (ln_ligand) THEN 
    79          ALLOCATE( zzligprod(jpi,jpj,jpk) ) 
    80          zzligprod(:,:,:) = 0._wp 
    81       ENDIF 
    82       ! 
    83       DO jk = 1, jpkm1 
    84          DO jj = 1, jpj 
    85             DO ji = 1, jpi 
    86                zcompaz = MAX( ( trb(ji,jj,jk,jpzoo) - 1.e-9 ), 0.e0 ) 
    87                zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
    88  
    89                !  Respiration rates of both zooplankton 
    90                !  ------------------------------------- 
    91                zrespz = resrat * zfact * trb(ji,jj,jk,jpzoo) / ( xkmort + trb(ji,jj,jk,jpzoo) )  & 
    92                   &   + resrat * zfact * 3. * nitrfac(ji,jj,jk) 
    93  
    94                !  Zooplankton mortality. A square function has been selected with 
    95                !  no real reason except that it seems to be more stable and may mimic predation. 
    96                !  --------------------------------------------------------------- 
    97                ztortz = mzrat * 1.e6 * zfact * trb(ji,jj,jk,jpzoo) * (1. - nitrfac(ji,jj,jk)) 
    98  
    99                zcompadi  = MIN( MAX( ( trb(ji,jj,jk,jpdia) - xthreshdia ), 0.e0 ), xsizedia ) 
    100                zcompaph  = MAX( ( trb(ji,jj,jk,jpphy) - xthreshphy ), 0.e0 ) 
    101                zcompapoc = MAX( ( trb(ji,jj,jk,jppoc) - xthreshpoc ), 0.e0 ) 
    102                 
    103                !     Microzooplankton grazing 
    104                !     ------------------------ 
    105                zfood     = xprefn * zcompaph + xprefc * zcompapoc + xprefd * zcompadi 
    106                zfoodlim  = MAX( 0. , zfood - min(xthresh,0.5*zfood) ) 
    107                zdenom    = zfoodlim / ( xkgraz + zfoodlim ) 
    108                zdenom2   = zdenom / ( zfood + rtrn ) 
    109                zgraze    = grazrat * xstep * tgfunc2(ji,jj,jk) * trb(ji,jj,jk,jpzoo) * (1. - nitrfac(ji,jj,jk)) 
    110  
    111                zgrazp    = zgraze  * xprefn * zcompaph  * zdenom2  
    112                zgrazm    = zgraze  * xprefc * zcompapoc * zdenom2  
    113                zgrazsd   = zgraze  * xprefd * zcompadi  * zdenom2  
    114  
    115                zgrazpf   = zgrazp  * trb(ji,jj,jk,jpnfe) / (trb(ji,jj,jk,jpphy) + rtrn) 
    116                zgrazmf   = zgrazm  * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 
    117                zgrazsf   = zgrazsd * trb(ji,jj,jk,jpdfe) / (trb(ji,jj,jk,jpdia) + rtrn) 
    118                ! 
    119                zgraztotc = zgrazp  + zgrazm  + zgrazsd  
    120                zgraztotf = zgrazpf + zgrazsf + zgrazmf  
    121                zgraztotn = zgrazp * quotan(ji,jj,jk) + zgrazm + zgrazsd * quotad(ji,jj,jk) 
    122  
    123                ! Grazing by microzooplankton 
    124                zgrazing(ji,jj,jk) = zgraztotc 
    125  
    126                !    Various remineralization and excretion terms 
    127                !    -------------------------------------------- 
    128                zgrasrat  = ( zgraztotf + rtrn ) / ( zgraztotc + rtrn ) 
    129                zgrasratn = ( zgraztotn + rtrn ) / ( zgraztotc + rtrn ) 
    130                zepshert  =  MIN( 1., zgrasratn, zgrasrat / ferat3) 
    131                zbeta     = MAX(0., (epsher - epshermin) ) 
    132                zepsherf  = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
    133                zepsherv  = zepsherf * zepshert  
    134  
    135                zgrafer   = zgraztotc * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
    136                zgrarem   = zgraztotc * ( 1. - zepsherv - unass ) 
    137                zgrapoc   = zgraztotc * unass 
    138  
    139                !  Update of the TRA arrays 
    140                !  ------------------------ 
    141                zgrarsig  = zgrarem * sigma1 
    142                tra(ji,jj,jk,jppo4) = tra(ji,jj,jk,jppo4) + zgrarsig 
    143                tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + zgrarsig 
    144                tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zgrarem - zgrarsig 
    145                ! 
    146                IF( ln_ligand ) THEN 
    147                   tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + (zgrarem - zgrarsig) * ldocz 
    148                   zzligprod(ji,jj,jk) = (zgrarem - zgrarsig) * ldocz 
    149                ENDIF 
    150                ! 
    151                tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zgrarsig 
    152                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgrafer 
    153                zfezoo(ji,jj,jk)    = zgrafer 
    154                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zgrapoc 
    155                prodpoc(ji,jj,jk)   = prodpoc(ji,jj,jk) + zgrapoc 
    156                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zgraztotf * unass 
    157                tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig 
    158                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig 
    159                !   Update the arrays TRA which contain the biological sources and sinks 
    160                !   -------------------------------------------------------------------- 
    161                zmortz = ztortz + zrespz 
    162                tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) - zmortz + zepsherv * zgraztotc  
    163                tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgrazp 
    164                tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazsd 
    165                tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgrazp  * trb(ji,jj,jk,jpnch)/(trb(ji,jj,jk,jpphy)+rtrn) 
    166                tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazsd * trb(ji,jj,jk,jpdch)/(trb(ji,jj,jk,jpdia)+rtrn) 
    167                tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazsd * trb(ji,jj,jk,jpdsi)/(trb(ji,jj,jk,jpdia)+rtrn) 
    168                tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazsd * trb(ji,jj,jk,jpdsi)/(trb(ji,jj,jk,jpdia)+rtrn) 
    169                tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zgrazpf 
    170                tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazsf 
    171                tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zmortz - zgrazm 
    172                prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zmortz 
    173                conspoc(ji,jj,jk) = conspoc(ji,jj,jk) - zgrazm 
    174                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + ferat3 * zmortz - zgrazmf 
    175                ! 
    176                ! calcite production 
    177                zprcaca = xfracal(ji,jj,jk) * zgrazp 
    178                prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    179                ! 
    180                zprcaca = part * zprcaca 
    181                tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprcaca 
    182                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * zprcaca 
    183                tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) + zprcaca 
    184             END DO 
    185          END DO 
    186       END DO 
    187       ! 
    188       IF( lk_iomput ) THEN 
    189          IF( knt == nrdttrc ) THEN 
    190            ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    191            IF( iom_use( "GRAZ1" ) ) THEN 
    192               zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    193               CALL iom_put( "GRAZ1", zw3d ) 
    194            ENDIF 
    195            IF( iom_use( "FEZOO" ) ) THEN 
    196               zw3d(:,:,:) = zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
    197               CALL iom_put( "FEZOO", zw3d ) 
    198            ENDIF 
    199            IF( iom_use( "LPRODZ" ) .AND. ln_ligand )  THEN 
    200               zw3d(:,:,:) = zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
    201               CALL iom_put( "LPRODZ"  , zw3d ) 
    202            ENDIF 
    203            DEALLOCATE( zw3d ) 
    204          ENDIF 
    205       ENDIF 
    206       ! 
    207       IF (ln_ligand)  DEALLOCATE( zzligprod ) 
    208       ! 
    209       IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
     81      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     82         zcompaz = MAX( ( tr(ji,jj,jk,jpzoo,Kbb) - 1.e-9 ), 0.e0 ) 
     83         zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
     84 
     85         !  Respiration rates of both zooplankton 
     86         !  ------------------------------------- 
     87         zrespz = resrat * zfact * tr(ji,jj,jk,jpzoo,Kbb) / ( xkmort + tr(ji,jj,jk,jpzoo,Kbb) )  & 
     88            &   + resrat * zfact * 3. * nitrfac(ji,jj,jk) 
     89 
     90         !  Zooplankton mortality. A square function has been selected with 
     91         !  no real reason except that it seems to be more stable and may mimic predation. 
     92         !  --------------------------------------------------------------- 
     93         ztortz = mzrat * 1.e6 * zfact * tr(ji,jj,jk,jpzoo,Kbb) * (1. - nitrfac(ji,jj,jk)) 
     94 
     95         zcompadi  = MIN( MAX( ( tr(ji,jj,jk,jpdia,Kbb) - xthreshdia ), 0.e0 ), xsizedia ) 
     96         zcompaph  = MAX( ( tr(ji,jj,jk,jpphy,Kbb) - xthreshphy ), 0.e0 ) 
     97         zcompapoc = MAX( ( tr(ji,jj,jk,jppoc,Kbb) - xthreshpoc ), 0.e0 ) 
     98          
     99         !     Microzooplankton grazing 
     100         !     ------------------------ 
     101         zfood     = xprefn * zcompaph + xprefc * zcompapoc + xprefd * zcompadi 
     102         zfoodlim  = MAX( 0. , zfood - min(xthresh,0.5*zfood) ) 
     103         zdenom    = zfoodlim / ( xkgraz + zfoodlim ) 
     104         zdenom2   = zdenom / ( zfood + rtrn ) 
     105         zgraze    = grazrat * xstep * tgfunc2(ji,jj,jk) * tr(ji,jj,jk,jpzoo,Kbb) * (1. - nitrfac(ji,jj,jk)) 
     106 
     107         zgrazp    = zgraze  * xprefn * zcompaph  * zdenom2  
     108         zgrazm    = zgraze  * xprefc * zcompapoc * zdenom2  
     109         zgrazsd   = zgraze  * xprefd * zcompadi  * zdenom2  
     110 
     111         zgrazpf   = zgrazp  * tr(ji,jj,jk,jpnfe,Kbb) / (tr(ji,jj,jk,jpphy,Kbb) + rtrn) 
     112         zgrazmf   = zgrazm  * tr(ji,jj,jk,jpsfe,Kbb) / (tr(ji,jj,jk,jppoc,Kbb) + rtrn) 
     113         zgrazsf   = zgrazsd * tr(ji,jj,jk,jpdfe,Kbb) / (tr(ji,jj,jk,jpdia,Kbb) + rtrn) 
     114         ! 
     115         zgraztotc = zgrazp  + zgrazm  + zgrazsd  
     116         zgraztotf = zgrazpf + zgrazsf + zgrazmf  
     117         zgraztotn = zgrazp * quotan(ji,jj,jk) + zgrazm + zgrazsd * quotad(ji,jj,jk) 
     118 
     119         ! Grazing by microzooplankton 
     120         zgrazing(ji,jj,jk) = zgraztotc 
     121 
     122 
     123         ! Microzooplankton efficiency.  
     124         ! We adopt a formulation proposed by Mitra et al. (2007) 
     125         ! The gross growth efficiency is controled by the most limiting nutrient. 
     126         ! Growth is also further decreased when the food quality is poor. This is currently 
     127         ! hard coded : it can be decreased by up to 50% (zepsherq) 
     128         ! GGE can also be decreased when food quantity is high, zepsherf (Montagnes and  
     129         ! Fulton, 2012) 
     130         ! ----------------------------------------------------------------------------- 
     131         zgrasrat  = ( zgraztotf + rtrn ) / ( zgraztotc + rtrn ) 
     132         zgrasratn = ( zgraztotn + rtrn ) / ( zgraztotc + rtrn ) 
     133         zepshert  =  MIN( 1., zgrasratn, zgrasrat / ferat3) 
     134         zbeta     = MAX(0., (epsher - epshermin) ) 
     135         zepsherf  = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
     136         zepsherq  = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 
     137         zepsherv  = zepsherf * zepshert * zepsherq  
     138 
     139         zgrafer   = zgraztotc * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
     140         zgrarem   = zgraztotc * ( 1. - zepsherv - unass ) 
     141         zgrapoc   = zgraztotc * unass 
     142 
     143         !  Update of the TRA arrays 
     144         !  ------------------------ 
     145         zgrarsig  = zgrarem * sigma1 
     146         tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) + zgrarsig 
     147         tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + zgrarsig 
     148         tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + zgrarem - zgrarsig 
     149         ! 
     150         IF( ln_ligand ) THEN 
     151            tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs) + (zgrarem - zgrarsig) * ldocz 
     152            zzligprod(ji,jj,jk) = (zgrarem - zgrarsig) * ldocz 
     153         ENDIF 
     154         ! 
     155         tr(ji,jj,jk,jpoxy,Krhs) = tr(ji,jj,jk,jpoxy,Krhs) - o2ut * zgrarsig 
     156         tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) + zgrafer 
     157         zfezoo(ji,jj,jk)    = zgrafer 
     158         tr(ji,jj,jk,jppoc,Krhs) = tr(ji,jj,jk,jppoc,Krhs) + zgrapoc 
     159         prodpoc(ji,jj,jk)   = prodpoc(ji,jj,jk) + zgrapoc 
     160         tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + zgraztotf * unass 
     161         tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) + zgrarsig 
     162         tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) + rno3 * zgrarsig 
     163         !   Update the arrays TRA which contain the biological sources and sinks 
     164         !   -------------------------------------------------------------------- 
     165         zmortz = ztortz + zrespz 
     166         tr(ji,jj,jk,jpzoo,Krhs) = tr(ji,jj,jk,jpzoo,Krhs) - zmortz + zepsherv * zgraztotc  
     167         tr(ji,jj,jk,jpphy,Krhs) = tr(ji,jj,jk,jpphy,Krhs) - zgrazp 
     168         tr(ji,jj,jk,jpdia,Krhs) = tr(ji,jj,jk,jpdia,Krhs) - zgrazsd 
     169         tr(ji,jj,jk,jpnch,Krhs) = tr(ji,jj,jk,jpnch,Krhs) - zgrazp  * tr(ji,jj,jk,jpnch,Kbb)/(tr(ji,jj,jk,jpphy,Kbb)+rtrn) 
     170         tr(ji,jj,jk,jpdch,Krhs) = tr(ji,jj,jk,jpdch,Krhs) - zgrazsd * tr(ji,jj,jk,jpdch,Kbb)/(tr(ji,jj,jk,jpdia,Kbb)+rtrn) 
     171         tr(ji,jj,jk,jpdsi,Krhs) = tr(ji,jj,jk,jpdsi,Krhs) - zgrazsd * tr(ji,jj,jk,jpdsi,Kbb)/(tr(ji,jj,jk,jpdia,Kbb)+rtrn) 
     172         tr(ji,jj,jk,jpgsi,Krhs) = tr(ji,jj,jk,jpgsi,Krhs) + zgrazsd * tr(ji,jj,jk,jpdsi,Kbb)/(tr(ji,jj,jk,jpdia,Kbb)+rtrn) 
     173         tr(ji,jj,jk,jpnfe,Krhs) = tr(ji,jj,jk,jpnfe,Krhs) - zgrazpf 
     174         tr(ji,jj,jk,jpdfe,Krhs) = tr(ji,jj,jk,jpdfe,Krhs) - zgrazsf 
     175         tr(ji,jj,jk,jppoc,Krhs) = tr(ji,jj,jk,jppoc,Krhs) + zmortz - zgrazm 
     176         prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zmortz 
     177         conspoc(ji,jj,jk) = conspoc(ji,jj,jk) - zgrazm 
     178         tr(ji,jj,jk,jpsfe,Krhs) = tr(ji,jj,jk,jpsfe,Krhs) + ferat3 * zmortz - zgrazmf 
     179         ! 
     180         ! calcite production 
     181         zprcaca = xfracal(ji,jj,jk) * zgrazp 
     182         prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
     183         ! 
     184         zprcaca = part * zprcaca 
     185         tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) - zprcaca 
     186         tr(ji,jj,jk,jptal,Krhs) = tr(ji,jj,jk,jptal,Krhs) - 2. * zprcaca 
     187         tr(ji,jj,jk,jpcal,Krhs) = tr(ji,jj,jk,jpcal,Krhs) + zprcaca 
     188      END_3D 
     189      ! 
     190      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     191        IF( iom_use("GRAZ1") ) THEN  !   Total grazing of phyto by zooplankton 
     192           zgrazing(:,:,jpk) = 0._wp   ; CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
     193         ENDIF 
     194         IF( iom_use("FEZOO") ) THEN   
     195           zfezoo (:,:,jpk) = 0._wp    ; CALL iom_put( "FEZOO", zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     196         ENDIF 
     197         IF( ln_ligand ) THEN 
     198            zzligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ", zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)) 
     199         ENDIF 
     200      ENDIF 
     201      ! 
     202      IF(sn_cfctl%l_prttrc) THEN      ! print mean trends (used for debugging) 
    210203         WRITE(charout, FMT="('micro')") 
    211          CALL prt_ctl_trc_info(charout) 
    212          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
     204         CALL prt_ctl_info( charout, cdcomp = 'top' ) 
     205         CALL prt_ctl(tab4d_1=tr(:,:,:,:,Krhs), mask1=tmask, clinfo=ctrcnm) 
    213206      ENDIF 
    214207      ! 
     
    243236      ENDIF 
    244237      ! 
    245       REWIND( numnatp_ref )              ! Namelist nampiszoo in reference namelist : Pisces microzooplankton 
    246238      READ  ( numnatp_ref, namp4zzoo, IOSTAT = ios, ERR = 901) 
    247 901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zzoo in reference namelist', lwp ) 
    248       REWIND( numnatp_cfg )              ! Namelist nampiszoo in configuration namelist : Pisces microzooplankton 
     239901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zzoo in reference namelist' ) 
    249240      READ  ( numnatp_cfg, namp4zzoo, IOSTAT = ios, ERR = 902 ) 
    250 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zzoo in configuration namelist', lwp ) 
     241902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zzoo in configuration namelist' ) 
    251242      IF(lwm) WRITE( numonp, namp4zzoo ) 
    252243      ! 
Note: See TracChangeset for help on using the changeset viewer.