Changeset 13200


Ignore:
Timestamp:
2020-07-02T08:58:10+02:00 (6 weeks ago)
Author:
aumont
Message:

minor bug fixes for calcite production and diagnostics

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

Legend:

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

    r11536 r13200  
    5151      INTEGER  ::   ji, jj, jk, jic, jn 
    5252      REAL(wp) ::   zdep, zlam1a, zlam1b, zlamfac 
    53       REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, fe3sol 
    54       REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag 
    55       REAL(wp) ::   ztrc, zdust 
    56       REAL(wp) ::   zdenom2 
    57       REAL(wp) ::   zzFeL1, zzFeL2, zzFe2, zzFeP, zzFe3, zzstrn2 
    58       REAL(wp) ::   zrum, zcodel, zargu, zlight 
    59       REAL(wp) ::   zkox, zkph1, zkph2, zph, zionic, ztligand 
    60       REAL(wp) ::   za, zb, zc, zkappa1, zkappa2, za0, za1, za2 
    61       REAL(wp) ::   zxs, zfunc, zp, zq, zd, zr, zphi, zfff, zp3, zq2 
    62       REAL(wp) ::   ztfe, zoxy, zhplus, zxlam 
    63       REAL(wp) ::   zaggliga, zaggligb 
    64       REAL(wp) ::   dissol, zligco 
    65       REAL(wp) :: zrfact2 
     53      REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, fe3sol, zligco 
     54      REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag, ztrc, zdust 
     55      REAL(wp) ::   zdenom2, ztfe, zhplus, zxlam, zaggliga, zaggligb 
     56      REAL(wp) ::   zrfact2 
    6657      CHARACTER (len=25) :: charout 
    6758      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zTL1, zFe3, ztotlig, precip, zFeL1 
     
    7162      IF( ln_timing )   CALL timing_start('p4z_fechem') 
    7263      ! 
    73       zFe3 (:,:,:) = 0. 
    74       zFeL1(:,:,:) = 0. 
     64      zFe3 (:,:,:) = 0.   ;   zFeL1(:,:,:) = 0. 
    7565      zTL1 (:,:,:) = 0. 
    7666 
     
    124114               ! 
    125115               zfeequi = zFe3(ji,jj,jk) * 1E-9 
    126                zhplus  = max( rtrn, hi(ji,jj,jk) ) 
    127                fe3sol  = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2  & 
    128                   &         + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4)     & 
    129                   &         + fesol(ji,jj,jk,5) / zhplus ) 
    130116               zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9 
    131117               ! precipitation of Fe3+, creation of nanoparticles 
     
    133119               ! 
    134120               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6  
    135                IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 
    136                &  * EXP( -gdept_n(ji,jj,jk) / 540. ) 
     121               IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) 
    137122               IF (ln_ligand) THEN 
    138123                  zxlam  = xlam1 * MAX( 1.E-3, EXP(-2 * etot(ji,jj,jk) / 10. ) * (1. - EXP(-2 * trb(ji,jj,jk,jpoxy) / 100.E-6 ) )) 
     
    149134               zdenom2 = zxlam * trb(ji,jj,jk,jpgoc) / zlam1b 
    150135 
    151                !  Increased scavenging for very high iron concentrations found near the coasts  
    152                !  due to increased lithogenic particles and let say it is unknown processes (precipitation, ...) 
     136               ! Increased scavenging for very high iron concentrations found near the coasts  
     137               ! due to increased lithogenic particles and let say it is unknown processes (precipitation, ...) 
    153138               !  ----------------------------------------------------------- 
    154139               zlamfac = MAX( 0.e0, ( gphit(ji,jj) + 55.) / 30. ) 
     
    157142               zcoag   = 1E-4 * ( 1. - zlamfac ) * zdep * xstep * trb(ji,jj,jk,jpfer) 
    158143 
    159                !  Compute the coagulation of colloidal iron. This parameterization  
    160                !  could be thought as an equivalent of colloidal pumping. 
    161                !  It requires certainly some more work as it is very poorly constrained. 
    162                !  ---------------------------------------------------------------- 
     144               ! Compute the coagulation of colloidal iron. This parameterization  
     145               ! could be thought as an equivalent of colloidal pumping. 
     146               ! It requires certainly some more work as it is very poorly constrained. 
     147               ! ---------------------------------------------------------------- 
    163148               zlam1a   = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    & 
    164                    &      + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) ) 
     149                   &    + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) ) 
    165150               zaggdfea = zlam1a * xstep * zfecoll 
    166151               ! 
     
    188173            DO jj = 1, jpj 
    189174               DO ji = 1, jpi 
     175 
     176                  ! Coagulation of ligands due to various processes (Brownian, shear, diff. sedimentation 
     177                  ! Coefficients are taken from the p4zagg 
     178                  ! ------------------------------------------------------------------------------------- 
    190179                  zlam1a   = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    & 
    191180                      &    + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) ) 
    192181                  ! 
    193182                  zlam1b   = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
     183 
     184                  ! 50% of the ligands are supposed to be in the colloidal size fraction 
    194185                  zligco   = 0.5 * trn(ji,jj,jk,jplgw) 
    195186                  zaggliga = zlam1a * xstep * zligco 
     
    206197      !  Output of some diagnostics variables 
    207198      !     --------------------------------- 
    208       IF( lk_iomput ) THEN 
    209          IF( knt == nrdttrc ) THEN 
    210             zrfact2 = 1.e3 * rfact2r  ! conversion from mol/L/timestep into mol/m3/s 
    211             IF( iom_use("Fe3")    )  CALL iom_put("Fe3"    , zFe3   (:,:,:)       * tmask(:,:,:) )   ! Fe3+ 
    212             IF( iom_use("FeL1")   )  CALL iom_put("FeL1"   , zFeL1  (:,:,:)       * tmask(:,:,:) )   ! FeL1 
    213             IF( iom_use("TL1")    )  CALL iom_put("TL1"    , zTL1   (:,:,:)       * tmask(:,:,:) )   ! TL1 
    214             IF( iom_use("Totlig") )  CALL iom_put("Totlig" , ztotlig(:,:,:)       * tmask(:,:,:) )   ! TL 
    215             IF( iom_use("Biron")  )  CALL iom_put("Biron"  , biron  (:,:,:)  * 1e9 * tmask(:,:,:) )   ! biron 
    216             IF( iom_use("FESCAV") )  CALL iom_put("FESCAV" , zscav3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
    217             IF( iom_use("FECOLL") )  CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
    218             IF( iom_use("LGWCOLL"))  CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
    219          ENDIF 
     199      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     200         zrfact2 = 1.e3 * rfact2r  ! conversion from mol/L/timestep into mol/m3/s 
     201         IF( iom_use("Fe3")    )  CALL iom_put("Fe3"    , zFe3   (:,:,:)       * tmask(:,:,:) )   ! Fe3+ 
     202         IF( iom_use("FeL1")   )  CALL iom_put("FeL1"   , zFeL1  (:,:,:)       * tmask(:,:,:) )   ! FeL1 
     203         IF( iom_use("TL1")    )  CALL iom_put("TL1"    , zTL1   (:,:,:)       * tmask(:,:,:) )   ! TL1 
     204         IF( iom_use("Totlig") )  CALL iom_put("Totlig" , ztotlig(:,:,:)       * tmask(:,:,:) )   ! TL 
     205         IF( iom_use("Biron")  )  CALL iom_put("Biron"  , biron  (:,:,:)  * 1e9 * tmask(:,:,:) )   ! biron 
     206         IF( iom_use("FESCAV") )  CALL iom_put("FESCAV" , zscav3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     207         IF( iom_use("FECOLL") )  CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     208         IF( iom_use("LGWCOLL"))  CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
    220209      ENDIF 
    221210 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmeso.F90

    r12759 r13200  
    8080      REAL(wp) :: zepsherf, zepshert, zepsherq, zepsherv, zgrarsig, zgraztotc, zgraztotn, zgraztotf 
    8181      REAL(wp) :: zmigreltime, zprcaca, zmortz, zgrasratf, zgrasratn 
    82       REAL(wp) :: zrespz, ztortz, zgrazd, zgrazz, zgrazpof, zgrazn, zgrazpoc, zgraznf, zgrazf 
     82      REAL(wp) :: zrespz, ztortz, zgrazdc, zgrazz, zgrazpof, zgraznc, zgrazpoc, zgraznf, zgrazdf 
    8383      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg, zrum, zcodel, zargu, zval 
    8484      REAL(wp) :: zsigma, zdiffdn, ztmp1, ztmp2, ztmp3, ztmp4, ztmptot 
    8585      CHARACTER (len=25) :: charout 
    8686      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrazing, zfezoo2 
    87       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof 
    88       REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zgramigrem, zgramigref, zgramigpoc, zgramigpof, zstrn 
     87      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgrarem, zgraref, zgrapoc, zgrapof, zgrabsi 
     88      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zgramigrem, zgramigref, zgramigpoc, zgramigpof 
     89      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zstrn, zgramigbsi 
    8990      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zw3d, zz2ligprod 
    9091      !!--------------------------------------------------------------------- 
     
    9596      zfezoo2 (:,:,:) = 0._wp   ;  zgrarem(:,:,:) = 0._wp 
    9697      zgraref (:,:,:) = 0._wp   ;  zgrapof(:,:,:) = 0._wp 
     98      zgrabsi (:,:,:) = 0._wp 
    9799      ! 
    98100      IF (ln_ligand) THEN 
     
    171173               ! to be close enough to have potential interference 
    172174               ! ----------------------------------------------------------- 
    173                zdiffdn = exp( -ABS(log(1.5 * sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2 ) 
     175               zdiffdn = exp( -ABS(log(1.67 * sizen(ji,jj,jk) / (5.0 * sized(ji,jj,jk) + rtrn )) )**2 / zsigma**2 ) 
    174176               ztmp1 = xpref2n * zcompaph * ( zcompaph + zdiffdn * zcompadi ) / ( 1.0 + zdiffdn ) 
    175177               ztmp2 = xpref2c * zcompapoc**2 
     
    184186               !   Mesozooplankton regular grazing on the different preys 
    185187               !   ------------------------------------------------------ 
    186                zgrazd    = zgraze2  * ztmp3 * zdenom 
    187                zgrazn    = zgraze2  * ztmp1 * zdenom 
     188               zgrazdc   = zgraze2  * ztmp3 * zdenom 
     189               zgraznc   = zgraze2  * ztmp1 * zdenom 
    188190               zgrazpoc  = zgraze2  * ztmp2 * zdenom 
    189191               zgrazz    = zgraze2  * ztmp4 * zdenom 
    190192 
    191                zgraznf   = zgrazn   * trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) + rtrn) 
    192                zgrazf    = zgrazd   * trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) + rtrn) 
     193               zgraznf   = zgraznc  * trb(ji,jj,jk,jpnfe) / ( trb(ji,jj,jk,jpphy) + rtrn) 
     194               zgrazdf   = zgrazdc  * trb(ji,jj,jk,jpdfe) / ( trb(ji,jj,jk,jpdia) + rtrn) 
    193195               zgrazpof  = zgrazpoc * trb(ji,jj,jk,jpsfe) / ( trb(ji,jj,jk,jppoc) + rtrn) 
    194196 
     
    205207               zgrazfffp = zgrazffep * trb(ji,jj,jk,jpsfe) / (trb(ji,jj,jk,jppoc) + rtrn) 
    206208                
    207                zgraztotc = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 
     209               zgraztotc = zgrazdc + zgrazz + zgraznc + zgrazpoc + zgrazffep + zgrazffeg 
    208210               ! Compute the proportion of filter feeders. It is assumed steady state. 
    209211               ! ---------------------------------------------------------------------   
     
    226228               zgrazfffp = zproport * zgrazfffp 
    227229               zgrazfffg = zproport * zgrazfffg 
    228                zgraztotc = zgrazd + zgrazz + zgrazn + zgrazpoc + zgrazffep + zgrazffeg 
    229                zgraztotn = zgrazd * quotad(ji,jj,jk) + zgrazz + zgrazn * quotan(ji,jj,jk)   & 
     230               zgraztotc = zgrazdc + zgrazz + zgraznc + zgrazpoc + zgrazffep + zgrazffeg 
     231               zgraztotn = zgrazdc * quotad(ji,jj,jk) + zgrazz + zgraznc * quotan(ji,jj,jk)   & 
    230232               &   + zgrazpoc + zgrazffep + zgrazffeg 
    231                zgraztotf = zgrazf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 
     233               zgraztotf = zgrazdf + zgraznf + zgrazz * ferat3 + zgrazpof + zgrazfffp + zgrazfffg 
    232234 
    233235               ! Total grazing ( grazing by microzoo is already computed in p4zmicro ) 
     
    257259               zmortzgoc = unass2 / ( 1. - epsher2 ) * ztortz + zrespz 
    258260               tra(ji,jj,jk,jpmes) = tra(ji,jj,jk,jpmes) - zmortz + zepsherv * zgraztotc 
    259                tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazd 
     261               tra(ji,jj,jk,jpdia) = tra(ji,jj,jk,jpdia) - zgrazdc 
    260262               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) - zgrazz 
    261                tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgrazn 
    262                tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgrazn * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) + rtrn ) 
    263                tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazd * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
    264                tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazd * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
    265                tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrazd * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
     263               tra(ji,jj,jk,jpphy) = tra(ji,jj,jk,jpphy) - zgraznc 
     264               tra(ji,jj,jk,jpnch) = tra(ji,jj,jk,jpnch) - zgraznc * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpphy) + rtrn ) 
     265               tra(ji,jj,jk,jpdch) = tra(ji,jj,jk,jpdch) - zgrazdc * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
     266               tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) - zgrazdc * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
     267               zgrabsi(ji,jj,jk)   = zgrazdc * trb(ji,jj,jk,jpdsi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
    266268               tra(ji,jj,jk,jpnfe) = tra(ji,jj,jk,jpnfe) - zgraznf 
    267                tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazf 
     269               tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) - zgrazdf 
    268270               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zgrazpoc - zgrazffep + zfrac 
    269271               prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zfrac 
     
    273275               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) - zgrazpof - zgrazfffp + zfracfe 
    274276               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) - zgrazfffg - zfracfe 
     277 
    275278               ! Calcite remineralization due to zooplankton activity 
    276                ! part2 of the ingested calcite is dissolving in the acidic gut 
    277                zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + rtrn ) 
    278                zgrazcal = (zgrazffeg + zgrazpoc) * (1. - part2) * zfracal 
     279               ! part2 of the ingested calcite is not dissolving in the  
     280               ! acidic gut 
     281               ! ------------------------------------------------------ 
     282               zfracal = trb(ji,jj,jk,jpcal) / ( trb(ji,jj,jk,jpgoc) + rtrn ) 
     283               zgrazcal = zgrazffeg * (1. - part2) * zfracal 
    279284               ! calcite production by zooplankton activity 
    280                zprcaca = xfracal(ji,jj,jk) * zgrazn 
     285               zprcaca = xfracal(ji,jj,jk) * zgraznc 
    281286               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
    282287               ! 
     
    304309      IF (ln_dvm_meso) THEN 
    305310         ALLOCATE( zgramigrem(jpi,jpj), zgramigref(jpi,jpj), zgramigpoc(jpi,jpj), zgramigpof(jpi,jpj) ) 
     311         ALLOCATE( zgramigbsi(jpi,jpj) ) 
    306312         ALLOCATE( zstrn(jpi,jpj) ) 
    307313         zgramigrem(:,:) = 0.0    ;   zgramigref(:,:) = 0.0 
    308          zgramigpoc(:,:)  = 0.0   ;   zgramigpof(:,:) = 0.0 
     314         zgramigpoc(:,:) = 0.0    ;   zgramigpof(:,:) = 0.0 
     315         zgramigbsi(:,:) = 0.0 
    309316 
    310317         ! compute the day length depending on latitude and the day 
     
    340347                     zgramigpof(ji,jj) = zgramigpof(ji,jj) + xfracmig * zgrapof(ji,jj,jk) * (1. - zmigreltime )   & 
    341348                     &                   * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 
     349                     zgramigbsi(ji,jj) = zgramigbsi(ji,jj) + xfracmig * zgrabsi(ji,jj,jk) * (1. - zmigreltime )   & 
     350                     &                   * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) 
    342351 
    343352                     zgrarem(ji,jj,jk) = zgrarem(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 
     
    345354                     zgrapoc(ji,jj,jk) = zgrapoc(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 
    346355                     zgrapof(ji,jj,jk) = zgrapof(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 
     356                     zgrabsi(ji,jj,jk) = zgrabsi(ji,jj,jk) * ( (1.0 - xfracmig) + xfracmig * zmigreltime ) 
    347357                  ENDIF 
    348358               END DO 
     
    361371                  zgrapoc(ji,jj,jkt) = zgrapoc(ji,jj,jkt) + zgramigpoc(ji,jj) / e3t_n(ji,jj,jkt) 
    362372                  zgrapof(ji,jj,jkt) = zgrapof(ji,jj,jkt) + zgramigpof(ji,jj) / e3t_n(ji,jj,jkt) 
     373                  zgrabsi(ji,jj,jkt) = zgrabsi(ji,jj,jkt) + zgramigbsi(ji,jj) / e3t_n(ji,jj,jkt) 
    363374               ENDIF 
    364375            END DO 
     
    367378         ! Deallocate temporary variables 
    368379         ! ------------------------------ 
    369          DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof ) 
     380         DEALLOCATE( zgramigrem, zgramigref, zgramigpoc, zgramigpof, zgramigbsi ) 
    370381         DEALLOCATE( zstrn ) 
    371382 
     
    397408               prodgoc(ji,jj,jk)   = prodgoc(ji,jj,jk)   + zgrapoc(ji,jj,jk) 
    398409               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zgrapof(ji,jj,jk) 
     410               tra(ji,jj,jk,jpgsi) = tra(ji,jj,jk,jpgsi) + zgrabsi(ji,jj,jk) 
    399411            END DO 
    400412         END DO 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zmicro.F90

    r12759 r13200  
    9292               zfact   = xstep * tgfunc2(ji,jj,jk) * zcompaz 
    9393 
    94                ! Proportion of nano and diatoms that are within the size range 
     94               ! Proportion of diatoms that are within the size range 
    9595               ! accessible to microzooplankton.  
    9696               zproport  = min(1.0, exp(-1.1 * MAX(0., ( sized(ji,jj,jk) - 1.8 ))**0.8 )) 
     
    226226               ! 
    227227               ! Calcite remineralization due to zooplankton activity 
    228                ! part of the ingested calcite is dissolving in the acidic gut 
     228               ! part of the ingested calcite is not dissolving in the acidic gut 
     229               ! ---------------------------------------------------------------- 
    229230               zprcaca = xfracal(ji,jj,jk) * zgraznc 
    230231               prodcal(ji,jj,jk) = prodcal(ji,jj,jk) + zprcaca  ! prodcal=prodcal(nanophy)+prodcal(microzoo)+prodcal(mesozoo) 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zprod.F90

    r12759 r13200  
    218218                 zlim  = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) 
    219219                 zsilim = xlimdia(ji,jj,jk) * zprdia(ji,jj,jk) / ( zprmaxd(ji,jj,jk) + rtrn ) 
    220                  zsiborn = trb(ji,jj,1,jpsil) * trb(ji,jj,1,jpsil) * trb(ji,jj,1,jpsil) 
    221                  IF (gphit(ji,jj) < -30 ) THEN 
     220                 zsiborn = trb(ji,jj,1,jpsil)**3 
     221                 IF (gphit(ji,jj) < -30.0 ) THEN 
    222222                   zsilfac2 = 1. + 2. * zsiborn / ( zsiborn + xksi2**3 ) 
    223223                 ELSE 
  • NEMO/branches/2019/dev_r11708_aumont_PISCES_QUOTA/src/TOP/PISCES/P4Z/p4zsed.F90

    r12537 r13200  
    159159         DO jk = 2, jpkm1 
    160160            zirondep(:,:,jk) = dust(:,:) * mfrac * zwdust * rfact2 * EXP( -gdept_n(:,:,jk) / (250. * wdust) ) 
    161             zpdep   (:,:,jk) = zirondep(:,:,jk) * 0.023 
     161!            zpdep   (:,:,jk) = zirondep(:,:,jk) * 0.023 
     162            zpdep   (:,:,jk) = zirondep(:,:,jk) * 0.38 / po4r 
    162163         END DO 
    163164         ! Solubilization of particles in the water column (Si, P, Fe) 
     
    173174                &  CALL iom_put( "Irondep", zirondep(:,:,1) * 1.e+3 * rfact2r * e3t_n(:,:,1) * tmask(:,:,1) ) ! surface downward dust depo of iron 
    174175                IF( iom_use( "pdust" ) )   & 
    175                 &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust * rday )  * tmask(:,:,1) ) ! dust concentration at surface 
     176                &  CALL iom_put( "pdust"  , dust(:,:) / ( wdust / rday )  * tmask(:,:,1) ) ! dust concentration at surface 
    176177            ENDIF 
    177178         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.