Changeset 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/TOP/PISCES/P2Z/p2zbio.F90
- Timestamp:
- 2020-05-14T21:46:00+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Property svn:externals
-
old new 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/TOP/PISCES/P2Z/p2zbio.F90
r12178 r12928 57 57 58 58 !! * Substitutions 59 # include " vectopt_loop_substitute.h90"59 # include "do_loop_substitute.h90" 60 60 !!---------------------------------------------------------------------- 61 61 !! NEMO/TOP 4.0 , NEMO Consortium (2018) … … 65 65 CONTAINS 66 66 67 SUBROUTINE p2z_bio( kt )67 SUBROUTINE p2z_bio( kt, Kmm, Krhs ) 68 68 !!--------------------------------------------------------------------- 69 69 !! *** ROUTINE p2z_bio *** … … 78 78 !! is added to the general trend. 79 79 !! 80 !! tr a = tra + zf...tra- zftra...80 !! tr(Krhs) = tr(Krhs) + zf...tr(Krhs) - zftra... 81 81 !! | | 82 82 !! | | … … 84 84 !! 85 85 !!--------------------------------------------------------------------- 86 INTEGER, INTENT( in ) :: kt ! ocean time-step index 86 INTEGER, INTENT( in ) :: kt ! ocean time-step index 87 INTEGER, INTENT( in ) :: Kmm, Krhs ! time level indices 87 88 ! 88 89 INTEGER :: ji, jj, jk, jl … … 120 121 DO jk = 1, jpkbm1 ! Upper ocean (bio-layers) ! 121 122 ! ! -------------------------- ! 122 DO jj = 2, jpjm1 123 DO ji = fs_2, fs_jpim1 124 ! trophic variables( det, zoo, phy, no3, nh4, dom) 125 ! ------------------------------------------------ 126 127 ! negative trophic variables DO not contribute to the fluxes 128 zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 129 zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 130 zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 131 zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 132 znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 133 zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 134 135 ! Limitations 136 zlt = 1. 137 zle = 1. - EXP( -etot(ji,jj,jk) / aki / zlt ) 138 ! psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03 139 zlno3 = zno3 * EXP( -psinut * znh4 ) / ( akno3 + zno3 ) 140 zlnh4 = znh4 / (znh4+aknh4) 141 142 ! sinks and sources 143 ! phytoplankton production and exsudation 144 zno3phy = tmumax * zle * zlt * zlno3 * zphy 145 znh4phy = tmumax * zle * zlt * zlnh4 * zphy 146 147 ! fphylab added by asklod AS Kremeur 2005-03 148 zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy) 149 zphynh4 = rgamma * fphylab * (zno3phy + znh4phy) 150 ! zooplankton production 151 ! preferences 152 zppz = rppz 153 zpdz = 1. - rppz 154 zpppz = ( zppz * zphy ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 155 zppdz = ( zpdz * zdet ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 156 zfood = zpppz * zphy + zppdz * zdet 157 ! filtration 158 zfilpz = taus * zpppz / (aks + zfood) 159 zfildz = taus * zppdz / (aks + zfood) 160 ! grazing 161 zphyzoo = zfilpz * zphy * zzoo 162 zdetzoo = zfildz * zdet * zzoo 163 164 ! fecal pellets production 165 zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo 166 167 ! zooplankton liquide excretion 168 zzoonh4 = tauzn * fzoolab * zzoo 169 zzoodom = tauzn * (1 - fzoolab) * zzoo 170 171 ! mortality 172 ! phytoplankton mortality 173 zphydet = tmminp * zphy 174 175 ! zooplankton mortality 176 ! closure : flux grazing is redistributed below level jpkbio 177 zzoobod = tmminz * zzoo * zzoo 178 xksi(ji,jj) = xksi(ji,jj) + (1-fdbod) * zzoobod * e3t_n(ji,jj,jk) 179 zboddet = fdbod * zzoobod 180 181 ! detritus and dom breakdown 182 zdetnh4 = taudn * fdetlab * zdet 183 zdetdom = taudn * (1 - fdetlab) * zdet 184 185 zdomnh4 = taudomn * zdom 186 187 ! flux added to express how the excess of nitrogen from 188 ! PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment) 189 zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 190 191 ! Nitrification 192 znh4no3 = taunn * znh4 193 194 ! determination of trends 195 ! total trend for each biological tracer 196 zphya = zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 197 zzooa = zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 198 zno3a = - zno3phy + znh4no3 199 znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 200 zdeta = zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet 201 zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 202 203 ! tracer flux at totox-point added to the general trend 204 tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 205 tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 206 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 207 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 208 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 209 tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 210 211 IF( lk_iomput ) THEN 212 ! convert fluxes in per day 213 ze3t = e3t_n(ji,jj,jk) * 86400._wp 214 zw2d(ji,jj,1) = zw2d(ji,jj,1) + zno3phy * ze3t 215 zw2d(ji,jj,2) = zw2d(ji,jj,2) + znh4phy * ze3t 216 zw2d(ji,jj,3) = zw2d(ji,jj,3) + zphydom * ze3t 217 zw2d(ji,jj,4) = zw2d(ji,jj,4) + zphynh4 * ze3t 218 zw2d(ji,jj,5) = zw2d(ji,jj,5) + zphyzoo * ze3t 219 zw2d(ji,jj,6) = zw2d(ji,jj,6) + zphydet * ze3t 220 zw2d(ji,jj,7) = zw2d(ji,jj,7) + zdetzoo * ze3t 221 zw2d(ji,jj,8) = zw2d(ji,jj,8) + zzoodet * ze3t 222 zw2d(ji,jj,9) = zw2d(ji,jj,9) + zzoobod * ze3t 223 zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 224 zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 225 zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 226 zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 227 zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 228 zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 229 zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 230 zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 231 ! 232 zw3d(ji,jj,jk,1) = zno3phy * 86400 233 zw3d(ji,jj,jk,2) = znh4phy * 86400 234 zw3d(ji,jj,jk,3) = znh4no3 * 86400 235 ! 236 ENDIF 237 END DO 238 END DO 123 DO_2D_00_00 124 ! trophic variables( det, zoo, phy, no3, nh4, dom) 125 ! ------------------------------------------------ 126 127 ! negative trophic variables DO not contribute to the fluxes 128 zdet = MAX( 0.e0, tr(ji,jj,jk,jpdet,Kmm) ) 129 zzoo = MAX( 0.e0, tr(ji,jj,jk,jpzoo,Kmm) ) 130 zphy = MAX( 0.e0, tr(ji,jj,jk,jpphy,Kmm) ) 131 zno3 = MAX( 0.e0, tr(ji,jj,jk,jpno3,Kmm) ) 132 znh4 = MAX( 0.e0, tr(ji,jj,jk,jpnh4,Kmm) ) 133 zdom = MAX( 0.e0, tr(ji,jj,jk,jpdom,Kmm) ) 134 135 ! Limitations 136 zlt = 1. 137 zle = 1. - EXP( -etot(ji,jj,jk) / aki / zlt ) 138 ! psinut,akno3,aknh4 added by asklod AS Kremeur 2005-03 139 zlno3 = zno3 * EXP( -psinut * znh4 ) / ( akno3 + zno3 ) 140 zlnh4 = znh4 / (znh4+aknh4) 141 142 ! sinks and sources 143 ! phytoplankton production and exsudation 144 zno3phy = tmumax * zle * zlt * zlno3 * zphy 145 znh4phy = tmumax * zle * zlt * zlnh4 * zphy 146 147 ! fphylab added by asklod AS Kremeur 2005-03 148 zphydom = rgamma * (1 - fphylab) * (zno3phy + znh4phy) 149 zphynh4 = rgamma * fphylab * (zno3phy + znh4phy) 150 ! zooplankton production 151 ! preferences 152 zppz = rppz 153 zpdz = 1. - rppz 154 zpppz = ( zppz * zphy ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 155 zppdz = ( zpdz * zdet ) / ( ( zppz * zphy + zpdz * zdet ) + 1.e-13 ) 156 zfood = zpppz * zphy + zppdz * zdet 157 ! filtration 158 zfilpz = taus * zpppz / (aks + zfood) 159 zfildz = taus * zppdz / (aks + zfood) 160 ! grazing 161 zphyzoo = zfilpz * zphy * zzoo 162 zdetzoo = zfildz * zdet * zzoo 163 164 ! fecal pellets production 165 zzoodet = rpnaz * zphyzoo + rdnaz * zdetzoo 166 167 ! zooplankton liquide excretion 168 zzoonh4 = tauzn * fzoolab * zzoo 169 zzoodom = tauzn * (1 - fzoolab) * zzoo 170 171 ! mortality 172 ! phytoplankton mortality 173 zphydet = tmminp * zphy 174 175 ! zooplankton mortality 176 ! closure : flux grazing is redistributed below level jpkbio 177 zzoobod = tmminz * zzoo * zzoo 178 xksi(ji,jj) = xksi(ji,jj) + (1-fdbod) * zzoobod * e3t(ji,jj,jk,Kmm) 179 zboddet = fdbod * zzoobod 180 181 ! detritus and dom breakdown 182 zdetnh4 = taudn * fdetlab * zdet 183 zdetdom = taudn * (1 - fdetlab) * zdet 184 185 zdomnh4 = taudomn * zdom 186 187 ! flux added to express how the excess of nitrogen from 188 ! PHY, ZOO and DET to DOM goes directly to NH4 (flux of ajustment) 189 zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 190 191 ! Nitrification 192 znh4no3 = taunn * znh4 193 194 ! determination of trends 195 ! total trend for each biological tracer 196 zphya = zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 197 zzooa = zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 198 zno3a = - zno3phy + znh4no3 199 znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 200 zdeta = zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet 201 zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 202 203 ! tracer flux at totox-point added to the general trend 204 tr(ji,jj,jk,jpdet,Krhs) = tr(ji,jj,jk,jpdet,Krhs) + zdeta 205 tr(ji,jj,jk,jpzoo,Krhs) = tr(ji,jj,jk,jpzoo,Krhs) + zzooa 206 tr(ji,jj,jk,jpphy,Krhs) = tr(ji,jj,jk,jpphy,Krhs) + zphya 207 tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + zno3a 208 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + znh4a 209 tr(ji,jj,jk,jpdom,Krhs) = tr(ji,jj,jk,jpdom,Krhs) + zdoma 210 211 IF( lk_iomput ) THEN 212 ! convert fluxes in per day 213 ze3t = e3t(ji,jj,jk,Kmm) * 86400._wp 214 zw2d(ji,jj,1) = zw2d(ji,jj,1) + zno3phy * ze3t 215 zw2d(ji,jj,2) = zw2d(ji,jj,2) + znh4phy * ze3t 216 zw2d(ji,jj,3) = zw2d(ji,jj,3) + zphydom * ze3t 217 zw2d(ji,jj,4) = zw2d(ji,jj,4) + zphynh4 * ze3t 218 zw2d(ji,jj,5) = zw2d(ji,jj,5) + zphyzoo * ze3t 219 zw2d(ji,jj,6) = zw2d(ji,jj,6) + zphydet * ze3t 220 zw2d(ji,jj,7) = zw2d(ji,jj,7) + zdetzoo * ze3t 221 zw2d(ji,jj,8) = zw2d(ji,jj,8) + zzoodet * ze3t 222 zw2d(ji,jj,9) = zw2d(ji,jj,9) + zzoobod * ze3t 223 zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 224 zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 225 zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 226 zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 227 zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 228 zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 229 zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 230 zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 231 ! 232 zw3d(ji,jj,jk,1) = zno3phy * 86400 233 zw3d(ji,jj,jk,2) = znh4phy * 86400 234 zw3d(ji,jj,jk,3) = znh4no3 * 86400 235 ! 236 ENDIF 237 END_2D 239 238 END DO 240 239 … … 242 241 DO jk = jpkb, jpkm1 ! Upper ocean (bio-layers) ! 243 242 ! ! -------------------------- ! 244 DO jj = 2, jpjm1 245 DO ji = fs_2, fs_jpim1 246 ! remineralisation of all quantities towards nitrate 247 248 ! trophic variables( det, zoo, phy, no3, nh4, dom) 249 ! negative trophic variables DO not contribute to the fluxes 250 zdet = MAX( 0.e0, trn(ji,jj,jk,jpdet) ) 251 zzoo = MAX( 0.e0, trn(ji,jj,jk,jpzoo) ) 252 zphy = MAX( 0.e0, trn(ji,jj,jk,jpphy) ) 253 zno3 = MAX( 0.e0, trn(ji,jj,jk,jpno3) ) 254 znh4 = MAX( 0.e0, trn(ji,jj,jk,jpnh4) ) 255 zdom = MAX( 0.e0, trn(ji,jj,jk,jpdom) ) 256 257 ! Limitations 258 zlt = 0.e0 259 zle = 0.e0 260 zlno3 = 0.e0 261 zlnh4 = 0.e0 262 263 ! sinks and sources 264 ! phytoplankton production and exsudation 265 zno3phy = 0.e0 266 znh4phy = 0.e0 267 zphydom = 0.e0 268 zphynh4 = 0.e0 269 270 ! zooplankton production 271 zphyzoo = 0.e0 ! grazing 272 zdetzoo = 0.e0 273 274 zzoodet = 0.e0 ! fecal pellets production 275 276 zzoonh4 = tauzn * fzoolab * zzoo ! zooplankton liquide excretion 277 zzoodom = tauzn * (1 - fzoolab) * zzoo 278 279 ! mortality 280 zphydet = tmminp * zphy ! phytoplankton mortality 281 282 zzoobod = 0.e0 ! zooplankton mortality 283 zboddet = 0.e0 ! closure : flux fbod is redistributed below level jpkbio 284 285 ! detritus and dom breakdown 286 zdetnh4 = taudn * fdetlab * zdet 287 zdetdom = taudn * (1 - fdetlab) * zdet 288 289 zdomnh4 = taudomn * zdom 290 zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 291 292 ! Nitrification 293 znh4no3 = taunn * znh4 294 295 296 ! determination of trends 297 ! total trend for each biological tracer 298 zphya = zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 299 zzooa = zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 300 zno3a = - zno3phy + znh4no3 301 znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 302 zdeta = zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet 303 zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 304 305 ! tracer flux at totox-point added to the general trend 306 tra(ji,jj,jk,jpdet) = tra(ji,jj,jk,jpdet) + zdeta 307 tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zzooa 308 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) + zphya 309 tra(ji,jj,jk,jpno3) = tra(ji,jj,jk,jpno3) + zno3a 310 tra(ji,jj,jk,jpnh4) = tra(ji,jj,jk,jpnh4) + znh4a 311 tra(ji,jj,jk,jpdom) = tra(ji,jj,jk,jpdom) + zdoma 243 DO_2D_00_00 244 ! remineralisation of all quantities towards nitrate 245 246 ! trophic variables( det, zoo, phy, no3, nh4, dom) 247 ! negative trophic variables DO not contribute to the fluxes 248 zdet = MAX( 0.e0, tr(ji,jj,jk,jpdet,Kmm) ) 249 zzoo = MAX( 0.e0, tr(ji,jj,jk,jpzoo,Kmm) ) 250 zphy = MAX( 0.e0, tr(ji,jj,jk,jpphy,Kmm) ) 251 zno3 = MAX( 0.e0, tr(ji,jj,jk,jpno3,Kmm) ) 252 znh4 = MAX( 0.e0, tr(ji,jj,jk,jpnh4,Kmm) ) 253 zdom = MAX( 0.e0, tr(ji,jj,jk,jpdom,Kmm) ) 254 255 ! Limitations 256 zlt = 0.e0 257 zle = 0.e0 258 zlno3 = 0.e0 259 zlnh4 = 0.e0 260 261 ! sinks and sources 262 ! phytoplankton production and exsudation 263 zno3phy = 0.e0 264 znh4phy = 0.e0 265 zphydom = 0.e0 266 zphynh4 = 0.e0 267 268 ! zooplankton production 269 zphyzoo = 0.e0 ! grazing 270 zdetzoo = 0.e0 271 272 zzoodet = 0.e0 ! fecal pellets production 273 274 zzoonh4 = tauzn * fzoolab * zzoo ! zooplankton liquide excretion 275 zzoodom = tauzn * (1 - fzoolab) * zzoo 276 277 ! mortality 278 zphydet = tmminp * zphy ! phytoplankton mortality 279 280 zzoobod = 0.e0 ! zooplankton mortality 281 zboddet = 0.e0 ! closure : flux fbod is redistributed below level jpkbio 282 283 ! detritus and dom breakdown 284 zdetnh4 = taudn * fdetlab * zdet 285 zdetdom = taudn * (1 - fdetlab) * zdet 286 287 zdomnh4 = taudomn * zdom 288 zdomaju = (1 - redf/reddom) * (zphydom + zzoodom + zdetdom) 289 290 ! Nitrification 291 znh4no3 = taunn * znh4 292 293 294 ! determination of trends 295 ! total trend for each biological tracer 296 zphya = zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet 297 zzooa = zphyzoo + zdetzoo - zzoodet - zzoodom - zzoonh4 - zzoobod 298 zno3a = - zno3phy + znh4no3 299 znh4a = - znh4phy - znh4no3 + zphynh4 + zzoonh4 + zdomnh4 + zdetnh4 + zdomaju 300 zdeta = zphydet + zzoodet - zdetzoo - zdetnh4 - zdetdom + zboddet 301 zdoma = zphydom + zzoodom + zdetdom - zdomnh4 - zdomaju 302 303 ! tracer flux at totox-point added to the general trend 304 tr(ji,jj,jk,jpdet,Krhs) = tr(ji,jj,jk,jpdet,Krhs) + zdeta 305 tr(ji,jj,jk,jpzoo,Krhs) = tr(ji,jj,jk,jpzoo,Krhs) + zzooa 306 tr(ji,jj,jk,jpphy,Krhs) = tr(ji,jj,jk,jpphy,Krhs) + zphya 307 tr(ji,jj,jk,jpno3,Krhs) = tr(ji,jj,jk,jpno3,Krhs) + zno3a 308 tr(ji,jj,jk,jpnh4,Krhs) = tr(ji,jj,jk,jpnh4,Krhs) + znh4a 309 tr(ji,jj,jk,jpdom,Krhs) = tr(ji,jj,jk,jpdom,Krhs) + zdoma 310 ! 311 IF( lk_iomput ) THEN ! convert fluxes in per day 312 ze3t = e3t(ji,jj,jk,Kmm) * 86400._wp 313 zw2d(ji,jj,1) = zw2d(ji,jj,1) + zno3phy * ze3t 314 zw2d(ji,jj,2) = zw2d(ji,jj,2) + znh4phy * ze3t 315 zw2d(ji,jj,3) = zw2d(ji,jj,3) + zphydom * ze3t 316 zw2d(ji,jj,4) = zw2d(ji,jj,4) + zphynh4 * ze3t 317 zw2d(ji,jj,5) = zw2d(ji,jj,5) + zphyzoo * ze3t 318 zw2d(ji,jj,6) = zw2d(ji,jj,6) + zphydet * ze3t 319 zw2d(ji,jj,7) = zw2d(ji,jj,7) + zdetzoo * ze3t 320 zw2d(ji,jj,8) = zw2d(ji,jj,8) + zzoodet * ze3t 321 zw2d(ji,jj,9) = zw2d(ji,jj,9) + zzoobod * ze3t 322 zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 323 zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 324 zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 325 zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 326 zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 327 zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 328 zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 329 zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 330 ! 331 zw3d(ji,jj,jk,1) = zno3phy * 86400._wp 332 zw3d(ji,jj,jk,2) = znh4phy * 86400._wp 333 zw3d(ji,jj,jk,3) = znh4no3 * 86400._wp 312 334 ! 313 IF( lk_iomput ) THEN ! convert fluxes in per day 314 ze3t = e3t_n(ji,jj,jk) * 86400._wp 315 zw2d(ji,jj,1) = zw2d(ji,jj,1) + zno3phy * ze3t 316 zw2d(ji,jj,2) = zw2d(ji,jj,2) + znh4phy * ze3t 317 zw2d(ji,jj,3) = zw2d(ji,jj,3) + zphydom * ze3t 318 zw2d(ji,jj,4) = zw2d(ji,jj,4) + zphynh4 * ze3t 319 zw2d(ji,jj,5) = zw2d(ji,jj,5) + zphyzoo * ze3t 320 zw2d(ji,jj,6) = zw2d(ji,jj,6) + zphydet * ze3t 321 zw2d(ji,jj,7) = zw2d(ji,jj,7) + zdetzoo * ze3t 322 zw2d(ji,jj,8) = zw2d(ji,jj,8) + zzoodet * ze3t 323 zw2d(ji,jj,9) = zw2d(ji,jj,9) + zzoobod * ze3t 324 zw2d(ji,jj,10) = zw2d(ji,jj,10) + zzoonh4 * ze3t 325 zw2d(ji,jj,11) = zw2d(ji,jj,11) + zzoodom * ze3t 326 zw2d(ji,jj,12) = zw2d(ji,jj,12) + znh4no3 * ze3t 327 zw2d(ji,jj,13) = zw2d(ji,jj,13) + zdomnh4 * ze3t 328 zw2d(ji,jj,14) = zw2d(ji,jj,14) + zdetnh4 * ze3t 329 zw2d(ji,jj,15) = zw2d(ji,jj,15) + ( zno3phy + znh4phy - zphynh4 - zphydom - zphyzoo - zphydet ) * ze3t 330 zw2d(ji,jj,16) = zw2d(ji,jj,16) + ( zphyzoo + zdetzoo - zzoodet - zzoobod - zzoonh4 - zzoodom ) * ze3t 331 zw2d(ji,jj,17) = zw2d(ji,jj,17) + zdetdom * ze3t 332 ! 333 zw3d(ji,jj,jk,1) = zno3phy * 86400._wp 334 zw3d(ji,jj,jk,2) = znh4phy * 86400._wp 335 zw3d(ji,jj,jk,3) = znh4no3 * 86400._wp 336 ! 337 ENDIF 338 END DO 339 END DO 335 ENDIF 336 END_2D 340 337 END DO 341 338 ! … … 367 364 ENDIF 368 365 369 IF( ln_ctl) THEN ! print mean trends (used for debugging)366 IF(sn_cfctl%l_prttrc) THEN ! print mean trends (used for debugging) 370 367 WRITE(charout, FMT="('bio')") 371 368 CALL prt_ctl_trc_info(charout) 372 CALL prt_ctl_trc(tab4d=tr a, mask=tmask, clinfo=ctrcnm)369 CALL prt_ctl_trc(tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm) 373 370 ENDIF 374 371 ! … … 402 399 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~' 403 400 ! 404 REWIND( numnatp_ref ) ! Namelist namlobphy in reference namelist : Lobster biological parameters405 401 READ ( numnatp_ref, namlobphy, IOSTAT = ios, ERR = 901) 406 402 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in reference namelist' ) 407 REWIND( numnatp_cfg ) ! Namelist namlobphy in configuration namelist : Lobster biological parameters408 403 READ ( numnatp_cfg, namlobphy, IOSTAT = ios, ERR = 902 ) 409 404 902 IF( ios > 0 ) CALL ctl_nam ( ios , 'namlobphy in configuration namelist' ) … … 419 414 ENDIF 420 415 421 REWIND( numnatp_ref ) ! Namelist namlobnut in reference namelist : Lobster nutriments parameters422 416 READ ( numnatp_ref, namlobnut, IOSTAT = ios, ERR = 903) 423 417 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in reference namelist' ) 424 REWIND( numnatp_cfg ) ! Namelist namlobnut in configuration namelist : Lobster nutriments parameters425 418 READ ( numnatp_cfg, namlobnut, IOSTAT = ios, ERR = 904 ) 426 419 904 IF( ios > 0 ) CALL ctl_nam ( ios , 'namlobnut in configuration namelist' ) … … 436 429 ENDIF 437 430 438 REWIND( numnatp_ref ) ! Namelist namlobzoo in reference namelist : Lobster zooplankton parameters439 431 READ ( numnatp_ref, namlobzoo, IOSTAT = ios, ERR = 905) 440 432 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in reference namelist' ) 441 REWIND( numnatp_cfg ) ! Namelist namlobzoo in configuration namelist : Lobster zooplankton parameters442 433 READ ( numnatp_cfg, namlobzoo, IOSTAT = ios, ERR = 906 ) 443 434 906 IF( ios > 0 ) CALL ctl_nam ( ios , 'namlobzoo in configuration namelist' ) … … 458 449 ENDIF 459 450 460 REWIND( numnatp_ref ) ! Namelist namlobdet in reference namelist : Lobster detritus parameters461 451 READ ( numnatp_ref, namlobdet, IOSTAT = ios, ERR = 907) 462 452 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in reference namelist' ) 463 REWIND( numnatp_cfg ) ! Namelist namlobdet in configuration namelist : Lobster detritus parameters464 453 READ ( numnatp_cfg, namlobdet, IOSTAT = ios, ERR = 908 ) 465 454 908 IF( ios > 0 ) CALL ctl_nam ( ios , 'namlobdet in configuration namelist' ) … … 473 462 ENDIF 474 463 475 REWIND( numnatp_ref ) ! Namelist namlobdom in reference namelist : Lobster DOM breakdown rate476 464 READ ( numnatp_ref, namlobdom, IOSTAT = ios, ERR = 909) 477 465 909 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in reference namelist' ) 478 REWIND( numnatp_cfg ) ! Namelist namlobdom in configuration namelist : Lobster DOM breakdown rate479 466 READ ( numnatp_cfg, namlobdom, IOSTAT = ios, ERR = 910 ) 480 467 910 IF( ios > 0 ) CALL ctl_nam ( ios , 'namlobdom in configuration namelist' )
Note: See TracChangeset
for help on using the changeset viewer.