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 9461 – NEMO

Changeset 9461


Ignore:
Timestamp:
2018-04-06T16:14:34+02:00 (6 years ago)
Author:
aumont
Message:

bug fixes in iron cycle

Location:
branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90

    r9450 r9461  
    270270               ! 
    271271               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6  
    272                IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s 
     272               IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) 
    273273               zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc 
    274274               zscave = zfeequi * zlam1b * xstep 
  • branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zligand.F90

    r9450 r9461  
    6868               ! there is a larger fraction of refractory OM 
    6969               zlgwr = max( rlgs , rlgw * exp( -2 * (trb(ji,jj,jk,jplgw)*1e9) ) ) ! years 
    70                zlgwr = 1. / zlgwr * tgfunc(ji,jj,jk) * ( xstep / nyear_len(1) ) * trb(ji,jj,jk,jplgw) 
     70               zlgwr = 1. / zlgwr * tgfunc(ji,jj,jk) * ( xstep / nyear_len(1) ) * blim(ji,jj,jk) * trb(ji,jj,jk,jplgw) 
    7171               ! photochem loss of weak ligand 
    7272               zlgwpr = prlgw * xstep * etot(ji,jj,jk) * trb(ji,jj,jk,jplgw) * (1. - fr_i(ji,jj)) 
     
    104104            IF( iom_use( "LIGREM" ) )   CALL iom_put("LIGREM"   , zligrem(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    105105            IF( iom_use( "LIGPR" ) )    CALL iom_put("LIGPR"    , zligpr(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    106             IF( iom_use( "LIGPRODR" ) ) CALL iom_put("LPRODR"   , zrligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     106            IF( iom_use( "LPRODR" ) )  CALL iom_put("LPRODR"   , zrligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    107107         ENDIF 
    108108      ENDIF 
  • branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r9450 r9461  
    228228               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.08 
    229229               zfebact(ji,jj,jk)   = zbactfer * 0.33 
     230               blim(ji,jj,jk)      =  xlimbacl(ji,jj,jk) * zdepbac(ji,jj,jk) / 1.e-6 * zdepprod(ji,jj,jk) 
    230231            END DO 
    231232         END DO 
  • branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p5zprod.F90

    r9450 r9461  
    8787      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld 
    8888      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad  
    89       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen 
     89      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen, zprosid 
    9090      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd 
    9191      REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd 
     
    107107      CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )  
    108108      CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    109       CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 
     109      CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen, zprosid ) 
    110110      CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    111111      CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
     
    122122      zpropo4n(:,:,:) = 0._wp ; zpropo4p(:,:,:) = 0._wp ; zpropo4d(:,:,:) = 0._wp 
    123123      zprdia  (:,:,:) = 0._wp ; zprpic  (:,:,:) = 0._wp ; zprbio  (:,:,:) = 0._wp 
    124       zysopt  (:,:,:) = 0._wp 
     124      zysopt  (:,:,:) = 0._wp ; zprosid (:,:,:) = 0._wp 
    125125      zrespn  (:,:,:) = 0._wp ; zrespp  (:,:,:) = 0._wp ; zrespd  (:,:,:) = 0._wp  
    126126 
     
    227227                  ENDIF 
    228228                  zsilim = MIN( zprdia(ji,jj,jk) / ( prmaxd(ji,jj,jk) + rtrn ), xlimsi2(ji,jj,jk) ) 
    229                   zysopt(ji,jj,jk) = grosip * zlim * zsilfac * zsilfac2 
    230229                  zlim  = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) 
    231230                  zratiosi = trb(ji,jj,jk,jpndi) 
     
    352351                  zpropo4d(ji,jj,jk) = zpropmax * xdiatpo4(ji,jj,jk) 
    353352                  zprodopd(ji,jj,jk) = zpropmax * xdiatdop(ji,jj,jk) 
     353                  ! Uptake of Si 
     354                  zprosid(ji,jj,jk)  = zprnut(ji,jj,jk) * fvduptk(ji,jj,jk) / rno3 * rfact2 * zysopt(ji,jj,jk) 
    354355                  ! Uptake of iron 
    355356                  zrat = MIN( 1., zratiof / qfdmax ) 
     
    440441              &                     + zprodopd(ji,jj,jk) * texcretd 
    441442              tra(ji,jj,jk,jpdfe) = tra(ji,jj,jk,jpdfe) + zprofed(ji,jj,jk) * texcretd 
    442               tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) + zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) * texcretd 
     443              tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) + zprosid(ji,jj,jk) 
    443444              tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk)  & 
    444445              &                     + excretp * zprorcap(ji,jj,jk) 
     
    454455              zfeup = texcretn * zprofen(ji,jj,jk) + texcretd * zprofed(ji,jj,jk) + texcretp * zprofep(ji,jj,jk) 
    455456              tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zfeup 
    456               tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - texcretd * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) 
     457              tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - zprosid(ji,jj,jk) 
    457458              tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprorcan(ji,jj,jk) - zprorcad(ji,jj,jk) - zprorcap(ji,jj,jk)  & 
    458459              &                     + zpsino3 * zpronewn(ji,jj,jk) + zpsinh4 * zproregn(ji,jj,jk)   & 
     
    515516          ENDIF 
    516517          IF( iom_use( "PBSi" ) )  THEN 
    517               zw3d(:,:,:) = zprorcad(:,:,:) * zfact * tmask(:,:,:) * zysopt(:,:,:) ! biogenic silica production 
     518              zw3d(:,:,:) = zprosid(:,:,:) * zfact * tmask(:,:,:)  ! biogenic silica production 
    518519              CALL iom_put( "PBSi"  , zw3d ) 
    519520          ENDIF 
     
    589590      CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )                            
    590591      CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    591       CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )  
     592      CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen, zprosid )  
    592593      CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    593594      CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
  • branches/CNRS/dev_r8832_PISCO/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90

    r9450 r9461  
    106106   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   prodgoc    !: Calcite production 
    107107   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   consgoc    !: Calcite production 
    108  
     108   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   blim       !: bacterial production factor 
    109109   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sizen      !: size of diatoms  
    110110   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   sizep      !: size of diatoms  
     
    163163         ALLOCATE( xfracal (jpi,jpj,jpk), orem(jpi,jpj,jpk)    ,    & 
    164164            &      nitrfac(jpi,jpj,jpk), nitrfac2(jpi,jpj,jpk) ,    & 
    165             &      prodcal(jpi,jpj,jpk) , xdiss   (jpi,jpj,jpk),    & 
     165            &      prodcal(jpi,jpj,jpk) , xdiss  (jpi,jpj,jpk),    & 
    166166            &      prodpoc(jpi,jpj,jpk) , conspoc(jpi,jpj,jpk) ,    & 
    167167            &      prodgoc(jpi,jpj,jpk) , consgoc(jpi,jpj,jpk) ,    & 
    168             &      prmax  (jpi,jpj,jpk) , STAT=ierr(4) ) 
     168            &      prmax  (jpi,jpj,jpk) , blim   (jpi,jpj,jpk) ,  STAT=ierr(4) ) 
    169169 
    170170         !* Variable for chemistry of the CO2 cycle 
Note: See TracChangeset for help on using the changeset viewer.