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 12258 for NEMO/branches – NEMO

Changeset 12258 for NEMO/branches


Ignore:
Timestamp:
2019-12-16T14:38:32+01:00 (4 years ago)
Author:
cetlod
Message:

dev_r11943_MERGE_2019 : : Cleaning PISCES diagnostics output ; fully sette tested. run.stat and tracer.stat are identical to the ones of dev_r11943_MERGE_2019

Location:
NEMO/branches/2019/dev_r11943_MERGE_2019
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/ORCA2_ICE_PISCES/EXPREF/namelist_ice_cfg

    r11731 r12258  
    3838&namdyn_rhg     !   Ice rheology 
    3939!------------------------------------------------------------------------------ 
    40       ln_aEVP       = .false.          !     adaptive rheology (Kimmritz et al. 2016 & 2017) 
    4140/ 
    4241!------------------------------------------------------------------------------ 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-pisces.xml

    r12193 r12258  
    268268       <field id="O2MIN"       long_name="Oxygen minimum concentration"                        unit="mol/m3"                          /> 
    269269       <field id="ZO2MIN"      long_name="Depth of oxygen minimum concentration"               unit="m"                              /> 
    270        <field id="INTNFIX"     long_name="Nitrogen fixation rate : vert. integrated"           unit="mol/m2/s"                       /> 
    271        <field id="INTPPPHYN"   long_name="Vertically integrated primary production by nanophy" unit="mol/m2/s"                       /> 
    272        <field id="INTPPPHYD"   long_name="Vertically integrated primary production by diatom"  unit="mol/m2/s"                       /> 
    273        <field id="INTPP"       long_name="Vertically integrated primary production by phyto"   unit="mol/m2/s"                       /> 
    274        <field id="INTPNEW"     long_name="Vertically integrated new primary production"        unit="mol/m2/s"                       /> 
    275        <field id="INTPBFE"     long_name="Vertically integrated of biogenic iron production"   unit="mol/m2/s"                       /> 
    276        <field id="INTPBSI"     long_name="Vertically integrated of biogenic Si production"     unit="mol/m2/s"                       /> 
    277        <field id="INTPCAL"     long_name="Vertically integrated of calcite production"         unit="mol/m2/s"                       /> 
     270       <field id="INTNFIX"     long_name="Nitrogen fixation rate : vert. integrated"           unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > Nfix * e3t </field > 
     271       <field id="INTPPPHYN"   long_name="Vertically integrated primary production by nanophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYN * e3t </field > 
     272       <field id="INTPPPHYD"   long_name="Vertically integrated primary production by diatom"  unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYD * e3t </field >                     
     273       <field id="INTPPPHYP"   long_name="Vertically integrated primary production by picophy" unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PPPHYP * e3t </field >                     
     274       <field id="INTPP"       long_name="Vertically integrated primary production by phyto"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPP * e3t </field >                             
     275       <field id="INTPNEW"     long_name="Vertically integrated new primary production"        unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPNEW * e3t </field >                 
     276       <field id="INTPBFE"     long_name="Vertically integrated of biogenic iron production"   unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > TPBFE * e3t </field >                            
     277       <field id="INTPBSI"     long_name="Vertically integrated of biogenic Si production"     unit="mol/m2/s"  grid_ref="grid_T_vsum"  detect_missing_value="true" > PBSi * e3t </field >                            
    278278 
    279279       <!-- PISCES light : variables available with key_pisces_reduced --> 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbc.F90

    r12193 r12258  
    9898         ! 
    9999         IF( lk_iomput ) THEN 
    100            IF( iom_use( "Irondep" ) )   & 
    101              &  CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 
    102            IF( iom_use( "pdust" ) )   & 
    103              &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 
     100             CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! surface downward dust depo of iron 
     101             CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday ) * tmask(:,:,1) ) ! dust concentration at surface 
    104102         ENDIF 
    105103         DEALLOCATE( zirondep ) 
     
    158156         tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 
    159157         ! 
    160          IF( lk_iomput .AND. iom_use( "Ironice" ) )   & 
    161             &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 
     158         IF( lk_iomput )  CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfactr * e3t(:,:,1,Kmm) * tmask(:,:,1) ) ! iron flux from ice 
    162159         ! 
    163160         DEALLOCATE( zironice ) 
     
    170167          tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact 
    171168          ! 
    172           IF( lk_iomput .AND. iom_use( "Ironsed" ) )   & 
    173                &   CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) )  
     169          IF( lk_iomput )  CALL iom_put( "Ironsed", ironsed(:,:,:) * 1.e+3 * tmask(:,:,:) )  
    174170      ENDIF 
    175171 
     
    186182         IF( ln_ligand ) tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact 
    187183         ! 
    188          IF( lk_iomput .AND. iom_use( "HYDR" ) )   & 
    189             &   CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 
     184         IF( lk_iomput ) CALL iom_put( "HYDR", hydrofe(:,:,:) * 1.e+3 * tmask(:,:,:) ) ! hydrothermal iron input 
    190185      ENDIF 
    191186      IF( ln_timing )  CALL timing_stop('p4z_bc') 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zfechem.F90

    r12236 r12258  
    7272      IF( ln_timing )   CALL timing_start('p4z_fechem') 
    7373      ! 
    74       zFe3 (:,:,:) = 0. 
    75       zFeL1(:,:,:) = 0. 
    76       zTL1 (:,:,:) = 0. 
    77  
    7874      ! Total ligand concentration : Ligands can be chosen to be constant or variable 
    7975      ! Parameterization from Tagliabue and Voelker (2011) 
     
    210206         IF( knt == nrdttrc ) THEN 
    211207            zrfact2 = 1.e3 * rfact2r  ! conversion from mol/L/timestep into mol/m3/s 
    212             IF( iom_use("Fe3")    )  CALL iom_put("Fe3"    , zFe3   (:,:,:)       * tmask(:,:,:) )   ! Fe3+ 
    213             IF( iom_use("FeL1")   )  CALL iom_put("FeL1"   , zFeL1  (:,:,:)       * tmask(:,:,:) )   ! FeL1 
    214             IF( iom_use("TL1")    )  CALL iom_put("TL1"    , zTL1   (:,:,:)       * tmask(:,:,:) )   ! TL1 
     208            IF( iom_use("Fe3")  )  THEN 
     209               zFe3(:,:,jpk) = 0.  ;  CALL iom_put("Fe3" , zFe3(:,:,:) * tmask(:,:,:) )   ! Fe3+ 
     210            ENDIF 
     211            IF( iom_use("FeL1") )  THEN 
     212              zFeL1(:,:,jpk) = 0.  ;  CALL iom_put("FeL1", zFeL1(:,:,:) * tmask(:,:,:) )   ! FeL1 
     213            ENDIF 
     214            IF( iom_use("TL1")  )  THEN 
     215              zTL1(:,:,jpk) = 0.   ;  CALL iom_put("TL1" , zTL1(:,:,:) * tmask(:,:,:) )   ! TL1 
     216            ENDIF 
    215217            IF( iom_use("Totlig") )  CALL iom_put("Totlig" , ztotlig(:,:,:)       * tmask(:,:,:) )   ! TL 
    216218            IF( iom_use("Biron")  )  CALL iom_put("Biron"  , biron  (:,:,:)  * 1e9 * tmask(:,:,:) )   ! biron 
    217             IF( iom_use("FESCAV") )  CALL iom_put("FESCAV" , zscav3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
    218             IF( iom_use("FECOLL") )  CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
    219             IF( iom_use("LGWCOLL"))  CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
    220          ENDIF 
     219            IF( iom_use("FESCAV") )  THEN 
     220               zscav3d (:,:,jpk) = 0.  ;  CALL iom_put("FESCAV" , zscav3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     221            ENDIF 
     222            IF( iom_use("FECOLL") ) THEN 
     223               zcoll3d (:,:,jpk) = 0.  ;   CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     224            ENDIF 
     225            IF( iom_use("LGWCOLL")) THEN 
     226               zlcoll3d(:,:,jpk) = 0.  ;  CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
     227            ENDIF 
     228          ENDIF 
    221229      ENDIF 
    222230 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90

    r12236 r12258  
    8181      CHARACTER (len=25) ::   charout 
    8282      REAL(wp), DIMENSION(jpi,jpj) ::   zkgco2, zkgo2, zh2co3, zoflx,  zpco2atm   
    83       REAL(wp), ALLOCATABLE, DIMENSION(:,:) ::   zw2d 
    8483      !!--------------------------------------------------------------------- 
    8584      ! 
     
    187186 
    188187      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    189          CALL iom_put( "AtmCo2" , satmco2(:,:) * tmask(:,:,1) )   ! Atmospheric CO2 concentration 
    190          !  
    191          ALLOCATE( zw2d(jpi,jpj) )   
    192          IF( iom_use( "Cflx"  ) )  THEN 
    193             zw2d(:,:) = oce_co2(:,:) * 1000.  ! conversion in molC/m2/s 
    194             CALL iom_put( "Cflx"     , zw2d )  
    195          ENDIF 
    196          IF( iom_use( "Oflx"  ) )  THEN 
    197             zw2d(:,:) =  zoflx(:,:) * 1000. 
    198             CALL iom_put( "Oflx" , zw2d ) 
    199          ENDIF 
    200          IF( iom_use( "Kg"    ) )  THEN 
    201             zw2d(:,:) =  zkgco2(:,:) * tmask(:,:,1) 
    202             CALL iom_put( "Kg"   , zw2d ) 
    203          ENDIF 
    204          IF( iom_use( "Dpco2" ) ) THEN 
    205            zw2d(:,:) = ( zpco2atm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    206            CALL iom_put( "Dpco2" ,  zw2d ) 
    207          ENDIF 
    208          IF( iom_use( "pCO2sea" ) ) THEN 
    209            zw2d(:,:) = ( zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    210            CALL iom_put( "pCO2sea" ,  zw2d ) 
    211          ENDIF 
    212  
    213          IF( iom_use( "Dpo2" ) )  THEN 
    214            zw2d(:,:) = ( atcox * patm(:,:) - atcox * tr(:,:,1,jpoxy,Kbb) / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) 
    215            CALL iom_put( "Dpo2"  , zw2d ) 
    216          ENDIF 
    217          CALL iom_put( "tcflx"    , t_oce_co2_flx     )   ! molC/s 
    218          CALL iom_put( "tcflxcum" , t_oce_co2_flx_cum )   ! molC 
    219          ! 
    220          DEALLOCATE( zw2d ) 
     188         CALL iom_put( "AtmCo2"  , satmco2(:,:) * tmask(:,:,1) )   ! Atmospheric CO2 concentration 
     189         CALL iom_put( "Cflx"    , oce_co2(:,:) * 1000. )  
     190         CALL iom_put( "Oflx"    , zoflx(:,:) * 1000.  ) 
     191         CALL iom_put( "Kg"      , zkgco2(:,:) * tmask(:,:,1)  ) 
     192         CALL iom_put( "Dpco2"   , ( zpco2atm(:,:) - zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
     193         CALL iom_put( "pCO2sea" , ( zh2co3(:,:) / ( chemc(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
     194         CALL iom_put( "Dpo2"    , ( atcox * patm(:,:) - atcox * tr(:,:,1,jpoxy,Kbb) / ( chemo2(:,:,1) + rtrn ) ) * tmask(:,:,1) ) 
     195         CALL iom_put( "tcflx"   , t_oce_co2_flx     )   ! molC/s 
     196         CALL iom_put( "tcflxcum", t_oce_co2_flx_cum )   ! molC 
    221197      ENDIF 
    222198      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zligand.F90

    r12236 r12258  
    4444      INTEGER  ::   ji, jj, jk 
    4545      REAL(wp) ::   zlgwp, zlgwpr, zlgwr, zlablgw 
    46       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zligrem, zligpr, zrligprod 
    47       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zw3d 
     46      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zligrem, zligpr, zligprod 
    4847      CHARACTER (len=25) ::   charout 
    4948      !!--------------------------------------------------------------------- 
     
    7069               zligrem(ji,jj,jk)   = zlgwr 
    7170               zligpr(ji,jj,jk)    = zlgwpr 
    72                zrligprod(ji,jj,jk) = zlgwp 
     71               zligprod(ji,jj,jk) = zlgwp 
    7372               ! 
    7473            END DO 
     
    7978      !     --------------------------------- 
    8079      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    81          ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    8280         IF( iom_use( "LIGREM" ) ) THEN 
    83             zw3d(:,:,:) = zligrem(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
    84             CALL iom_put( "LIGREM", zw3d ) 
     81           zligrem(:,:,jpk) = 0.  ; CALL iom_put( "LIGREM", zligrem(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    8582         ENDIF 
    8683         IF( iom_use( "LIGPR" ) ) THEN 
    87             zw3d(:,:,:) = zligpr(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  
    88             CALL iom_put( "LIGPR", zw3d ) 
     84           zligpr(:,:,jpk) = 0.   ; CALL iom_put( "LIGPR" , zligpr(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    8985         ENDIF 
    9086         IF( iom_use( "LPRODR" ) ) THEN 
    91             zw3d(:,:,:) = zrligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  
    92             CALL iom_put( "LPRODR", zw3d ) 
     87           zligprod(:,:,jpk) = 0. ; CALL iom_put( "LPRODR", zligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    9388         ENDIF 
    94          DEALLOCATE( zw3d ) 
    9589      ENDIF 
    9690      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlim.F90

    r11960 r12258  
    216216      ! 
    217217      IF( lk_iomput .AND. knt == nrdttrc ) THEN        ! save output diagnostics 
    218         IF( iom_use( "xfracal" ) )   CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) )  ! euphotic layer deptht 
    219         IF( iom_use( "LNnut"   ) )   CALL iom_put( "LNnut"  , xlimphy(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
    220         IF( iom_use( "LDnut"   ) )   CALL iom_put( "LDnut"  , xlimdia(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
    221         IF( iom_use( "LNFe"    ) )   CALL iom_put( "LNFe"   , xlimnfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    222         IF( iom_use( "LDFe"    ) )   CALL iom_put( "LDFe"   , xlimdfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     218        CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) )  ! euphotic layer deptht 
     219        CALL iom_put( "LNnut"  , xlimphy(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
     220        CALL iom_put( "LDnut"  , xlimdia(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
     221        CALL iom_put( "LNFe"   , xlimnfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     222        CALL iom_put( "LDFe"   , xlimdfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    223223      ENDIF 
    224224      ! 
     
    283283      ENDIF 
    284284      ! 
    285       nitrfac (:,:,:) = 0._wp 
     285      nitrfac (:,:,jpk) = 0._wp 
     286      nitrfac2(:,:,jpk) = 0._wp 
     287      xfracal (:,:,jpk) = 0._wp 
     288      xlimphy (:,:,jpk) = 0._wp 
     289      xlimdia (:,:,jpk) = 0._wp 
     290      xlimnfe (:,:,jpk) = 0._wp 
     291      xlimdfe (:,:,jpk) = 0._wp 
    286292      ! 
    287293   END SUBROUTINE p4z_lim_init 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlys.F90

    r12236 r12258  
    6565      IF( ln_timing )  CALL timing_start('p4z_lys') 
    6666      ! 
    67       zco3    (:,:,:) = 0. 
    68       zcaldiss(:,:,:) = 0. 
    6967      zhinit  (:,:,:) = hi(:,:,:) * 1000. / ( rhop(:,:,:) + rtrn ) 
    7068      ! 
     
    124122 
    125123      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    126          IF( iom_use( "PH"     ) ) CALL iom_put( "PH"    , -1. * LOG10( MAX( hi(:,:,:), rtrn ) ) * tmask(:,:,:) ) 
    127          IF( iom_use( "CO3"    ) ) CALL iom_put( "CO3"   , zco3(:,:,:)     * 1.e+3               * tmask(:,:,:) ) 
    128          IF( iom_use( "CO3sat" ) ) CALL iom_put( "CO3sat", zco3sat(:,:,:)  * 1.e+3               * tmask(:,:,:) ) 
    129          IF( iom_use( "DCAL"   ) ) CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * 1.e+3 * rfact2r     * tmask(:,:,:) ) 
     124         CALL iom_put( "PH" , -1. * LOG10( MAX( hi(:,:,:), rtrn ) ) * tmask(:,:,:) ) 
     125         IF( iom_use( "CO3" ) ) THEN 
     126            zco3(:,:,jpk) = 0.    ; CALL iom_put( "CO3"   , zco3(:,:,:)     * 1.e+3           * tmask(:,:,:) ) 
     127         ENDIF 
     128         IF( iom_use( "CO3sat" ) ) THEN 
     129           zco3sat(:,:,jpk) = 0.  ; CALL iom_put( "CO3sat", zco3sat(:,:,:)  * 1.e+3           * tmask(:,:,:) ) 
     130         ENDIF 
     131         IF( iom_use( "DCAL" ) ) THEN 
     132           zcaldiss(:,:,jpk) = 0. ; CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     133         ENDIF               
    130134      ENDIF 
    131135      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmeso.F90

    r12252 r12258  
    225225      ! 
    226226      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    227          zgrazing2(:,:,jpk) = 0._wp 
    228          zfezoo2 (:,:,jpk) = 0._wp 
    229          CALL iom_put( "GRAZ2" , zgrazing2(:,:,:) * 1.e+3       * rfact2r * tmask(:,:,:) )  !   Total grazing of phyto by zooplankton 
    230          CALL iom_put( "PCAL"  , prodcal  (:,:,:) * 1.e+3       * rfact2r * tmask(:,:,:) )  !  Calcite production  
    231          CALL iom_put( "FEZOO2", zfezoo2  (:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    232          IF( ln_ligand )  THEN 
    233             zz2ligprod(:,:,jpk) = 0._wp 
    234             CALL iom_put( "LPRODZ2", zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  ) 
     227        CALL iom_put( "PCAL"  , prodcal(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  !  Calcite production  
     228        IF( iom_use("GRAZ2") ) THEN  !   Total grazing of phyto by zooplankton 
     229           zgrazing2(:,:,jpk) = 0._wp ;  CALL iom_put( "GRAZ2" , zgrazing2(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
     230         ENDIF 
     231         IF( iom_use("FEZOO2") ) THEN   
     232           zfezoo2 (:,:,jpk) = 0._wp ; CALL iom_put( "FEZOO2", zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     233         ENDIF 
     234         IF( ln_ligand ) THEN 
     235            zz2ligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ2", zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  ) 
    235236         ENDIF 
    236237      ENDIF 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmicro.F90

    r12252 r12258  
    182182      ! 
    183183      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    184          zgrazing(:,:,jpk) = 0._wp 
    185          zfezoo  (:,:,jpk) = 0._wp 
    186          CALL iom_put( "GRAZ1", zgrazing(:,:,:) * 1.e+3       * rfact2r * tmask(:,:,:) )  !   Total grazing of phyto by zooplankton 
    187          CALL iom_put( "FEZOO", zfezoo  (:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    188          IF( ln_ligand )  THEN 
    189             zzligprod(:,:,jpk) = 0._wp 
    190             CALL iom_put( "LPRODZ", zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  ) 
     184        IF( iom_use("GRAZ1") ) THEN  !   Total grazing of phyto by zooplankton 
     185           zgrazing(:,:,jpk) = 0._wp   ; CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
     186         ENDIF 
     187         IF( iom_use("FEZOO") ) THEN   
     188           zfezoo (:,:,jpk) = 0._wp    ; CALL iom_put( "FEZOO", zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     189         ENDIF 
     190         IF( ln_ligand ) THEN 
     191            zzligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ", zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)) 
    191192         ENDIF 
    192193      ENDIF 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zopt.F90

    r11960 r12258  
    7272      ! 
    7373      IF( ln_timing )   CALL timing_start('p4z_opt') 
    74       IF( ln_p5z    )   ALLOCATE( zetmp5(jpi,jpj) ) 
    7574 
    7675      IF( knt == 1 .AND. ln_varpar )   CALL p4z_opt_sbc( kt ) 
     
    242241      ! 
    243242      IF( ln_p5z ) THEN 
    244          zetmp5 (:,:) = 0.e0 
     243         ALLOCATE( zetmp5(jpi,jpj) )  ;   zetmp5 (:,:) = 0.e0 
    245244         DO jk = 1, nksrp 
    246245            DO jj = 1, jpj 
     
    265264            END DO 
    266265         END DO 
    267       ENDIF 
    268       IF( lk_iomput ) THEN 
    269         IF( knt == nrdttrc ) THEN 
    270            IF( iom_use( "Heup"  ) ) CALL iom_put( "Heup" , heup(:,:  ) * tmask(:,:,1) )  ! euphotic layer deptht 
    271            IF( iom_use( "PARDM" ) ) CALL iom_put( "PARDM", zpar(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
    272            IF( iom_use( "PAR"   ) ) CALL iom_put( "PAR"  , emoy(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
    273         ENDIF 
    274       ENDIF 
    275       ! 
    276       IF( ln_p5z    )   DEALLOCATE( zetmp5 ) 
     266         DEALLOCATE( zetmp5 ) 
     267      ENDIF 
     268      ! 
     269      IF( lk_iomput .AND.  knt == nrdttrc ) THEN 
     270         CALL iom_put( "Heup" , heup(:,:  ) * tmask(:,:,1) )  ! euphotic layer deptht 
     271         CALL iom_put( "PARDM", zpar(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
     272         CALL iom_put( "PAR"  , emoy(:,:,:) * tmask(:,:,:) )  ! Photosynthetically Available Radiation 
     273      ENDIF 
     274      ! 
    277275      IF( ln_timing )   CALL timing_stop('p4z_opt') 
    278276      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zprod.F90

    r12236 r12258  
    9090      !  Allocate temporary workspace 
    9191      ! 
    92       zprorcan(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp ; zprofed (:,:,:) = 0._wp 
    93       zprofen (:,:,:) = 0._wp ; zysopt  (:,:,:) = 0._wp 
    94       zpronewn(:,:,:) = 0._wp ; zpronewd(:,:,:) = 0._wp ; zprdia  (:,:,:) = 0._wp 
    95       zprbio  (:,:,:) = 0._wp ; zprdch  (:,:,:) = 0._wp ; zprnch  (:,:,:) = 0._wp  
    96       zmxl_fac(:,:,:) = 0._wp ; zmxl_chl(:,:,:) = 0._wp  
     92      zprorcan  (:,:,jpk) = 0._wp ; zprorcad  (:,:,jpk) = 0._wp ; zprofed (:,:,jpk) = 0._wp 
     93      zprofen   (:,:,jpk) = 0._wp ; zysopt    (:,:,jpk) = 0._wp 
     94      zpronewn  (:,:,jpk) = 0._wp ; zpronewd  (:,:,jpk) = 0._wp ; zprdia  (:,:,jpk) = 0._wp 
     95      zprbio    (:,:,jpk) = 0._wp ; zprdch    (:,:,jpk) = 0._wp ; zprnch  (:,:,jpk) = 0._wp  
     96      zmxl_fac  (:,:,jpk) = 0._wp ; zmxl_chl  (:,:,jpk) = 0._wp  
     97      zpligprod1(:,:,jpk) = 0._wp ; zpligprod2(:,:,jpk) = 0._wp  
    9798 
    9899      ! Computation of the optimal production 
     
    321322     ! 
    322323     IF( ln_ligand ) THEN 
    323          zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp 
     324         zpligprod1(:,:,jpk) = 0._wp    ;    zpligprod2(:,:,jpk) = 0._wp 
    324325         DO jk = 1, jpkm1 
    325326            DO jj = 1, jpj 
     
    342343         & tpp = glob_sum( 'p4zprod', ( zprorcan(:,:,:) + zprorcad(:,:,:) ) * cvol(:,:,:) ) 
    343344 
    344     IF( lk_iomput ) THEN 
    345        IF( knt == nrdttrc ) THEN 
    346           ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    347           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    348           ! 
    349           IF( iom_use( "PPPHYN" ) .OR. iom_use( "PPPHYD" ) )  THEN 
    350               zw3d(:,:,:) = zprorcan(:,:,:) * zfact * tmask(:,:,:)  ! primary production by nanophyto 
    351               CALL iom_put( "PPPHYN"  , zw3d ) 
    352               ! 
    353               zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:)  ! primary production by diatomes 
    354               CALL iom_put( "PPPHYD"  , zw3d ) 
    355           ENDIF 
    356           IF( iom_use( "PPNEWN" ) .OR. iom_use( "PPNEWD" ) )  THEN 
    357               zw3d(:,:,:) = zpronewn(:,:,:) * zfact * tmask(:,:,:)  ! new primary production by nanophyto 
    358               CALL iom_put( "PPNEWN"  , zw3d ) 
    359               ! 
    360               zw3d(:,:,:) = zpronewd(:,:,:) * zfact * tmask(:,:,:)  ! new primary production by diatomes 
    361               CALL iom_put( "PPNEWD"  , zw3d ) 
    362           ENDIF 
    363           IF( iom_use( "PBSi" ) )  THEN 
    364               zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) ! biogenic silica production 
    365               CALL iom_put( "PBSi"  , zw3d ) 
    366           ENDIF 
    367           IF( iom_use( "PFeN" ) .OR. iom_use( "PFeD" ) )  THEN 
    368               zw3d(:,:,:) = zprofen(:,:,:) * zfact * tmask(:,:,:)  ! biogenic iron production by nanophyto 
    369               CALL iom_put( "PFeN"  , zw3d ) 
    370               ! 
    371               zw3d(:,:,:) = zprofed(:,:,:) * zfact * tmask(:,:,:)  ! biogenic iron production by  diatomes 
    372               CALL iom_put( "PFeD"  , zw3d ) 
    373           ENDIF 
    374           IF( iom_use( "LPRODP" ) )  THEN 
    375               zw3d(:,:,:) = zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
    376               CALL iom_put( "LPRODP"  , zw3d ) 
    377           ENDIF 
    378           IF( iom_use( "LDETP" ) )  THEN 
    379               zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
    380               CALL iom_put( "LDETP"  , zw3d ) 
    381           ENDIF 
    382           IF( iom_use( "Mumax" ) )  THEN 
    383               zw3d(:,:,:) = zprmaxn(:,:,:) * tmask(:,:,:)   ! Maximum growth rate 
    384               CALL iom_put( "Mumax"  , zw3d ) 
    385           ENDIF 
    386           IF( iom_use( "MuN" ) .OR. iom_use( "MuD" ) )  THEN 
    387               zw3d(:,:,:) = zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:)  ! Realized growth rate for nanophyto 
    388               CALL iom_put( "MuN"  , zw3d ) 
    389               ! 
    390               zw3d(:,:,:) =  zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:)  ! Realized growth rate for diatoms 
    391               CALL iom_put( "MuD"  , zw3d ) 
    392           ENDIF 
    393           IF( iom_use( "LNlight" ) .OR. iom_use( "LDlight" ) )  THEN 
    394               zw3d(:,:,:) = zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 
    395               CALL iom_put( "LNlight"  , zw3d ) 
    396               ! 
    397               zw3d(:,:,:) = zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:)  ! light limitation term 
    398               CALL iom_put( "LDlight"  , zw3d ) 
    399           ENDIF 
    400           IF( iom_use( "TPP" ) )  THEN 
    401               zw3d(:,:,:) = ( zprorcan(:,:,:) + zprorcad(:,:,:) ) * zfact * tmask(:,:,:)  ! total primary production 
    402               CALL iom_put( "TPP"  , zw3d ) 
    403           ENDIF 
    404           IF( iom_use( "TPNEW" ) )  THEN 
    405               zw3d(:,:,:) = ( zpronewn(:,:,:) + zpronewd(:,:,:) ) * zfact * tmask(:,:,:)  ! total new production 
    406               CALL iom_put( "TPNEW"  , zw3d ) 
    407           ENDIF 
    408           IF( iom_use( "TPBFE" ) )  THEN 
    409               zw3d(:,:,:) = ( zprofen(:,:,:) + zprofed(:,:,:) ) * zfact * tmask(:,:,:)  ! total biogenic iron production 
    410               CALL iom_put( "TPBFE"  , zw3d ) 
    411           ENDIF 
    412           IF( iom_use( "INTPPPHYN" ) .OR. iom_use( "INTPPPHYD" ) ) THEN   
    413              zw2d(:,:) = 0. 
    414              DO jk = 1, jpkm1 
    415                zw2d(:,:) = zw2d(:,:) + zprorcan(:,:,jk) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk)  ! vert. integrated  primary produc. by nano 
    416              ENDDO 
    417              CALL iom_put( "INTPPPHYN" , zw2d ) 
    418              ! 
    419              zw2d(:,:) = 0. 
    420              DO jk = 1, jpkm1 
    421                 zw2d(:,:) = zw2d(:,:) + zprorcad(:,:,jk) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk) ! vert. integrated  primary produc. by diatom 
    422              ENDDO 
    423              CALL iom_put( "INTPPPHYD" , zw2d ) 
    424           ENDIF 
    425           IF( iom_use( "INTPP" ) ) THEN    
    426              zw2d(:,:) = 0. 
    427              DO jk = 1, jpkm1 
    428                 zw2d(:,:) = zw2d(:,:) + ( zprorcan(:,:,jk) + zprorcad(:,:,jk) ) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk) ! vert. integrated pp 
    429              ENDDO 
    430              CALL iom_put( "INTPP" , zw2d ) 
    431           ENDIF 
    432           IF( iom_use( "INTPNEW" ) ) THEN     
    433              zw2d(:,:) = 0. 
    434              DO jk = 1, jpkm1 
    435                 zw2d(:,:) = zw2d(:,:) + ( zpronewn(:,:,jk) + zpronewd(:,:,jk) ) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk)  ! vert. integrated new prod 
    436              ENDDO 
    437              CALL iom_put( "INTPNEW" , zw2d ) 
    438           ENDIF 
    439           IF( iom_use( "INTPBFE" ) ) THEN           !   total biogenic iron production  ( vertically integrated ) 
    440              zw2d(:,:) = 0. 
    441              DO jk = 1, jpkm1 
    442                 zw2d(:,:) = zw2d(:,:) + ( zprofen(:,:,jk) + zprofed(:,:,jk) ) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk) ! vert integr. bfe prod 
    443              ENDDO 
    444             CALL iom_put( "INTPBFE" , zw2d ) 
    445           ENDIF 
    446           IF( iom_use( "INTPBSI" ) ) THEN           !   total biogenic silica production  ( vertically integrated ) 
    447              zw2d(:,:) = 0. 
    448              DO jk = 1, jpkm1 
    449                 zw2d(:,:) = zw2d(:,:) + zprorcad(:,:,jk) * zysopt(:,:,jk) * e3t(:,:,jk,Kmm) * zfact * tmask(:,:,jk)  ! vert integr. bsi prod 
    450              ENDDO 
    451              CALL iom_put( "INTPBSI" , zw2d ) 
    452           ENDIF 
    453           IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    454           ! 
    455           DEALLOCATE( zw2d, zw3d ) 
    456        ENDIF 
     345    IF( lk_iomput .AND.  knt == nrdttrc ) THEN 
     346       zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
     347       ! 
     348       CALL iom_put( "PPPHYN"  , zprorcan(:,:,:) * zfact * tmask(:,:,:) )  ! primary production by nanophyto 
     349       CALL iom_put( "PPPHYD"  , zprorcad(:,:,:) * zfact * tmask(:,:,:)   ) ! primary production by diatomes 
     350       CALL iom_put( "PPNEWN"  , zpronewn(:,:,:) * zfact * tmask(:,:,:)    ) ! new primary production by nanophyto 
     351       CALL iom_put( "PPNEWD"  , zpronewd(:,:,:) * zfact * tmask(:,:,:)   ) ! new primary production by diatomes 
     352       CALL iom_put( "PBSi"    , zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:)  ) ! biogenic silica production 
     353       CALL iom_put( "PFeN"    , zprofen(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by nanophyto 
     354       CALL iom_put( "PFeD"    , zprofed(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by  diatomes 
     355       CALL iom_put( "LPRODP"  , zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 
     356       CALL iom_put( "LDETP"   , zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 
     357       CALL iom_put( "Mumax"   , zprmaxn(:,:,:) * tmask(:,:,:)  ) ! Maximum growth rate 
     358       CALL iom_put( "MuN"     , zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for nanophyto 
     359       CALL iom_put( "MuD"     , zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for diatoms 
     360       CALL iom_put( "LNlight" , zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:)  )  ! light limitation term 
     361       CALL iom_put( "LDlight" , zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:)   ) 
     362       CALL iom_put( "TPP"     , ( zprorcan(:,:,:) + zprorcad(:,:,:) ) * zfact * tmask(:,:,:)  )  ! total primary production 
     363       CALL iom_put( "TPNEW"   , ( zprorcan(:,:,:) + zprorcad(:,:,:) ) * zfact * tmask(:,:,:)  ) ! total new production 
     364       CALL iom_put( "TPBFE"   , ( zprofen(:,:,:) + zprofed(:,:,:) ) * zfact * tmask(:,:,:)  )  ! total biogenic iron production 
     365       CALL iom_put( "tintpp"  , tpp * zfact )  !  global total integrated primary production molC/s 
    457366     ENDIF 
    458367 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zrem.F90

    r12236 r12258  
    6969      REAL(wp), DIMENSION(jpi,jpj    ) :: ztempbac 
    7070      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib, zdepeff, zfebact 
    71       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    7271      !!--------------------------------------------------------------------- 
    7372      ! 
     
    276275 
    277276      IF( knt == nrdttrc ) THEN 
    278           zrfact2 = 1.e3 * rfact2r 
    279           ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    280           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
     277          zrfact2 = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    281278          ! 
    282           IF( iom_use( "REMIN" ) )  THEN 
    283               zw3d(:,:,:) = zolimi(:,:,:) * tmask(:,:,:) * zfact !  Remineralisation rate 
    284               CALL iom_put( "REMIN"  , zw3d ) 
     279          IF( iom_use( "REMIN" ) )  THEN !  Remineralisation rate 
     280             zolimi(:,:,jpk) = 0. ; CALL iom_put( "REMIN"  , zolimi(:,:,:) * tmask(:,:,:) * zrfact2  ) 
    285281          ENDIF 
    286           IF( iom_use( "DENIT" ) )  THEN 
    287               zw3d(:,:,:) = denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zfact ! Denitrification 
    288               CALL iom_put( "DENIT"  , zw3d ) 
     282          CALL iom_put( "DENIT"  , denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zrfact2 ) ! Denitrification  
     283          IF( iom_use( "BACT" ) )  THEN ! Bacterial biomass 
     284             zdepbac(:,:,jpk) = 0.  ;   CALL iom_put( "BACT", zdepbac(:,:,:) * 1.E6 * tmask(:,:,:) ) 
    289285          ENDIF 
    290           IF( iom_use( "BACT" ) )  THEN 
    291                zw3d(:,:,:) = zdepbac(:,:,:) * 1.E6 * tmask(:,:,:)  ! Bacterial biomass 
    292                CALL iom_put( "BACT", zw3d ) 
    293           ENDIF 
    294           IF( iom_use( "FEBACT" ) )  THEN 
    295                zw3d(:,:,:) = zfebact(:,:,:) * 1E9 * tmask(:,:,:) * zrfact2   ! Bacterial iron consumption 
    296                CALL iom_put( "FEBACT" , zw3d ) 
    297           ENDIF 
    298           ! 
    299           DEALLOCATE( zw3d ) 
     286          CALL iom_put( "FEBACT" , zfebact(:,:,:) * 1E9 * tmask(:,:,:) * zrfact2  ) 
    300287       ENDIF 
    301288      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90

    r12236 r12258  
    331331      ENDIF 
    332332 
    333       IF( lk_iomput ) THEN 
    334          IF( knt == nrdttrc ) THEN 
    335             zfact = 1.e+3 * rfact2r !  conversion from molC/l/kt  to molN/m3/s 
    336             IF( iom_use("Nfix"   ) ) CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) )  ! nitrogen fixation  
    337             IF( iom_use("INTNFIX") ) THEN   ! nitrogen fixation rate in ocean ( vertically integrated ) 
    338                zwork(:,:) = 0. 
    339                DO jk = 1, jpkm1 
    340                  zwork(:,:) = zwork(:,:) + nitrpot(:,:,jk) * nitrfix * rno3 * zfact * e3t(:,:,jk,Kmm) * tmask(:,:,jk) 
    341                ENDDO 
    342                CALL iom_put( "INTNFIX" , zwork )  
    343             ENDIF 
    344             IF( iom_use("SedCal" ) ) CALL iom_put( "SedCal", zsedcal(:,:) * zfact ) 
    345             IF( iom_use("SedSi" ) )  CALL iom_put( "SedSi",  zsedsi (:,:) * zfact ) 
    346             IF( iom_use("SedC" ) )   CALL iom_put( "SedC",   zsedc  (:,:) * zfact ) 
    347             IF( iom_use("Sdenit" ) ) CALL iom_put( "Sdenit", sdenit (:,:) * zfact * rno3 ) 
    348          ENDIF 
     333      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     334         zfact = 1.e+3 * rfact2r !  conversion from molC/l/kt  to molN/m3/s 
     335         CALL iom_put( "Nfix", nitrpot(:,:,:) * nitrfix * rno3 * zfact * tmask(:,:,:) )  ! nitrogen fixation  
     336         CALL iom_put( "SedCal", zsedcal(:,:) * zfact ) 
     337         CALL iom_put( "SedSi" , zsedsi (:,:) * zfact ) 
     338         CALL iom_put( "SedC"  , zsedc  (:,:) * zfact ) 
     339         CALL iom_put( "Sdenit", sdenit (:,:) * zfact * rno3 ) 
    349340      ENDIF 
    350341      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsink.F90

    r12236 r12258  
    6363      CHARACTER (len=25) :: charout 
    6464      REAL(wp) :: zmax, zfact 
    65       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    66       REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    6765      !!--------------------------------------------------------------------- 
    6866      ! 
     
    130128        &   t_oce_co2_exp = glob_sum( 'p4zsink', ( sinking(:,:,ik100) + sinking2(:,:,ik100) ) * e1e2t(:,:) * tmask(:,:,1) ) 
    131129     ! 
    132      IF( lk_iomput ) THEN 
    133        IF( knt == nrdttrc ) THEN 
    134           ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    135           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    136           ! 
    137           IF( iom_use( "EPC100" ) )  THEN 
    138               zw2d(:,:) = ( sinking(:,:,ik100) + sinking2(:,:,ik100) ) * zfact * tmask(:,:,1) ! Export of carbon at 100m 
    139               CALL iom_put( "EPC100"  , zw2d ) 
    140           ENDIF 
    141           IF( iom_use( "EPFE100" ) )  THEN 
    142               zw2d(:,:) = ( sinkfer(:,:,ik100) + sinkfer2(:,:,ik100) ) * zfact * tmask(:,:,1) ! Export of iron at 100m 
    143               CALL iom_put( "EPFE100"  , zw2d ) 
    144           ENDIF 
    145           IF( iom_use( "EPCAL100" ) )  THEN 
    146               zw2d(:,:) = sinkcal(:,:,ik100) * zfact * tmask(:,:,1) ! Export of calcite at 100m 
    147               CALL iom_put( "EPCAL100"  , zw2d ) 
    148           ENDIF 
    149           IF( iom_use( "EPSI100" ) )  THEN 
    150               zw2d(:,:) =  sinksil(:,:,ik100) * zfact * tmask(:,:,1) ! Export of bigenic silica at 100m 
    151               CALL iom_put( "EPSI100"  , zw2d ) 
    152           ENDIF 
    153           IF( iom_use( "EXPC" ) )  THEN 
    154               zw3d(:,:,:) = ( sinking(:,:,:) + sinking2(:,:,:) ) * zfact * tmask(:,:,:) ! Export of carbon in the water column 
    155               CALL iom_put( "EXPC"  , zw3d ) 
    156           ENDIF 
    157           IF( iom_use( "EXPFE" ) )  THEN 
    158               zw3d(:,:,:) = ( sinkfer(:,:,:) + sinkfer2(:,:,:) ) * zfact * tmask(:,:,:) ! Export of iron  
    159               CALL iom_put( "EXPFE"  , zw3d ) 
    160           ENDIF 
    161           IF( iom_use( "EXPCAL" ) )  THEN 
    162               zw3d(:,:,:) = sinkcal(:,:,:) * zfact * tmask(:,:,:) ! Export of calcite  
    163               CALL iom_put( "EXPCAL"  , zw3d ) 
    164           ENDIF 
    165           IF( iom_use( "EXPSI" ) )  THEN 
    166               zw3d(:,:,:) = sinksil(:,:,:) * zfact * tmask(:,:,:) ! Export of bigenic silica 
    167               CALL iom_put( "EXPSI"  , zw3d ) 
    168           ENDIF 
    169           IF( iom_use( "tcexp" ) )  CALL iom_put( "tcexp" , t_oce_co2_exp * zfact )   ! molC/s 
    170           !  
    171           DEALLOCATE( zw2d, zw3d ) 
    172         ENDIF 
     130     IF( lk_iomput .AND.  knt == nrdttrc ) THEN 
     131       zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
     132       ! 
     133       CALL iom_put( "EPC100"  , ( sinking(:,:,ik100) + sinking2(:,:,ik100) ) * zfact * tmask(:,:,1) ) ! Export of carbon at 100m  
     134       CALL iom_put( "EPFE100" , ( sinkfer(:,:,ik100) + sinkfer2(:,:,ik100) ) * zfact * tmask(:,:,1) ) ! Export of iron at 100m  
     135       CALL iom_put( "EPCAL100", sinkcal(:,:,ik100) * zfact * tmask(:,:,1) )      ! Export of calcite at 100m  
     136       CALL iom_put( "EPSI100" , sinksil(:,:,ik100) * zfact * tmask(:,:,1) )          ! Export of bigenic silica at 100m  
     137       CALL iom_put( "EXPC"    , ( sinking(:,:,:) + sinking2(:,:,:) ) * zfact * tmask(:,:,:) ) ! Export of carbon in the water column  
     138       CALL iom_put( "EXPFE"   , ( sinkfer(:,:,:) + sinkfer2(:,:,:) ) * zfact * tmask(:,:,:) ) ! Export of iron   
     139       CALL iom_put( "EXPCAL"  , sinkcal(:,:,:) * zfact * tmask(:,:,:) )      ! Export of calcite  
     140       CALL iom_put( "EXPSI"   , sinksil(:,:,:) * zfact * tmask(:,:,:) )      ! Export of bigenic silica 
     141       CALL iom_put( "tcexp"   , t_oce_co2_exp * zfact )   ! molC/s 
     142       !  
    173143      ENDIF 
    174144      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zlim.F90

    r11960 r12258  
    407407      ! 
    408408      IF( lk_iomput .AND. knt == nrdttrc ) THEN        ! save output diagnostics 
    409         IF( iom_use( "xfracal" ) ) CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) )  ! euphotic layer deptht 
    410         IF( iom_use( "LNnut"   ) ) CALL iom_put( "LNnut"  , xlimphy(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
    411         IF( iom_use( "LPnut"   ) ) CALL iom_put( "LPnut"  , xlimpic(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
    412         IF( iom_use( "LDnut"   ) ) CALL iom_put( "LDnut"  , xlimdia(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
    413         IF( iom_use( "LNFe"    ) ) CALL iom_put( "LNFe"   , xlimnfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    414         IF( iom_use( "LPFe"    ) ) CALL iom_put( "LPFe"   , xlimpfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    415         IF( iom_use( "LDFe"    ) ) CALL iom_put( "LDFe"   , xlimdfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    416         IF( iom_use( "SIZEN"   ) ) CALL iom_put( "SIZEN"  , sizen(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    417         IF( iom_use( "SIZEP"   ) ) CALL iom_put( "SIZEP"  , sizep(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    418         IF( iom_use( "SIZED"   ) ) CALL iom_put( "SIZED"  , sized(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     409        CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) )  ! euphotic layer deptht 
     410        CALL iom_put( "LNnut"  , xlimphy(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
     411        CALL iom_put( "LPnut"  , xlimpic(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
     412        CALL iom_put( "LDnut"  , xlimdia(:,:,:) * tmask(:,:,:) )  ! Nutrient limitation term 
     413        CALL iom_put( "LNFe"   , xlimnfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     414        CALL iom_put( "LPFe"   , xlimpfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     415        CALL iom_put( "LDFe"   , xlimdfe(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     416        CALL iom_put( "SIZEN"  , sizen  (:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     417        CALL iom_put( "SIZEP"  , sizep  (:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     418        CALL iom_put( "SIZED"  , sized  (:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    419419      ENDIF 
    420420      ! 
     
    523523      zpsiuptk = 2.3 * rno3 
    524524      ! 
    525       nitrfac (:,:,:) = 0._wp 
     525      nitrfac(:,:,jpk) = 0._wp 
     526      xfracal(:,:,jpk) = 0._wp 
     527      xlimphy(:,:,jpk) = 0._wp 
     528      xlimpic(:,:,jpk) = 0._wp 
     529      xlimdia(:,:,jpk) = 0._wp 
     530      xlimnfe(:,:,jpk) = 0._wp 
     531      xlimpfe(:,:,jpk) = 0._wp 
     532      xlimdfe(:,:,jpk) = 0._wp 
     533      sizen  (:,:,jpk) = 0._wp 
     534      sizep  (:,:,jpk) = 0._wp 
     535      sized  (:,:,jpk) = 0._wp 
    526536      ! 
    527537   END SUBROUTINE p5z_lim_init 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmeso.F90

    r12236 r12258  
    8787      CHARACTER (len=25) :: charout 
    8888      REAL(wp) :: zrfact2, zmetexcess 
    89       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo2 
    90       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d, zz2ligprod 
     89      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo2,  zz2ligprod 
    9190 
    9291      !!--------------------------------------------------------------------- 
     
    9493      IF( ln_timing )   CALL timing_start('p5z_meso') 
    9594      ! 
    96  
    97       zgrazing(:,:,:) = 0._wp 
    98       zfezoo2 (:,:,:) = 0._wp 
    99       ! 
    100       IF (ln_ligand) THEN 
    101          ALLOCATE( zz2ligprod(jpi,jpj,jpk) ) 
    102          zz2ligprod(:,:,:) = 0._wp 
    103       ENDIF 
    104  
    10595      zmetexcess = 0.0 
    10696      IF ( bmetexc2 ) zmetexcess = 1.0 
     
    357347      ! 
    358348      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    359          ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    360          IF( iom_use( "GRAZ2" ) ) THEN 
    361             zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !   Total grazing of phyto by zooplankton 
    362             CALL iom_put( "GRAZ2", zw3d ) 
     349        CALL iom_put( "PCAL"  , prodcal(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  !  Calcite production  
     350        IF( iom_use("GRAZ2") ) THEN  !   Total grazing of phyto by zooplankton 
     351           zgrazing2(:,:,jpk) = 0._wp ;  CALL iom_put( "GRAZ2" , zgrazing2(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
    363352         ENDIF 
    364          IF( iom_use( "PCAL" ) ) THEN 
    365             zw3d(:,:,:) = prodcal(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)   !  Calcite production 
    366             CALL iom_put( "PCAL", zw3d ) 
     353         IF( iom_use("FEZOO2") ) THEN   
     354           zfezoo2 (:,:,jpk) = 0._wp ; CALL iom_put( "FEZOO2", zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    367355         ENDIF 
    368          IF( iom_use( "FEZOO2" ) ) THEN 
    369             zw3d(:,:,:) = zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
    370             CALL iom_put( "FEZOO2", zw3d ) 
     356         IF( ln_ligand ) THEN 
     357            zz2ligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ2", zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  ) 
    371358         ENDIF 
    372          IF( iom_use( "LPRODZ2" ) .AND. ln_ligand )  THEN 
    373             zw3d(:,:,:) = zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
    374             CALL iom_put( "LPRODZ2"  , zw3d ) 
    375          ENDIF 
    376          DEALLOCATE( zw3d ) 
    377359      ENDIF 
    378360      ! 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmicro.F90

    r12236 r12258  
    8585      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 
    8686      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 
    87       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo 
    88       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d, zzligprod 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo, zzligprod 
    8988      CHARACTER (len=25) :: charout 
    9089      !!--------------------------------------------------------------------- 
    9190      ! 
    9291      IF( ln_timing )   CALL timing_start('p5z_micro') 
    93       ! 
    94       IF (ln_ligand) THEN 
    95          ALLOCATE( zzligprod(jpi,jpj,jpk) ) 
    96          zzligprod(:,:,:) = 0._wp 
    97       ENDIF 
    9892      ! 
    9993      zmetexcess = 0.0 
     
    300294      END DO 
    301295      ! 
    302       IF( lk_iomput ) THEN 
    303          IF( knt == nrdttrc ) THEN 
    304             ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    305             IF( iom_use( "GRAZ1" ) ) THEN 
    306                zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    307                CALL iom_put( "GRAZ1", zw3d ) 
    308             ENDIF 
    309             IF( iom_use( "FEZOO" ) ) THEN 
    310                zw3d(:,:,:) = zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
    311                CALL iom_put( "FEZOO", zw3d ) 
    312             ENDIF 
    313             IF( iom_use( "LPRODZ" ) .AND. ln_ligand )  THEN 
    314                zw3d(:,:,:) = zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
    315                CALL iom_put( "LPRODZ"  , zw3d ) 
    316             ENDIF 
    317             DEALLOCATE( zw3d ) 
     296      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     297       IF( iom_use("GRAZ1") ) THEN  !   Total grazing of phyto by zooplankton 
     298           zgrazing(:,:,jpk) = 0._wp   ; CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
     299         ENDIF 
     300         IF( iom_use("FEZOO") ) THEN   
     301           zfezoo (:,:,jpk) = 0._wp    ; CALL iom_put( "FEZOO" , zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     302         ENDIF 
     303         IF( ln_ligand ) THEN 
     304            zzligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ", zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)) 
    318305         ENDIF 
    319306      ENDIF 
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zprod.F90

    r12236 r12258  
    9595      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 
    9696      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpligprod1, zpligprod2 
    97       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d 
    98       REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) :: zw2d 
    9997      !!--------------------------------------------------------------------- 
    10098      ! 
    10199      IF( ln_timing )   CALL timing_start('p5z_prod') 
    102100      ! 
    103       zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 
    104       zprofed (:,:,:) = 0._wp ; zprofep (:,:,:) = 0._wp ; zprofen (:,:,:) = 0._wp 
    105       zpronewn(:,:,:) = 0._wp ; zpronewp(:,:,:) = 0._wp ; zpronewd(:,:,:) = 0._wp 
    106       zproregn(:,:,:) = 0._wp ; zproregp(:,:,:) = 0._wp ; zproregd(:,:,:) = 0._wp  
    107       zpropo4n(:,:,:) = 0._wp ; zpropo4p(:,:,:) = 0._wp ; zpropo4d(:,:,:) = 0._wp 
    108       zprdia  (:,:,:) = 0._wp ; zprpic  (:,:,:) = 0._wp ; zprbio  (:,:,:) = 0._wp 
    109       zprodopn(:,:,:) = 0._wp ; zprodopp(:,:,:) = 0._wp ; zprodopd(:,:,:) = 0._wp 
    110       zysopt  (:,:,:) = 0._wp 
    111       zrespn  (:,:,:) = 0._wp ; zrespp  (:,:,:) = 0._wp ; zrespd  (:,:,:) = 0._wp  
     101      zprorcan(:,:,jpk) = 0._wp ; zprorcap(:,:,jpk) = 0._wp ; zprorcad(:,:,jpk) = 0._wp 
     102      zcroissn(:,:,jpk) = 0._wp ; zcroissp(:,:,jpk) = 0._wp ; zcroissd(:,:,jpk) = 0._wp 
     103      zprofed (:,:,jpk) = 0._wp ; zprofep (:,:,jpk) = 0._wp ; zprofen (:,:,jpk) = 0._wp 
     104      zpronewn(:,:,jpk) = 0._wp ; zpronewp(:,:,jpk) = 0._wp ; zpronewd(:,:,jpk) = 0._wp 
     105      zproregn(:,:,jpk) = 0._wp ; zproregp(:,:,jpk) = 0._wp ; zproregd(:,:,jpk) = 0._wp  
     106      zpropo4n(:,:,jpk) = 0._wp ; zpropo4p(:,:,jpk) = 0._wp ; zpropo4d(:,:,jpk) = 0._wp 
     107      zprdia  (:,:,jpk) = 0._wp ; zprpic  (:,:,jpk) = 0._wp ; zprbio  (:,:,jpk) = 0._wp 
     108      zprodopn(:,:,jpk) = 0._wp ; zprodopp(:,:,jpk) = 0._wp ; zprodopd(:,:,jpk) = 0._wp 
     109      zysopt  (:,:,jpk) = 0._wp  
     110      zrespn  (:,:,jpk) = 0._wp ; zrespp  (:,:,jpk) = 0._wp ; zrespd  (:,:,jpk) = 0._wp  
    112111 
    113112      ! Computation of the optimal production 
     
    445444     ! 
    446445     IF( ln_ligand ) THEN 
    447          zpligprod1(:,:,:) = 0._wp    ;    zpligprod2(:,:,:) = 0._wp 
     446         zpligprod1(:,:,jpk) = 0._wp    ;    zpligprod2(:,:,jpk) = 0._wp              
    448447         DO jk = 1, jpkm1 
    449448            DO jj = 1, jpj 
     
    466465      & tpp = glob_sum( 'p5zprod', ( zprorcan(:,:,:) + zprorcad(:,:,:) + zprorcap(:,:,:) ) * cvol(:,:,:) ) 
    467466 
    468     IF( lk_iomput ) THEN 
    469        IF( knt == nrdttrc ) THEN 
    470           ALLOCATE( zw2d(jpi,jpj), zw3d(jpi,jpj,jpk) ) 
    471           zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
    472           ! 
    473           IF( iom_use( "PPPHYN" ) .OR. iom_use( "PPPHYD" ) .OR. iom_use( "PPPHYP" ) )  THEN 
    474               zw3d(:,:,:) = zprorcan(:,:,:) * zfact * tmask(:,:,:)  ! primary production by nanophyto 
    475               CALL iom_put( "PPPHYN"  , zw3d ) 
    476               ! 
    477               zw3d(:,:,:) = zprorcap(:,:,:) * zfact * tmask(:,:,:)  ! primary production by picophyto 
    478               CALL iom_put( "PPPHYP"  , zw3d ) 
    479               ! 
    480               zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:)  ! primary production by diatomes 
    481               CALL iom_put( "PPPHYD"  , zw3d ) 
    482           ENDIF 
    483           IF( iom_use( "PPNEWN" ) .OR. iom_use( "PPNEWD" ) .OR. iom_use( "PPNEWP" ) )  THEN 
    484               zw3d(:,:,:) = zpronewn(:,:,:) * zfact * tmask(:,:,:)  ! new primary production by nanophyto 
    485               CALL iom_put( "PPNEWN"  , zw3d ) 
    486               ! 
    487               zw3d(:,:,:) = zpronewp(:,:,:) * zfact * tmask(:,:,:)  ! new primary production by picophyto 
    488               CALL iom_put( "PPNEWP"  , zw3d ) 
    489               ! 
    490               zw3d(:,:,:) = zpronewd(:,:,:) * zfact * tmask(:,:,:)  ! new primary production by diatomes 
    491               CALL iom_put( "PPNEWD"  , zw3d ) 
    492           ENDIF 
    493           IF( iom_use( "PBSi" ) )  THEN 
    494               zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) ! biogenic silica production 
    495               CALL iom_put( "PBSi"  , zw3d ) 
    496           ENDIF 
    497           IF( iom_use( "PFeN" ) .OR. iom_use( "PFeD" ) .OR. iom_use( "PFeP" ) )  THEN 
    498               zw3d(:,:,:) = zprofen(:,:,:) * zfact * tmask(:,:,:)  ! biogenic iron production by nanophyto 
    499               CALL iom_put( "PFeN"  , zw3d ) 
    500               ! 
    501               zw3d(:,:,:) = zprofep(:,:,:) * zfact * tmask(:,:,:)  ! biogenic iron production by picophyto 
    502               CALL iom_put( "PFeP"  , zw3d ) 
    503               ! 
    504               zw3d(:,:,:) = zprofed(:,:,:) * zfact * tmask(:,:,:)  ! biogenic iron production by  diatomes 
    505               CALL iom_put( "PFeD"  , zw3d ) 
    506           ENDIF 
    507           IF( iom_use( "LPRODP" ) )  THEN 
    508               zw3d(:,:,:) = zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
    509               CALL iom_put( "LPRODP"  , zw3d ) 
    510           ENDIF 
    511           IF( iom_use( "LDETP" ) )  THEN 
    512               zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
    513               CALL iom_put( "LDETP"  , zw3d ) 
    514           ENDIF 
    515           IF( iom_use( "Mumax" ) )  THEN 
    516               zw3d(:,:,:) = zprmaxn(:,:,:) * tmask(:,:,:)   ! Maximum growth rate 
    517               CALL iom_put( "Mumax"  , zw3d ) 
    518           ENDIF 
    519           IF( iom_use( "MuN" ) .OR. iom_use( "MuD" ) .OR. iom_use( "MuP" ) )  THEN 
    520               zw3d(:,:,:) = zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:)  ! Realized growth rate for nanophyto 
    521               CALL iom_put( "MuN"  , zw3d ) 
    522               ! 
    523               zw3d(:,:,:) = zprpic(:,:,:) * xlimpic(:,:,:) * tmask(:,:,:)  ! Realized growth rate for picophyto 
    524               CALL iom_put( "MuP"  , zw3d ) 
    525               ! 
    526               zw3d(:,:,:) =  zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:)  ! Realized growth rate for diatoms 
    527               CALL iom_put( "MuD"  , zw3d ) 
    528           ENDIF 
    529           IF( iom_use( "LNlight" ) .OR. iom_use( "LDlight" ) .OR. iom_use( "LPlight" ) )  THEN 
    530               zw3d(:,:,:) = zprbio (:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 
    531               CALL iom_put( "LNlight"  , zw3d ) 
    532               ! 
    533               zw3d(:,:,:) = zprpic (:,:,:) / (zprmaxp(:,:,:) + rtrn) * tmask(:,:,:) ! light limitation term 
    534               CALL iom_put( "LPlight"  , zw3d ) 
    535               ! 
    536               zw3d(:,:,:) =  zprdia (:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:)  ! light limitation term 
    537               CALL iom_put( "LDlight"  , zw3d ) 
    538           ENDIF 
    539           IF( iom_use( "MunetN" ) .OR. iom_use( "MunetD" ) .OR. iom_use( "MunetP" ) )  THEN 
    540               zw3d(:,:,:) = zcroissn(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for nanophyto 
    541               CALL iom_put( "MunetN"  , zw3d ) 
    542               ! 
    543               zw3d(:,:,:) = zcroissp(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for picophyto 
    544               CALL iom_put( "MunetP"  , zw3d ) 
    545               ! 
    546               zw3d(:,:,:) = zcroissd(:,:,:) * tmask(:,:,:) ! ! Realized growth rate for diatomes 
    547               CALL iom_put( "MunetD"  , zw3d ) 
    548               ! 
    549           ENDIF 
    550  
    551           IF( iom_use( "tintpp" ) )  CALL iom_put( "tintpp" , tpp * zfact )  !  global total integrated primary production molC/s 
    552           ! 
    553           DEALLOCATE( zw2d, zw3d ) 
    554        ENDIF 
     467    IF( lk_iomput .AND.  knt == nrdttrc ) THEN 
     468       zfact = 1.e+3 * rfact2r  !  conversion from mol/l/kt to  mol/m3/s 
     469       ! 
     470       CALL iom_put( "PPPHYP"  , zprorcap(:,:,:) * zfact * tmask(:,:,:)   ) ! primary production by picophyto 
     471       CALL iom_put( "PPPHYN"  , zprorcan(:,:,:) * zfact * tmask(:,:,:) )  ! primary production by nanophyto 
     472       CALL iom_put( "PPPHYD"  , zprorcad(:,:,:) * zfact * tmask(:,:,:)   ) ! primary production by diatomes 
     473       CALL iom_put( "PPNEWN"  , zpronewp(:,:,:) * zfact * tmask(:,:,:)    ) ! new primary production by picophyto 
     474       CALL iom_put( "PPNEWN"  , zpronewn(:,:,:) * zfact * tmask(:,:,:)    ) ! new primary production by nanophyto 
     475       CALL iom_put( "PPNEWD"  , zpronewd(:,:,:) * zfact * tmask(:,:,:)   ) ! new primary production by diatomes 
     476       CALL iom_put( "PBSi"    , zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:)  ) ! biogenic silica production 
     477       CALL iom_put( "PFeP"    , zprofep(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by picophyto 
     478       CALL iom_put( "PFeN"    , zprofen(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by nanophyto 
     479       CALL iom_put( "PFeD"    , zprofed(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by  diatomes 
     480       CALL iom_put( "LPRODP"  , zpligprod1(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 
     481       CALL iom_put( "LDETP"   , zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) ) 
     482       CALL iom_put( "Mumax"   , zprmaxn(:,:,:) * tmask(:,:,:)  ) ! Maximum growth rate 
     483       CALL iom_put( "MuP"     , zprpic(:,:,:) * xlimpic(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for picophyto 
     484       CALL iom_put( "MuN"     , zprbio(:,:,:) * xlimphy(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for nanophyto 
     485       CALL iom_put( "MuD"     , zprdia(:,:,:) * xlimdia(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for diatoms 
     486       CALL iom_put( "LPlight" , zprpic(:,:,:) / (zprmaxp(:,:,:) + rtrn) * tmask(:,:,:)  )  ! light limitation term 
     487       CALL iom_put( "LNlight" , zprbio(:,:,:) / (zprmaxn(:,:,:) + rtrn) * tmask(:,:,:)  )  ! light limitation term 
     488       CALL iom_put( "LDlight" , zprdia(:,:,:) / (zprmaxd(:,:,:) + rtrn) * tmask(:,:,:)   ) 
     489       CALL iom_put( "MunetP"  , zcroissp(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for picophyto 
     490       CALL iom_put( "MunetN"  , zcroissn(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for nanophyto 
     491       CALL iom_put( "MunetD"  , zcroissd(:,:,:) * tmask(:,:,:) ) ! Realized growth rate for diatoms 
     492       CALL iom_put( "TPP"     , ( zprorcap(:,:,:) + zprorcan(:,:,:) + zprorcad(:,:,:) ) * zfact * tmask(:,:,:)  )  ! total primary production 
     493       CALL iom_put( "TPNEW"   , ( zpronewp(:,:,:) + zpronewn(:,:,:) + zpronewd(:,:,:) ) * zfact * tmask(:,:,:)  ) ! total new production 
     494       CALL iom_put( "TPBFE"   , ( zprofep (:,:,:) + zprofen (:,:,:) + zprofed (:,:,:) ) * zfact * tmask(:,:,:)  )  ! total biogenic iron production 
     495       CALL iom_put( "tintpp"  , tpp * zfact )  !  global total integrated primary production molC/s 
    555496     ENDIF 
    556497 
Note: See TracChangeset for help on using the changeset viewer.