Changeset 13200 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90
- Timestamp:
- 2020-07-02T08:58:10+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90
r12759 r13200 80 80 REAL(wp) :: zepsherf, zepshert, zepsherq, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 81 81 REAL(wp) :: zmigreltime, zprcaca, zmortz, zgrasratf, zgrasratn 82 REAL(wp) :: zrespz, ztortz, zgrazd , zgrazz, zgrazpof, zgrazn, zgrazpoc, zgraznf, zgrazf82 REAL(wp) :: zrespz, ztortz, zgrazdc, zgrazz, zgrazpof, zgraznc, zgrazpoc, zgraznf, zgrazdf 83 83 REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg, zrum, zcodel, zargu, zval 84 84 REAL(wp) :: zsigma, zdiffdn, ztmp1, ztmp2, ztmp3, ztmp4, ztmptot 85 85 CHARACTER (len=25) :: charout 86 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo2 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof 88 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgramigrem, zgramigref, zgramigpoc, zgramigpof, zstrn 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof, zgrabsi 88 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgramigrem, zgramigref, zgramigpoc, zgramigpof 89 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zstrn, zgramigbsi 89 90 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d, zz2ligprod 90 91 !!--------------------------------------------------------------------- … … 95 96 zfezoo2 (:,:,:) = 0._wp ; zgrarem(:,:,:) = 0._wp 96 97 zgraref (:,:,:) = 0._wp ; zgrapof(:,:,:) = 0._wp 98 zgrabsi (:,:,:) = 0._wp 97 99 ! 98 100 IF (ln_ligand) THEN … … 171 173 ! to be close enough to have potential interference 172 174 ! ----------------------------------------------------------- 173 zdiffdn = exp( -ABS(log(1. 5* sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2 )175 zdiffdn = exp( -ABS(log(1.67 * sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2 ) 174 176 ztmp1 = xpref2n * zcompaph * ( zcompaph + zdiffdn * zcompadi ) / ( 1.0 + zdiffdn ) 175 177 ztmp2 = xpref2c * zcompapoc**2 … … 184 186 ! Mesozooplankton regular grazing on the different preys 185 187 ! ------------------------------------------------------ 186 zgrazd 187 zgrazn 188 zgrazdc = zgraze2 * ztmp3 * zdenom 189 zgraznc = zgraze2 * ztmp1 * zdenom 188 190 zgrazpoc = zgraze2 * ztmp2 * zdenom 189 191 zgrazz = zgraze2 * ztmp4 * zdenom 190 192 191 zgraznf = zgrazn 192 zgraz f = zgrazd* trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) + rtrn)193 zgraznf = zgraznc * trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) + rtrn) 194 zgrazdf = zgrazdc * trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) + rtrn) 193 195 zgrazpof = zgrazpoc * trb(ji,jj,jk,jpsfe) / ( trb(ji,jj,jk,jppoc) + rtrn) 194 196 … … 205 207 zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 206 208 207 zgraztotc = zgrazd + zgrazz + zgrazn+ zgrazpoc + zgrazffep + zgrazffeg209 zgraztotc = zgrazdc + zgrazz + zgraznc + zgrazpoc + zgrazffep + zgrazffeg 208 210 ! Compute the proportion of filter feeders. It is assumed steady state. 209 211 ! --------------------------------------------------------------------- … … 226 228 zgrazfffp = zproport * zgrazfffp 227 229 zgrazfffg = zproport * zgrazfffg 228 zgraztotc = zgrazd + zgrazz + zgrazn+ zgrazpoc + zgrazffep + zgrazffeg229 zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn* quotan(ji,jj,jk) &230 zgraztotc = zgrazdc + zgrazz + zgraznc + zgrazpoc + zgrazffep + zgrazffeg 231 zgraztotn = zgrazdc * quotad(ji,jj,jk) + zgrazz + zgraznc * quotan(ji,jj,jk) & 230 232 & + zgrazpoc + zgrazffep + zgrazffeg 231 zgraztotf = zgraz f + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg233 zgraztotf = zgrazdf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 232 234 233 235 ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) … … 257 259 zmortzgoc = unass2 / ( 1. - epsher2 ) * ztortz + zrespz 258 260 tra(ji,jj,jk,jpmes) = tra(ji,jj,jk,jpmes) - zmortz + zepsherv * zgraztotc 259 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazd 261 tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazdc 260 262 tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) - zgrazz 261 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgrazn 262 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgrazn * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) + rtrn )263 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazd * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn )264 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazd * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn )265 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazd* trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn )263 tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgraznc 264 tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgraznc * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) + rtrn ) 265 tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazdc * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn ) 266 tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazdc * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 267 zgrabsi(ji,jj,jk) = zgrazdc * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 266 268 tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zgraznf 267 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgraz f269 tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazdf 268 270 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 269 271 prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zfrac … … 273 275 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe 274 276 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) - zgrazfffg - zfracfe 277 275 278 ! Calcite remineralization due to zooplankton activity 276 ! part2 of the ingested calcite is dissolving in the acidic gut 277 zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + rtrn ) 278 zgrazcal = (zgrazffeg + zgrazpoc) * (1. - part2) * zfracal 279 ! part2 of the ingested calcite is not dissolving in the 280 ! acidic gut 281 ! ------------------------------------------------------ 282 zfracal = trb(ji,jj,jk,jpcal) / ( trb(ji,jj,jk,jpgoc) + rtrn ) 283 zgrazcal = zgrazffeg * (1. - part2) * zfracal 279 284 ! calcite production by zooplankton activity 280 zprcaca = xfracal(ji,jj,jk) * zgrazn 285 zprcaca = xfracal(ji,jj,jk) * zgraznc 281 286 prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 282 287 ! … … 304 309 IF (ln_dvm_meso) THEN 305 310 ALLOCATE( zgramigrem(jpi,jpj), zgramigref(jpi,jpj), zgramigpoc(jpi,jpj), zgramigpof(jpi,jpj) ) 311 ALLOCATE( zgramigbsi(jpi,jpj) ) 306 312 ALLOCATE( zstrn(jpi,jpj) ) 307 313 zgramigrem(:,:) = 0.0 ; zgramigref(:,:) = 0.0 308 zgramigpoc(:,:) = 0.0 ; zgramigpof(:,:) = 0.0 314 zgramigpoc(:,:) = 0.0 ; zgramigpof(:,:) = 0.0 315 zgramigbsi(:,:) = 0.0 309 316 310 317 ! compute the day length depending on latitude and the day … … 340 347 zgramigpof(ji,jj) = zgramigpof(ji,jj) + xfracmig * zgrapof(ji,jj,jk) * (1. - zmigreltime ) & 341 348 & * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 349 zgramigbsi(ji,jj) = zgramigbsi(ji,jj) + xfracmig * zgrabsi(ji,jj,jk) * (1. - zmigreltime ) & 350 & * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 342 351 343 352 zgrarem(ji,jj,jk) = zgrarem(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) … … 345 354 zgrapoc(ji,jj,jk) = zgrapoc(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 346 355 zgrapof(ji,jj,jk) = zgrapof(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 356 zgrabsi(ji,jj,jk) = zgrabsi(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 347 357 ENDIF 348 358 END DO … … 361 371 zgrapoc(ji,jj,jkt) = zgrapoc(ji,jj,jkt) + zgramigpoc(ji,jj) / e3t_n(ji,jj,jkt) 362 372 zgrapof(ji,jj,jkt) = zgrapof(ji,jj,jkt) + zgramigpof(ji,jj) / e3t_n(ji,jj,jkt) 373 zgrabsi(ji,jj,jkt) = zgrabsi(ji,jj,jkt) + zgramigbsi(ji,jj) / e3t_n(ji,jj,jkt) 363 374 ENDIF 364 375 END DO … … 367 378 ! Deallocate temporary variables 368 379 ! ------------------------------ 369 DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof )380 DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof, zgramigbsi ) 370 381 DEALLOCATE( zstrn ) 371 382 … … 397 408 prodgoc(ji,jj,jk) = prodgoc(ji,jj,jk) + zgrapoc(ji,jj,jk) 398 409 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgrapof(ji,jj,jk) 410 tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrabsi(ji,jj,jk) 399 411 END DO 400 412 END DO
Note: See TracChangeset
for help on using the changeset viewer.