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 12496 for NEMO – NEMO

Changeset 12496 for NEMO


Ignore:
Timestamp:
2020-03-02T12:33:55+01:00 (4 years ago)
Author:
aumont
Message:

uptake of ligand by phytoplankton + bug correction in the river supply (h_rnf) + cosmetic changes

Location:
NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z
Files:
4 edited

Legend:

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

    r11536 r12496  
    2323   PUBLIC   p4z_mort_init     
    2424 
    25    REAL(wp), PUBLIC ::   wchl     !: 
     25   REAL(wp), PUBLIC ::   wchln    !: 
    2626   REAL(wp), PUBLIC ::   wchld    !: 
    2727   REAL(wp), PUBLIC ::   wchldm   !: 
    28    REAL(wp), PUBLIC ::   mprat    !: 
    29    REAL(wp), PUBLIC ::   mprat2   !: 
     28   REAL(wp), PUBLIC ::   mpratn   !: 
     29   REAL(wp), PUBLIC ::   mpratd   !: 
    3030 
    3131   !!---------------------------------------------------------------------- 
     
    8484               !     Squared mortality of Phyto similar to a sedimentation term during 
    8585               !     blooms (Doney et al. 1996) 
    86                zrespp = wchl * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * zsizerat  
     86               zrespp = wchln * 1.e6 * xstep * xdiss(ji,jj,jk) * zcompaph * zsizerat  
    8787 
    8888               !     Phytoplankton mortality. This mortality loss is slightly 
    8989               !     increased when nutrients are limiting phytoplankton growth 
    9090               !     as observed for instance in case of iron limitation. 
    91                ztortp = mprat * xstep * zcompaph / ( xkmort + trb(ji,jj,jk,jpphy) ) * zsizerat 
     91               ztortp = mpratn * xstep * zcompaph / ( xkmort + trb(ji,jj,jk,jpphy) ) * zsizerat 
    9292 
    9393               zmortp = zrespp + ztortp 
     
    169169               !     Phytoplankton mortality.  
    170170               !     ------------------------ 
    171                ztortp2 = mprat2 * xstep * trb(ji,jj,jk,jpdia)  / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi  
     171               ztortp2 = mpratd * xstep * trb(ji,jj,jk,jpdia)  / ( xkmort + trb(ji,jj,jk,jpdia) ) * zcompadi  
    172172 
    173173               zmortp2 = zrespp2 + ztortp2 
     
    218218      INTEGER ::   ios   ! Local integer 
    219219      ! 
    220       NAMELIST/namp4zmort/ wchl, wchld, wchldm, mprat, mprat2 
     220      NAMELIST/namp4zmort/ wchln, wchld, wchldm, mpratn, mpratd 
    221221      !!---------------------------------------------------------------------- 
    222222      ! 
     
    237237      IF(lwp) THEN                         ! control print 
    238238         WRITE(numout,*) '   Namelist : namp4zmort' 
    239          WRITE(numout,*) '      quadratic mortality of phytoplankton        wchl   =', wchl 
     239         WRITE(numout,*) '      quadratic mortality of phytoplankton        wchln  =', wchln 
    240240         WRITE(numout,*) '      maximum quadratic mortality of diatoms      wchld  =', wchld 
    241241         WRITE(numout,*) '      maximum quadratic mortality of diatoms      wchldm =', wchldm 
    242          WRITE(numout,*) '      phytoplankton mortality rate                mprat  =', mprat 
    243          WRITE(numout,*) '      Diatoms mortality rate                      mprat2 =', mprat2 
     242         WRITE(numout,*) '      phytoplankton mortality rate                mpratn =', mpratn 
     243         WRITE(numout,*) '      Diatoms mortality rate                      mpratd =', mpratd 
    244244      ENDIF 
    245245      ! 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zprod.F90

    r11536 r12496  
    7878      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprmaxn,zprmaxd 
    7979      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpislopeadn, zpislopeadd, zysopt   
    80       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprdia, zprbio, zprdch, zprnch    
     80      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprdia, zprbio, zprchld, zprchln    
    8181      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zprorcan, zprorcad, zprofed, zprofen 
    8282      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zpronewn, zpronewd 
     
    9292      zprofen (:,:,:) = 0._wp ; zysopt  (:,:,:) = 0._wp 
    9393      zpronewn(:,:,:) = 0._wp ; zpronewd(:,:,:) = 0._wp ; zprdia  (:,:,:) = 0._wp 
    94       zprbio  (:,:,:) = 0._wp ; zprdch  (:,:,:) = 0._wp ; zprnch (:,:,:) = 0._wp  
     94      zprbio  (:,:,:) = 0._wp ; zprchld (:,:,:) = 0._wp ; zprchln (:,:,:) = 0._wp  
    9595      zmxl_fac(:,:,:) = 0._wp ; zmxl_chl(:,:,:) = 0._wp  
    9696 
     
    119119               IF( etot_ndcy(ji,jj,jk) > 1.E-3 ) THEN 
    120120                  zval = MAX( 1., zstrn(ji,jj) ) 
    121                   IF( gdept_n(ji,jj,jk) <= hmld(ji,jj) ) THEN 
     121                  IF( gdepw_n(ji,jj,jk+1) <= hmld(ji,jj) ) THEN 
    122122                     zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
    123123                  ENDIF 
     
    171171                   zpislopen = zpislopeadn(ji,jj,jk) / ( zprmaxn(ji,jj,jk) * zmxl_chl(ji,jj,jk) * rday + rtrn ) 
    172172                   zpisloped = zpislopeadd(ji,jj,jk) / ( zprmaxd(ji,jj,jk) * zmxl_chl(ji,jj,jk) * rday + rtrn ) 
    173                    zprnch(ji,jj,jk) = zprmaxn(ji,jj,jk) * ( 1.- EXP( -zpislopen * enanom(ji,jj,jk) ) ) 
    174                    zprdch(ji,jj,jk) = zprmaxd(ji,jj,jk) * ( 1.- EXP( -zpisloped * ediatm(ji,jj,jk) ) ) 
     173                   zprchln(ji,jj,jk) = zprmaxn(ji,jj,jk) * ( 1.- EXP( -zpislopen * enanom(ji,jj,jk) ) ) 
     174                   zprchld(ji,jj,jk) = zprmaxd(ji,jj,jk) * ( 1.- EXP( -zpisloped * ediatm(ji,jj,jk) ) ) 
    175175               ENDIF 
    176176            END DO 
     
    268268                  !  production terms for nanophyto. ( chlorophyll ) 
    269269                  znanotot = enanom(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 
    270                   zprod    = rday * zprorcan(ji,jj,jk) * zprnch(ji,jj,jk) * xlimphy(ji,jj,jk) 
     270                  zprod    = rday * zprorcan(ji,jj,jk) * zprchln(ji,jj,jk) * xlimphy(ji,jj,jk) 
    271271                  zprochln = chlcmin * 12. * zprorcan (ji,jj,jk) 
    272272                  chlcnm_n   = MIN ( chlcnm, ( chlcnm / (1. - 1.14 / 43.4 *tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 
     
    275275                  !  production terms for diatoms ( chlorophyll ) 
    276276                  zdiattot = ediatm(ji,jj,jk) / ( zmxl_chl(ji,jj,jk) + rtrn ) 
    277                   zprod    = rday * zprorcad(ji,jj,jk) * zprdch(ji,jj,jk) * xlimdia(ji,jj,jk) 
     277                  zprod    = rday * zprorcad(ji,jj,jk) * zprchld(ji,jj,jk) * xlimdia(ji,jj,jk) 
    278278                  zprochld = chlcmin * 12. * zprorcad(ji,jj,jk) 
    279279                  chlcdm_n   = MIN ( chlcdm, ( chlcdm / (1. - 1.14 / 43.4 * tsn(ji,jj,jk,jp_tem))) * (1. - 1.14 / 43.4 * 20.)) 
     
    327327                    zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) 
    328328                    zfeup    = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) 
    329                     tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp - zfeup * plig(ji,jj,jk) * lthet 
     329                    tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp    & 
     330                    &       - zfeup * plig(ji,jj,jk) / ( rtrn + plig(ji,jj,jk) + 2.E3 * (1.0 - plig(ji,jj,jk) ) ) 
    330331                    zpligprod1(ji,jj,jk) = zdocprod * ldocp 
    331332                    zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) * lthet 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zsbc.F90

    r11536 r12496  
    172172      IF( ln_ndepo ) THEN 
    173173         IF( kt == nit000 .OR. ( kt /= nit000 .AND. ntimes_ndep > 1 ) ) THEN 
    174              zcoef = 14. * rno3 
     174             zcoef = 14E6 * rno3 * ryyss 
    175175             CALL fld_read( kt, 1, sf_ndepo ) 
    176176             nitdep(:,:) = MAX( rtrn, sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1) ) 
    177177         ENDIF 
    178178         IF( .NOT.ln_linssh ) THEN 
    179             zcoef = 14. * rno3 
     179            zcoef = 14E6 * rno3 * ryyss 
    180180            nitdep(:,:) = MAX( rtrn, sf_ndepo(1)%fnow(:,:,1) / zcoef / e3t_n(:,:,1) ) 
    181181         ENDIF 
     
    270270      ENDIF 
    271271 
    272       ! set the number of level over which river runoffs are applied  
    273       ! online configuration : computed in sbcrnf 
    274       IF( l_offline ) THEN 
    275         nk_rnf(:,:) = 1 
    276         h_rnf (:,:) = gdept_n(:,:,1) 
    277       ENDIF 
    278  
    279272      ! dust input from the atmosphere 
    280273      ! ------------------------------ 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p5zprod.F90

    r12349 r12496  
    462462                 zdocprod = excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk) + excretp * zprorcap(ji,jj,jk) 
    463463                 zfeup    = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
    464                  tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp - zfeup * plig(ji,jj,jk) * lthet 
     464                 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp    & 
     465                 &       - zfeup * plig(ji,jj,jk) / ( rtrn + plig(ji,jj,jk) + 2.E3 * (1.0 - plig(ji,jj,jk) ) ) 
    465466                 zpligprod1(ji,jj,jk) = zdocprod * ldocp 
    466467                 zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) * lthet 
Note: See TracChangeset for help on using the changeset viewer.