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 13662 for NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/TOP/PISCES/P4Z/p4zmicro.F90 – NEMO

Ignore:
Timestamp:
2020-10-22T20:49:56+02:00 (4 years ago)
Author:
clem
Message:

update to almost r4.0.4

Location:
NEMO/branches/2019/dev_r11842_SI3-10_EAP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP

    • Property svn:externals
      •  

        old new  
        1 ^/utils/build/arch@HEAD       arch 
        2 ^/utils/build/makenemo@HEAD   makenemo 
        3 ^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        6 ^/vendors/FCM@HEAD            ext/FCM 
        7 ^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         1^/utils/build/arch@12130      arch 
         2^/utils/build/makenemo@12191  makenemo 
         3^/utils/build/mk@11662        mk 
         4^/utils/tools_r4.0-HEAD@12672 tools 
         5^/vendors/AGRIF/dev@10586     ext/AGRIF 
         6^/vendors/FCM@10134           ext/FCM 
         7^/vendors/IOIPSL@9655         ext/IOIPSL 
         8 
         9# SETTE mapping (inactive) 
         10#^/utils/CI/sette@12135        sette 
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/TOP/PISCES/P4Z/p4zmicro.F90

    r11536 r13662  
    6464      REAL(wp) :: zgraze  , zdenom, zdenom2 
    6565      REAL(wp) :: zfact   , zfood, zfoodlim, zbeta 
    66       REAL(wp) :: zepsherf, zepshert, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 
     66      REAL(wp) :: zepsherf, zepshert, zepsherv, zepsherq 
     67      REAL(wp) :: zgrarsig, zgraztotc, zgraztotn, zgraztotf 
    6768      REAL(wp) :: zgrarem, zgrafer, zgrapoc, zprcaca, zmortz 
    6869      REAL(wp) :: zrespz, ztortz, zgrasrat, zgrasratn 
    6970      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7071      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
    71       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo 
    72       REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: zw3d, zzligprod 
     72      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo, zzligprod 
    7373      CHARACTER (len=25) :: charout 
    7474      !!--------------------------------------------------------------------- 
    7575      ! 
    7676      IF( ln_timing )   CALL timing_start('p4z_micro') 
    77       ! 
    78       IF (ln_ligand) THEN 
    79          ALLOCATE( zzligprod(jpi,jpj,jpk) ) 
    80          zzligprod(:,:,:) = 0._wp 
    81       ENDIF 
    8277      ! 
    8378      DO jk = 1, jpkm1 
     
    124119               zgrazing(ji,jj,jk) = zgraztotc 
    125120 
    126                !    Various remineralization and excretion terms 
    127                !    -------------------------------------------- 
     121               ! Microzooplankton efficiency.  
     122               ! We adopt a formulation proposed by Mitra et al. (2007) 
     123               ! The gross growth efficiency is controled by the most limiting nutrient. 
     124               ! Growth is also further decreased when the food quality is poor. This is currently 
     125               ! hard coded : it can be decreased by up to 50% (zepsherq) 
     126               ! GGE can also be decreased when food quantity is high, zepsherf (Montagnes and  
     127               ! Fulton, 2012) 
     128               ! ----------------------------------------------------------------------------- 
    128129               zgrasrat  = ( zgraztotf + rtrn ) / ( zgraztotc + rtrn ) 
    129130               zgrasratn = ( zgraztotn + rtrn ) / ( zgraztotc + rtrn ) 
     
    131132               zbeta     = MAX(0., (epsher - epshermin) ) 
    132133               zepsherf  = epshermin + zbeta / ( 1.0 + 0.04E6 * 12. * zfood * zbeta ) 
    133                zepsherv  = zepsherf * zepshert  
     134               zepsherq  = 0.5 + (1.0 - 0.5) * zepshert * ( 1.0 + 1.0 ) / ( zepshert + 1.0 ) 
     135               zepsherv  = zepsherf * zepshert * zepsherq  
    134136 
    135137               zgrafer   = zgraztotc * MAX( 0. , ( 1. - unass ) * zgrasrat - ferat3 * zepsherv )  
     
    186188      END DO 
    187189      ! 
    188       IF( lk_iomput ) THEN 
    189          IF( knt == nrdttrc ) THEN 
    190            ALLOCATE( zw3d(jpi,jpj,jpk) ) 
    191            IF( iom_use( "GRAZ1" ) ) THEN 
    192               zw3d(:,:,:) = zgrazing(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:)  !  Total grazing of phyto by zooplankton 
    193               CALL iom_put( "GRAZ1", zw3d ) 
    194            ENDIF 
    195            IF( iom_use( "FEZOO" ) ) THEN 
    196               zw3d(:,:,:) = zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
    197               CALL iom_put( "FEZOO", zw3d ) 
    198            ENDIF 
    199            IF( iom_use( "LPRODZ" ) .AND. ln_ligand )  THEN 
    200               zw3d(:,:,:) = zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
    201               CALL iom_put( "LPRODZ"  , zw3d ) 
    202            ENDIF 
    203            DEALLOCATE( zw3d ) 
     190      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     191       IF( iom_use("GRAZ1") ) THEN  !   Total grazing of phyto by zooplankton 
     192           zgrazing(:,:,jpk) = 0._wp   ; CALL iom_put( "GRAZ1" , zgrazing(:,:,:) * 1.e+3  * rfact2r * tmask(:,:,:) )  
    204193         ENDIF 
    205       ENDIF 
    206       ! 
    207       IF (ln_ligand)  DEALLOCATE( zzligprod ) 
     194         IF( iom_use("FEZOO") ) THEN   
     195           zfezoo (:,:,jpk) = 0._wp    ; CALL iom_put( "FEZOO" , zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     196         ENDIF 
     197         IF( ln_ligand ) THEN 
     198            zzligprod(:,:,jpk) = 0._wp ; CALL iom_put( "LPRODZ", zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)) 
     199         ENDIF 
     200      ENDIF 
    208201      ! 
    209202      IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
     
    243236      ENDIF 
    244237      ! 
    245       REWIND( numnatp_ref )              ! Namelist nampiszoo in reference namelist : Pisces microzooplankton 
     238      REWIND( numnatp_ref ) 
    246239      READ  ( numnatp_ref, namp4zzoo, IOSTAT = ios, ERR = 901) 
    247240901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namp4zzoo in reference namelist' ) 
    248       REWIND( numnatp_cfg )              ! Namelist nampiszoo in configuration namelist : Pisces microzooplankton 
     241 
     242      REWIND( numnatp_cfg ) 
    249243      READ  ( numnatp_cfg, namp4zzoo, IOSTAT = ios, ERR = 902 ) 
    250244902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namp4zzoo in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.