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 14276 for NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90 – NEMO

Ignore:
Timestamp:
2021-01-07T23:09:56+01:00 (3 years ago)
Author:
aumont
Message:

numerous updates to PISCES, PISCES-QUOTA and the sediment module

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90

    r13234 r14276  
    8989      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof, zgrabsi 
    9090      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zgramigrem, zgramigref, zgramigpoc, zgramigpof 
    91       REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zstrn, zgramigbsi 
     91      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zgramigbsi 
    9292      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zw3d, zz2ligprod 
    9393      !!--------------------------------------------------------------------- 
     
    236236               zgraztotn = zgrazdc * quotad(ji,jj,jk) + zgrazz + zgraznc * quotan(ji,jj,jk)   & 
    237237               &   + zgrazpoc + zgrazffep + zgrazffeg 
    238                zgraztotf = zgrazdf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 
     238               zgraztotf = zgrazdf + zgraznf + zgrazz * feratz + zgrazpof + zgrazfffp + zgrazfffg 
    239239 
    240240               ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) 
     
    251251               zgrasratf =  ( zgraztotf + rtrn )/ ( zgraztotc + rtrn ) 
    252252               zgrasratn =  ( zgraztotn + rtrn )/ ( zgraztotc + rtrn ) 
    253                zepshert  = MIN( 1., zgrasratn, zgrasratf / ferat3) 
     253               zepshert  = MIN( 1., zgrasratn, zgrasratf / feratm) 
    254254               zbeta     = MAX(0., (epsher2 - epsher2min) ) 
    255255               ! Food quantity deprivation of GGE 
     
    298298               zprcaca = part2 * zprcaca 
    299299               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 ) 
    301301               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) - zgrazcal + zprcaca 
    302302  
     
    305305               zgrarem(ji,jj,jk) = zgraztotc * ( 1. - zepsherv - unass2 ) & 
    306306               &         + ( 1. - epsher2 - unass2 ) / ( 1. - epsher2 ) * ztortz 
    307                zgraref(ji,jj,jk) = zgraztotc * MAX( 0. , ( 1. - unass2 ) * zgrasratf - ferat3 * zepsherv )    & 
    308                &         + ferat3 * ( ( 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 ) 
    309309               zgrapoc(ji,jj,jk) = zgraztotc * unass2 + zmortzgoc 
    310                zgrapof(ji,jj,jk) = zgraztotf * unass2 + ferat3 * zmortzgoc 
     310               zgrapof(ji,jj,jk) = zgraztotf * unass2 + feratm * zmortzgoc 
    311311            END DO  
    312312         END DO 
     
    320320         ALLOCATE( zgramigrem(jpi,jpj), zgramigref(jpi,jpj), zgramigpoc(jpi,jpj), zgramigpof(jpi,jpj) ) 
    321321         ALLOCATE( zgramigbsi(jpi,jpj) ) 
    322          ALLOCATE( zstrn(jpi,jpj) ) 
    323322         zgramigrem(:,:) = 0.0    ;   zgramigref(:,:) = 0.0 
    324323         zgramigpoc(:,:) = 0.0    ;   zgramigpof(:,:) = 0.0 
    325324         zgramigbsi(:,:) = 0.0 
    326  
    327          ! compute the day length depending on latitude and the day 
    328          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 hours 
    332          zstrn(:,:) = 0. 
    333          DO jj = 1, jpj 
    334             DO ji = 1, jpi 
    335                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 DO 
    340          END DO 
    341325 
    342326        ! Compute the amount of materials that will go into vertical migration 
     
    347331            DO jj = 1, jpj 
    348332               DO ji = 1, jpi 
    349                   zmigreltime = (1. - zstrn(ji,jj)) 
     333                  zmigreltime = (1. - strn(ji,jj)) 
    350334                  IF ( gdept_n(ji,jj,jk) <= heup(ji,jj) ) THEN 
    351335                     zgramigrem(ji,jj) = zgramigrem(ji,jj) + xfracmig * zgrarem(ji,jj,jk) * (1. - zmigreltime )    & 
     
    389373         ! ------------------------------ 
    390374         DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof, zgramigbsi ) 
    391          DEALLOCATE( zstrn ) 
    392  
    393375      ! End of the ln_dvm_meso part 
    394376      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.