Changeset 12258 for NEMO/branches
- Timestamp:
- 2019-12-16T14:38:32+01:00 (4 years ago)
- 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 38 38 &namdyn_rhg ! Ice rheology 39 39 !------------------------------------------------------------------------------ 40 ln_aEVP = .false. ! adaptive rheology (Kimmritz et al. 2016 & 2017)41 40 / 42 41 !------------------------------------------------------------------------------ -
NEMO/branches/2019/dev_r11943_MERGE_2019/cfgs/SHARED/field_def_nemo-pisces.xml
r12193 r12258 268 268 <field id="O2MIN" long_name="Oxygen minimum concentration" unit="mol/m3" /> 269 269 <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="INTP NEW" long_name="Vertically integrated new primary production" unit="mol/m2/s" />275 <field id="INTP BFE" long_name="Vertically integrated of biogenic iron production" unit="mol/m2/s" />276 <field id="INTPB SI" long_name="Vertically integrated of biogenic Si production" unit="mol/m2/s" />277 <field id="INTP CAL" 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 > 278 278 279 279 <!-- PISCES light : variables available with key_pisces_reduced --> -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zbc.F90
r12193 r12258 98 98 ! 99 99 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 104 102 ENDIF 105 103 DEALLOCATE( zirondep ) … … 158 156 tr(:,:,1,jpfer,Krhs) = tr(:,:,1,jpfer,Krhs) + zironice(:,:) 159 157 ! 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 162 159 ! 163 160 DEALLOCATE( zironice ) … … 170 167 tr(:,:,:,jpfer,Krhs) = tr(:,:,:,jpfer,Krhs) + ironsed(:,:,:) * rfact 171 168 ! 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(:,:,:) ) 174 170 ENDIF 175 171 … … 186 182 IF( ln_ligand ) tr(:,:,:,jplgw,Krhs) = tr(:,:,:,jplgw,Krhs) + ( hydrofe(:,:,:) * lgw_rath ) * rfact 187 183 ! 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 190 185 ENDIF 191 186 IF( ln_timing ) CALL timing_stop('p4z_bc') -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zfechem.F90
r12236 r12258 72 72 IF( ln_timing ) CALL timing_start('p4z_fechem') 73 73 ! 74 zFe3 (:,:,:) = 0.75 zFeL1(:,:,:) = 0.76 zTL1 (:,:,:) = 0.77 78 74 ! Total ligand concentration : Ligands can be chosen to be constant or variable 79 75 ! Parameterization from Tagliabue and Voelker (2011) … … 210 206 IF( knt == nrdttrc ) THEN 211 207 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 215 217 IF( iom_use("Totlig") ) CALL iom_put("Totlig" , ztotlig(:,:,:) * tmask(:,:,:) ) ! TL 216 218 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 221 229 ENDIF 222 230 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zflx.F90
r12236 r12258 81 81 CHARACTER (len=25) :: charout 82 82 REAL(wp), DIMENSION(jpi,jpj) :: zkgco2, zkgo2, zh2co3, zoflx, zpco2atm 83 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zw2d84 83 !!--------------------------------------------------------------------- 85 84 ! … … 187 186 188 187 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 221 197 ENDIF 222 198 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zligand.F90
r12236 r12258 44 44 INTEGER :: ji, jj, jk 45 45 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 48 47 CHARACTER (len=25) :: charout 49 48 !!--------------------------------------------------------------------- … … 70 69 zligrem(ji,jj,jk) = zlgwr 71 70 zligpr(ji,jj,jk) = zlgwpr 72 z rligprod(ji,jj,jk) = zlgwp71 zligprod(ji,jj,jk) = zlgwp 73 72 ! 74 73 END DO … … 79 78 ! --------------------------------- 80 79 IF( lk_iomput .AND. knt == nrdttrc ) THEN 81 ALLOCATE( zw3d(jpi,jpj,jpk) )82 80 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(:,:,:) ) 85 82 ENDIF 86 83 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(:,:,:) ) 89 85 ENDIF 90 86 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(:,:,:) ) 93 88 ENDIF 94 DEALLOCATE( zw3d )95 89 ENDIF 96 90 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlim.F90
r11960 r12258 216 216 ! 217 217 IF( lk_iomput .AND. knt == nrdttrc ) THEN ! save output diagnostics 218 IF( iom_use( "xfracal" ) )CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) ) ! euphotic layer deptht219 IF( iom_use( "LNnut" ) )CALL iom_put( "LNnut" , xlimphy(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term220 IF( iom_use( "LDnut" ) )CALL iom_put( "LDnut" , xlimdia(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term221 IF( iom_use( "LNFe" ) )CALL iom_put( "LNFe" , xlimnfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term222 IF( iom_use( "LDFe" ) )CALL iom_put( "LDFe" , xlimdfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term218 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 223 223 ENDIF 224 224 ! … … 283 283 ENDIF 284 284 ! 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 286 292 ! 287 293 END SUBROUTINE p4z_lim_init -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zlys.F90
r12236 r12258 65 65 IF( ln_timing ) CALL timing_start('p4z_lys') 66 66 ! 67 zco3 (:,:,:) = 0.68 zcaldiss(:,:,:) = 0.69 67 zhinit (:,:,:) = hi(:,:,:) * 1000. / ( rhop(:,:,:) + rtrn ) 70 68 ! … … 124 122 125 123 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 130 134 ENDIF 131 135 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmeso.F90
r12252 r12258 225 225 ! 226 226 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(:,:,:) ) 235 236 ENDIF 236 237 ENDIF -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zmicro.F90
r12252 r12258 182 182 ! 183 183 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(:,:,:)) 191 192 ENDIF 192 193 ENDIF -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zopt.F90
r11960 r12258 72 72 ! 73 73 IF( ln_timing ) CALL timing_start('p4z_opt') 74 IF( ln_p5z ) ALLOCATE( zetmp5(jpi,jpj) )75 74 76 75 IF( knt == 1 .AND. ln_varpar ) CALL p4z_opt_sbc( kt ) … … 242 241 ! 243 242 IF( ln_p5z ) THEN 244 zetmp5 (:,:) = 0.e0243 ALLOCATE( zetmp5(jpi,jpj) ) ; zetmp5 (:,:) = 0.e0 245 244 DO jk = 1, nksrp 246 245 DO jj = 1, jpj … … 265 264 END DO 266 265 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 ! 277 275 IF( ln_timing ) CALL timing_stop('p4z_opt') 278 276 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zprod.F90
r12236 r12258 90 90 ! Allocate temporary workspace 91 91 ! 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 97 98 98 99 ! Computation of the optimal production … … 321 322 ! 322 323 IF( ln_ligand ) THEN 323 zpligprod1(:,:, :) = 0._wp ; zpligprod2(:,:,:) = 0._wp324 zpligprod1(:,:,jpk) = 0._wp ; zpligprod2(:,:,jpk) = 0._wp 324 325 DO jk = 1, jpkm1 325 326 DO jj = 1, jpj … … 342 343 & tpp = glob_sum( 'p4zprod', ( zprorcan(:,:,:) + zprorcad(:,:,:) ) * cvol(:,:,:) ) 343 344 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 457 366 ENDIF 458 367 -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zrem.F90
r12236 r12258 69 69 REAL(wp), DIMENSION(jpi,jpj ) :: ztempbac 70 70 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib, zdepeff, zfebact 71 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d72 71 !!--------------------------------------------------------------------- 73 72 ! … … 276 275 277 276 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 281 278 ! 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 ) 285 281 ENDIF 286 IF( iom_use( "DENIT" ) ) THEN287 zw3d(:,:,:) = denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zfact ! Denitrification288 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(:,:,:) ) 289 285 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 ) 300 287 ENDIF 301 288 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsed.F90
r12236 r12258 331 331 ENDIF 332 332 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 ) 349 340 ENDIF 350 341 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p4zsink.F90
r12236 r12258 63 63 CHARACTER (len=25) :: charout 64 64 REAL(wp) :: zmax, zfact 65 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d66 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d67 65 !!--------------------------------------------------------------------- 68 66 ! … … 130 128 & t_oce_co2_exp = glob_sum( 'p4zsink', ( sinking(:,:,ik100) + sinking2(:,:,ik100) ) * e1e2t(:,:) * tmask(:,:,1) ) 131 129 ! 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 ! 173 143 ENDIF 174 144 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zlim.F90
r11960 r12258 407 407 ! 408 408 IF( lk_iomput .AND. knt == nrdttrc ) THEN ! save output diagnostics 409 IF( iom_use( "xfracal" ) )CALL iom_put( "xfracal", xfracal(:,:,:) * tmask(:,:,:) ) ! euphotic layer deptht410 IF( iom_use( "LNnut" ) )CALL iom_put( "LNnut" , xlimphy(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term411 IF( iom_use( "LPnut" ) )CALL iom_put( "LPnut" , xlimpic(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term412 IF( iom_use( "LDnut" ) )CALL iom_put( "LDnut" , xlimdia(:,:,:) * tmask(:,:,:) ) ! Nutrient limitation term413 IF( iom_use( "LNFe" ) )CALL iom_put( "LNFe" , xlimnfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term414 IF( iom_use( "LPFe" ) )CALL iom_put( "LPFe" , xlimpfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term415 IF( iom_use( "LDFe" ) )CALL iom_put( "LDFe" , xlimdfe(:,:,:) * tmask(:,:,:) ) ! Iron limitation term416 IF( iom_use( "SIZEN" ) ) CALL iom_put( "SIZEN" , sizen(:,:,:) * tmask(:,:,:) ) ! Iron limitation term417 IF( iom_use( "SIZEP" ) ) CALL iom_put( "SIZEP" , sizep(:,:,:) * tmask(:,:,:) ) ! Iron limitation term418 IF( iom_use( "SIZED" ) ) CALL iom_put( "SIZED" , sized(:,:,:) * tmask(:,:,:) ) ! Iron limitation term409 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 419 419 ENDIF 420 420 ! … … 523 523 zpsiuptk = 2.3 * rno3 524 524 ! 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 526 536 ! 527 537 END SUBROUTINE p5z_lim_init -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmeso.F90
r12236 r12258 87 87 CHARACTER (len=25) :: charout 88 88 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 91 90 92 91 !!--------------------------------------------------------------------- … … 94 93 IF( ln_timing ) CALL timing_start('p5z_meso') 95 94 ! 96 97 zgrazing(:,:,:) = 0._wp98 zfezoo2 (:,:,:) = 0._wp99 !100 IF (ln_ligand) THEN101 ALLOCATE( zz2ligprod(jpi,jpj,jpk) )102 zz2ligprod(:,:,:) = 0._wp103 ENDIF104 105 95 zmetexcess = 0.0 106 96 IF ( bmetexc2 ) zmetexcess = 1.0 … … 357 347 ! 358 348 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(:,:,:) ) 363 352 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(:,:,:) ) 367 355 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(:,:,:) ) 371 358 ENDIF 372 IF( iom_use( "LPRODZ2" ) .AND. ln_ligand ) THEN373 zw3d(:,:,:) = zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)374 CALL iom_put( "LPRODZ2" , zw3d )375 ENDIF376 DEALLOCATE( zw3d )377 359 ENDIF 378 360 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zmicro.F90
r12236 r12258 85 85 REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 86 86 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 89 88 CHARACTER (len=25) :: charout 90 89 !!--------------------------------------------------------------------- 91 90 ! 92 91 IF( ln_timing ) CALL timing_start('p5z_micro') 93 !94 IF (ln_ligand) THEN95 ALLOCATE( zzligprod(jpi,jpj,jpk) )96 zzligprod(:,:,:) = 0._wp97 ENDIF98 92 ! 99 93 zmetexcess = 0.0 … … 300 294 END DO 301 295 ! 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(:,:,:)) 318 305 ENDIF 319 306 ENDIF -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/TOP/PISCES/P4Z/p5zprod.F90
r12236 r12258 95 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmxl_fac, zmxl_chl 96 96 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpligprod1, zpligprod2 97 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d98 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zw2d99 97 !!--------------------------------------------------------------------- 100 98 ! 101 99 IF( ln_timing ) CALL timing_start('p5z_prod') 102 100 ! 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 112 111 113 112 ! Computation of the optimal production … … 445 444 ! 446 445 IF( ln_ligand ) THEN 447 zpligprod1(:,:, :) = 0._wp ; zpligprod2(:,:,:) = 0._wp446 zpligprod1(:,:,jpk) = 0._wp ; zpligprod2(:,:,jpk) = 0._wp 448 447 DO jk = 1, jpkm1 449 448 DO jj = 1, jpj … … 466 465 & tpp = glob_sum( 'p5zprod', ( zprorcan(:,:,:) + zprorcad(:,:,:) + zprorcap(:,:,:) ) * cvol(:,:,:) ) 467 466 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 555 496 ENDIF 556 497
Note: See TracChangeset
for help on using the changeset viewer.