Changeset 14276 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90
- Timestamp:
- 2021-01-07T23:09:56+01:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90
r13234 r14276 89 89 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof, zgrabsi 90 90 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgramigrem, zgramigref, zgramigpoc, zgramigpof 91 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z strn, zgramigbsi91 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: zgramigbsi 92 92 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zw3d, zz2ligprod 93 93 !!--------------------------------------------------------------------- … … 236 236 zgraztotn = zgrazdc * quotad(ji,jj,jk) + zgrazz + zgraznc * quotan(ji,jj,jk) & 237 237 & + zgrazpoc + zgrazffep + zgrazffeg 238 zgraztotf = zgrazdf + zgraznf + zgrazz * ferat 3+ zgrazpof + zgrazfffp + zgrazfffg238 zgraztotf = zgrazdf + zgraznf + zgrazz * feratz + zgrazpof + zgrazfffp + zgrazfffg 239 239 240 240 ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) … … 251 251 zgrasratf = ( zgraztotf + rtrn )/ ( zgraztotc + rtrn ) 252 252 zgrasratn = ( zgraztotn + rtrn )/ ( zgraztotc + rtrn ) 253 zepshert = MIN( 1., zgrasratn, zgrasratf / ferat 3)253 zepshert = MIN( 1., zgrasratn, zgrasratf / feratm) 254 254 zbeta = MAX(0., (epsher2 - epsher2min) ) 255 255 ! Food quantity deprivation of GGE … … 298 298 zprcaca = part2 * zprcaca 299 299 tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrazcal - zprcaca 300 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * ( zgrazcal +zprcaca )300 tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + 2. * ( zgrazcal - zprcaca ) 301 301 tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) - zgrazcal + zprcaca 302 302 … … 305 305 zgrarem(ji,jj,jk) = zgraztotc * ( 1. - zepsherv - unass2 ) & 306 306 & + ( 1. - epsher2 - unass2 ) / ( 1. - epsher2 ) * ztortz 307 zgraref(ji,jj,jk) = zgraztotc * MAX( 0. , ( 1. - unass2 ) * zgrasratf - ferat 3* zepsherv ) &308 & + ferat 3* ( ( 1. - epsher2 - unass2 ) /( 1. - epsher2 ) * ztortz )307 zgraref(ji,jj,jk) = zgraztotc * MAX( 0. , ( 1. - unass2 ) * zgrasratf - feratm * zepsherv ) & 308 & + feratm * ( ( 1. - epsher2 - unass2 ) /( 1. - epsher2 ) * ztortz ) 309 309 zgrapoc(ji,jj,jk) = zgraztotc * unass2 + zmortzgoc 310 zgrapof(ji,jj,jk) = zgraztotf * unass2 + ferat 3* zmortzgoc310 zgrapof(ji,jj,jk) = zgraztotf * unass2 + feratm * zmortzgoc 311 311 END DO 312 312 END DO … … 320 320 ALLOCATE( zgramigrem(jpi,jpj), zgramigref(jpi,jpj), zgramigpoc(jpi,jpj), zgramigpof(jpi,jpj) ) 321 321 ALLOCATE( zgramigbsi(jpi,jpj) ) 322 ALLOCATE( zstrn(jpi,jpj) )323 322 zgramigrem(:,:) = 0.0 ; zgramigref(:,:) = 0.0 324 323 zgramigpoc(:,:) = 0.0 ; zgramigpof(:,:) = 0.0 325 324 zgramigbsi(:,:) = 0.0 326 327 ! compute the day length depending on latitude and the day328 zrum = REAL( nday_year - 80, wp ) / REAL( nyear_len(1), wp )329 zcodel = ASIN( SIN( zrum * rpi * 2._wp ) * SIN( rad * 23.5_wp ) )330 331 ! day length in hours332 zstrn(:,:) = 0.333 DO jj = 1, jpj334 DO ji = 1, jpi335 zargu = TAN( zcodel ) * TAN( gphit(ji,jj) * rad )336 zargu = MAX( -1., MIN( 1., zargu ) )337 zstrn(ji,jj) = MAX( 0.0, 24. - 2. * ACOS( zargu ) / rad / 15. )338 zstrn(ji,jj) = MIN(0.75, MAX( 0.25, zstrn(ji,jj) / 24.) )339 END DO340 END DO341 325 342 326 ! Compute the amount of materials that will go into vertical migration … … 347 331 DO jj = 1, jpj 348 332 DO ji = 1, jpi 349 zmigreltime = (1. - zstrn(ji,jj))333 zmigreltime = (1. - strn(ji,jj)) 350 334 IF ( gdept_n(ji,jj,jk) <= heup(ji,jj) ) THEN 351 335 zgramigrem(ji,jj) = zgramigrem(ji,jj) + xfracmig * zgrarem(ji,jj,jk) * (1. - zmigreltime ) & … … 389 373 ! ------------------------------ 390 374 DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof, zgramigbsi ) 391 DEALLOCATE( zstrn )392 393 375 ! End of the ln_dvm_meso part 394 376 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.