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 14786 for NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p5zprod.F90 – NEMO

Ignore:
Timestamp:
2021-05-05T09:09:10+02:00 (3 years ago)
Author:
aumont
Message:

Various bug fixes in PISCES

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p5zprod.F90

    r14416 r14786  
    130130      ! absolute light level definition of the euphotic zone 
    131131      ! -------------------------------------------------------------------------  
    132       DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    133          IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    134             zval = MAX( 1., strn(ji,jj) ) 
    135             IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
    136                zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
     132 
     133      IF ( ln_p4z_dcyc ) THEN    ! Diurnal cycle in PISCES 
     134 
     135         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     136            IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     137               IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
     138                  zval = MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
     139               ENDIF 
     140               zmxl_chl(ji,jj,jk) = zval / 24. 
     141               zmxl_fac(ji,jj,jk) = 1.0 - exp( -0.26 * zval ) 
    137142            ENDIF 
    138             zmxl_chl(ji,jj,jk) = zval / 24. 
    139             zmxl_fac(ji,jj,jk) = 1.0 - exp( -0.26 * zval ) 
    140          ENDIF 
    141       END_3D 
     143         END_3D 
     144 
     145      ELSE ! No diurnal cycle in PISCES 
     146 
     147         DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
     148            IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
     149               zval = MAX( 1., strn(ji,jj) ) 
     150               IF( gdepw(ji,jj,jk+1,Kmm) <= hmld(ji,jj) ) THEN 
     151                  zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
     152               ENDIF 
     153               zmxl_chl(ji,jj,jk) = zval / 24. 
     154               zmxl_fac(ji,jj,jk) = 1.0 - exp( -0.26 * zval ) 
     155            ENDIF 
     156         END_3D 
     157 
     158      ENDIF 
    142159 
    143160      zprbio(:,:,:) = zprmaxn(:,:,:) * zmxl_fac(:,:,:) 
     
    433450        zprodfer = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
    434451        zresptot = zrespn(ji,jj,jk) + zrespp(ji,jj,jk) + zrespd(ji,jj,jk)  
    435   
    436452        ! 
    437453        tr(ji,jj,jk,jppo4,Krhs) = tr(ji,jj,jk,jppo4,Krhs) - zpptot 
     
    470486        tr(ji,jj,jk,jppdi,Krhs) = tr(ji,jj,jk,jppdi,Krhs) + ( zpropo4d(ji,jj,jk) + zprodopd(ji,jj,jk) ) * texcretd 
    471487        tr(ji,jj,jk,jpdfe,Krhs) = tr(ji,jj,jk,jpdfe,Krhs) + zprofed(ji,jj,jk) * texcretd 
    472         tr(ji,jj,jk,jpdsi,Krhs) = tr(ji,jj,jk,jpdsi,Krhs) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * texcretd 
    473  
     488        tr(ji,jj,jk,jpdsi,Krhs) = tr(ji,jj,jk,jpdsi,Krhs) + zprmaxd(ji,jj,jk) * zysopt(ji,jj,jk) * rfact2 * tr(ji,jj,jk,jpdia,Kbb) 
    474489        tr(ji,jj,jk,jpdoc,Krhs) = tr(ji,jj,jk,jpdoc,Krhs) + zproddoc 
    475490        tr(ji,jj,jk,jpdon,Krhs) = tr(ji,jj,jk,jpdon,Krhs) + zproddon                                         
     
    482497        consfe3(ji,jj,jk)       = zprodfer * 75.0 / ( rtrn + ( plig(ji,jj,jk) + 75.0 * (1.0 - plig(ji,jj,jk) ) )   & 
    483498           &                   * tr(ji,jj,jk,jpfer,Kbb) ) / rfact2 
    484          
    485         tr(ji,jj,jk,jpsil,Krhs) = tr(ji,jj,jk,jpsil,Krhs) - texcretd * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk)  
     499        tr(ji,jj,jk,jpsil,Krhs) = tr(ji,jj,jk,jpsil,Krhs) - zprmaxd(ji,jj,jk) * zysopt(ji,jj,jk) * rfact2 * tr(ji,jj,jk,jpdia,Kbb)  
    486500 
    487501        tr(ji,jj,jk,jpdic,Krhs) = tr(ji,jj,jk,jpdic,Krhs) - zpptot  & 
     
    522536       CALL iom_put( "PPNEWN"  , zpronewn(:,:,:) * zfact * tmask(:,:,:)    ) ! new primary production by nanophyto 
    523537       CALL iom_put( "PPNEWD"  , zpronewd(:,:,:) * zfact * tmask(:,:,:)   ) ! new primary production by diatomes 
    524        CALL iom_put( "PBSi"    , zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:)  ) ! biogenic silica production 
    525        CALL iom_put( "PFeP"    , zprofep(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by picophyto 
     538       CALL iom_put( "PBSi"    , zprmaxd (:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:)  ) ! biogenic silica production 
     539       CALL iom_put( "PFeP"    , zprofep (:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by picophyto 
    526540       CALL iom_put( "PFeN"    , zprofen(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by nanophyto 
    527541       CALL iom_put( "PFeD"    , zprofed(:,:,:) * zfact * tmask(:,:,:)  ) ! biogenic iron production by  diatomes 
Note: See TracChangeset for help on using the changeset viewer.