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

Changeset 7617


Ignore:
Timestamp:
2017-01-27T18:17:01+01:00 (7 years ago)
Author:
aumont
Message:

update diagnostics + changes in quota code

Location:
branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES
Files:
17 edited

Legend:

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

    r7180 r7617  
    6969      INTEGER  ::   ji, jj, jk, jic, jn 
    7070      REAL(wp) ::   zdep, zlam1a, zlam1b, zlamfac 
    71       REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, fe3sol, fe3sol1 
     71      REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, zfecollc, fe3sol, fe3sol1 
    7272      REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag 
    7373      REAL(wp) ::   ztrc, zdust 
     
    7878      REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP 
    7979      REAL(wp), POINTER, DIMENSION(:,:  ) :: zstrn, zstrn2 
     80      REAL(wp), POINTER, DIMENSION(:,:,:) :: zcoll3d, zscav3d 
    8081      REAL(wp) ::   zzFeL1, zzFeL2, zzFe2, zzFeP, zzFe3, zzstrn2 
    8182      REAL(wp) ::   zrum, zcodel, zargu, zlight 
     
    8485      REAL(wp) :: zxs, zfunc, zp, zq, zd, zr, zphi, zfff, zp3, zq2 
    8586      REAL(wp) :: ztfe, zoxy, zhplus 
    86       REAL(wp) :: zstep 
     87      REAL(wp) :: zstep, zrfact2 
    8788#if defined key_ligand 
    8889      REAL(wp) :: zaggliga, zaggligb 
    8990      REAL(wp) :: dissol, zligco 
     91      REAL(wp), POINTER, DIMENSION(:,:,:) :: zlcoll3d 
    9092#endif 
    9193      CHARACTER (len=25) :: charout 
     
    9698      ! Allocate temporary workspace 
    9799      CALL wrk_alloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
     100      CALL wrk_alloc( jpi, jpj, jpk, zcoll3d, zscav3d ) 
     101#if defined key_ligand 
     102      CALL wrk_alloc( jpi, jpj, jpk, zlcoll3d ) 
     103#endif 
    98104      zFe3 (:,:,:) = 0. 
    99105      zFeL1(:,:,:) = 0. 
     
    327333               !  It requires certainly some more work as it is very poorly constrained. 
    328334               !  ---------------------------------------------------------------- 
     335               zfecollc = trb(ji,jj,jk,jpdoc) / ( 40.E-6 + trb(ji,jj,jk,jpdoc) ) * zfecoll 
    329336               zlam1a  = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    & 
    330337                   &   + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) ) 
    331                zaggdfea = zlam1a * zstep * zfecoll 
     338               zaggdfea = zlam1a * zstep * zfecollc 
    332339               ! 
    333340#if defined key_kriest 
     
    335342#else 
    336343               zlam1b = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
    337                zaggdfeb = zlam1b * zstep * zfecoll 
     344               zaggdfeb = zlam1b * zstep * zfecollc 
    338345#endif 
    339346               ! precipitation of Fe3+, creation of nanoparticles 
     
    346353               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb 
    347354#endif 
     355               zscav3d(ji,jj,jk)  = zscave 
     356               zcoll3d(ji,jj,jk)  = zaggdfea + zaggdfeb 
    348357#if defined key_ligand 
    349358               zaggliga = zlam1a * zstep * zligco 
     
    355364               tra(ji,jj,jk,jpfep) = tra(ji,jj,jk,jpfep) + precip(ji,jj,jk) 
    356365               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) - zaggliga - zaggligb 
     366               zlcoll3d(ji,jj,jk) = zaggliga + zaggligb 
    357367#endif 
    358368            END DO 
     
    379389      IF( ln_diatrc .AND. lk_iomput ) THEN 
    380390         IF( jnt == nrdttrc ) THEN 
     391            zrfact2 = 1.e3 * rfact2r  ! conversion from mol/L/timestep into mol/m3/s 
    381392            CALL iom_put("Fe3"    , zFe3   (:,:,:)       * tmask(:,:,:) )   ! Fe3+ 
    382393            CALL iom_put("FeL1"   , zFeL1  (:,:,:)       * tmask(:,:,:) )   ! FeL1 
    383394            CALL iom_put("TL1"    , zTL1   (:,:,:)       * tmask(:,:,:) )   ! TL1 
    384395            CALL iom_put("Totlig" , ztotlig(:,:,:)       * tmask(:,:,:) )   ! TL 
    385             CALL iom_put("Biron"  , biron  (:,:,:) * 1e9 * tmask(:,:,:) )   ! biron 
     396            CALL iom_put("Biron"  , biron  (:,:,:)  * 1e9 * tmask(:,:,:) )   ! biron 
     397            CALL iom_put("FESCAV" , zscav3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     398            CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
     399#if defined key_ligand 
     400            CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
     401#endif 
    386402            IF( ln_fechem ) THEN 
    387403               CALL iom_put("Fe2" , zFe2   (:,:,:)       * tmask(:,:,:) )   ! Fe2+ 
     
    400416      ! 
    401417      CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
     418      CALL wrk_dealloc( jpi, jpj, jpk, zscav3d, zcoll3d ) 
     419#if defined key_ligand 
     420      CALL wrk_dealloc( jpi, jpj, jpk, zlcoll3d ) 
     421#endif 
     422 
    402423      IF( ln_fechem )  THEN 
    403424         CALL wrk_dealloc( jpi, jpj,      zstrn, zstrn2 ) 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zligand.F90

    r7180 r7617  
    5959      REAL(wp) ::   zlgwp, zlgwpr, zlgwr, zlablgw, zrfepa, zfepr 
    6060      REAL(wp) ::   zstep, zstep2, zrfact2 
     61      REAL(wp), POINTER, DIMENSION(:,:,:) :: zligrem, zligpr, zrligprod 
    6162      CHARACTER (len=25) :: charout 
    6263      !!--------------------------------------------------------------------- 
     
    8990               zlgwpr = prlgw * zstep * etot(ji,jj,jk) * trn(ji,jj,jk,jplgw) * (1. - fr_i(ji,jj)) 
    9091               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zlgwp - zlgwr - zlgwpr 
     92               zligrem(ji,jj,jk)   = zlgwr 
     93               zligpr(ji,jj,jk)    = zlgwpr 
     94               zrligprod(ji,jj,jk) = zlgwp 
    9195            END DO 
    9296         END DO 
     
    111115         END DO 
    112116      END DO 
     117 
     118      !  Output of some diagnostics variables 
     119      !     --------------------------------- 
     120      IF( ln_diatrc .AND. lk_iomput ) THEN 
     121         IF( jnt == nrdttrc ) THEN 
     122            CALL iom_put("LIGREM"   , zligrem(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     123            CALL iom_put("LIGPR"    , zligpr(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     124            CALL iom_put("LPRODR"   , zrligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) ) 
     125         ENDIF 
     126      ENDIF 
     127 
     128      CALL wrk_dealloc( jpi, jpj, jpk, zligrem, zligpr, zrligprod ) 
    113129 
    114130      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90

    r6966 r7617  
    6767      CHARACTER (len=25) :: charout 
    6868      REAL(wp), POINTER, DIMENSION(:,:,:) :: zco3, zcaldiss, zhinit, zhi, zco3sat 
     69      REAL(wp), POINTER, DIMENSION(:,:,:) :: zwork 
    6970      !!--------------------------------------------------------------------- 
    7071      ! 
     
    7273      ! 
    7374      CALL wrk_alloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
     75      CALL wrk_alloc( jpi, jpj, jpk, zwork ) 
    7476      ! 
    7577      zco3    (:,:,:) = 0. 
    7678      zcaldiss(:,:,:) = 0. 
     79      zwork   (:,:,:) = 0. 
    7780      zhinit(:,:,:)   = hi(:,:,:) * 1000. / ( rhop(:,:,:) + rtrn ) 
    7881      !     ------------------------------------------- 
     
    133136         ! 
    134137      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
    135          IF( iom_use( "PH"     ) ) CALL iom_put( "PH"    , -1. * LOG10( hi(:,:,:) )          * tmask(:,:,:) ) 
     138         IF( iom_use( "PH"     ) ) CALL iom_put( "PH"    , -1. * LOG10( hi(:,:,:) + rtrn )          * tmask(:,:,:) ) 
    136139         IF( iom_use( "CO3"    ) ) CALL iom_put( "CO3"   , zco3(:,:,:) * 1.e+3               * tmask(:,:,:) ) 
    137140         IF( iom_use( "CO3sat" ) ) CALL iom_put( "CO3sat", zco3sat(:,:,:) * 1.e+3            * tmask(:,:,:) ) 
    138141         IF( iom_use( "DCAL"   ) ) CALL iom_put( "DCAL"  , zcaldiss(:,:,:) * 1.e+3 * rfact2r * tmask(:,:,:) ) 
    139  
     142         IF( iom_use( "AOU"    ) ) THEN  
     143             zwork(:,:,:) = MAX(0., (chemo2(:,:,:) - trn(:,:,:,jpoxy) ) ) * 1.E6 * tmask(:,:,:) 
     144             CALL iom_put( "AOU"   , MAX(0., zwork(:,:,:) ) ) 
     145         ENDIF 
    140146      ELSE 
    141147         IF( ln_diatrc ) THEN 
     
    154160      ! 
    155161      CALL wrk_dealloc( jpi, jpj, jpk, zco3, zcaldiss, zhinit, zhi, zco3sat ) 
     162      CALL wrk_dealloc( jpi, jpj, jpk, zwork ) 
    156163      ! 
    157164      IF( nn_timing == 1 )  CALL timing_stop('p4z_lys') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90

    r6841 r7617  
    8383      REAL(wp) :: zgrazfffp, zgrazfffg, zgrazffep, zgrazffeg 
    8484      CHARACTER (len=25) :: charout 
    85       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     85      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo2 
     86#if defined key_ligand 
     87      REAL(wp), POINTER, DIMENSION(:,:,:) :: zz2ligprod 
     88#endif 
    8689 
    8790      !!--------------------------------------------------------------------- 
     
    8992      IF( nn_timing == 1 )  CALL timing_start('p4z_meso') 
    9093      ! 
    91       IF( lk_iomput ) THEN 
    92          CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    93          zgrazing(:,:,:) = 0._wp 
    94       ENDIF 
     94      CALL wrk_alloc( jpi, jpj, jpk, zgrazing, zfezoo2 ) 
     95#if defined key_ligand 
     96      CALL wrk_alloc( jpi, jpj, jpk, zz2ligprod ) 
     97      zz2ligprod(:,:,:) = 0._wp 
     98#endif 
     99      zgrazing(:,:,:) = 0._wp 
     100      zfezoo2(:,:,:) = 0._wp 
    95101 
    96102      DO jk = 1, jpkm1 
     
    206212#if defined key_ligand 
    207213               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + (zgrarem2 - zgrarsig) * ldocz 
     214               zz2ligprod(ji,jj,jk) = (zgrarem2 - zgrarsig) * ldocz 
    208215#endif 
    209216               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zgrarsig 
    210217               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgrafer2 
     218               zfezoo2(ji,jj,jk) = zgrafer2 
    211219               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarsig 
    212220               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgrarsig               
     
    243251              tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + ferat3 * zmortzgoc - zgrazfffg     & 
    244252                 &                + zgraztotf * unass2 - zfracfe 
    245               zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + rtrn ) 
    246               zgrazcal = (zgrazffeg + zgrazpoc) * (1. - part2) * zfracal 
     253              zfracal = trb(ji,jj,jk,jpcal) / (trb(ji,jj,jk,jpgoc) + rtrn ) 
     254              zgrazcal = zgrazffeg * (1. - part2) * zfracal 
    247255#endif 
    248256 
     
    253261               zprcaca = part2 * zprcaca 
    254262               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrazcal - zprcaca 
    255                tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2. * ( zgrazcal + zprcaca ) 
     263               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + 2. * ( zgrazcal - zprcaca ) 
    256264               tra(ji,jj,jk,jpcal) = tra(ji,jj,jk,jpcal) - zgrazcal + zprcaca 
    257265 
     
    270278            CALL iom_put( "PCAL", zw3d )   
    271279         ENDIF 
     280         IF( iom_use( "FEZOO2" ) ) THEN 
     281            zw3d(:,:,:) = zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
     282            CALL iom_put( "FEZOO2", zw3d ) 
     283         ENDIF 
     284#if defined key_ligand 
     285         IF( iom_use( "LPRODZ2" ) )  THEN 
     286            zw3d(:,:,:) = zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
     287            CALL iom_put( "LPRODZ2"  , zw3d ) 
     288         ENDIF 
     289#endif 
    272290         CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    273291      ENDIF 
     
    279297      ENDIF 
    280298      ! 
    281       IF( lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
     299#if defined key_ligand 
     300      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo2, zz2ligprod ) 
     301#else 
     302      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo2 ) 
     303#endif 
    282304      ! 
    283305      IF( nn_timing == 1 )  CALL timing_stop('p4z_meso') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90

    r6453 r7617  
    7878      REAL(wp) :: zgrazp, zgrazm, zgrazsd 
    7979      REAL(wp) :: zgrazmf, zgrazsf, zgrazpf 
    80       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     80      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo 
     81#if defined key_ligand 
     82      REAL(wp), POINTER, DIMENSION(:,:,:) :: zzligprod 
     83#endif 
    8184      CHARACTER (len=25) :: charout 
    8285      !!--------------------------------------------------------------------- 
     
    8487      IF( nn_timing == 1 )  CALL timing_start('p4z_micro') 
    8588      ! 
    86       IF( lk_iomput )  CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
     89      CALL wrk_alloc( jpi, jpj, jpk, zgrazing, zfezoo ) 
     90      zfezoo(:,:,:) = 0._wp 
     91#if defined key_ligand 
     92      CALL wrk_alloc( jpi, jpj, jpk, zzligprod ) 
     93      zzligprod(:,:,:) = 0._wp 
     94#endif 
    8795      ! 
    8896      DO jk = 1, jpkm1 
     
    151159#if defined key_ligand 
    152160               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + (zgrarem - zgrarsig) * ldocz 
     161               zzligprod(ji,jj,jk) = (zgrarem - zgrarsig) * ldocz 
    153162#endif 
    154163               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zgrarsig 
    155164               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgrafer 
     165               zfezoo(ji,jj,jk) = zgrafer 
    156166               tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) + zgrapoc 
    157167               prodpoc(ji,jj,jk) = prodpoc(ji,jj,jk) + zgrapoc 
     
    201211            CALL iom_put( "GRAZ1", zw3d ) 
    202212         ENDIF 
     213         IF( iom_use( "FEZOO" ) ) THEN 
     214            zw3d(:,:,:) = zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
     215            CALL iom_put( "FEZOO", zw3d ) 
     216         ENDIF 
     217#if defined key_ligand 
     218         IF( iom_use( "LPRODZ" ) )  THEN 
     219            zw3d(:,:,:) = zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
     220            CALL iom_put( "LPRODZ"  , zw3d ) 
     221         ENDIF 
     222#endif 
    203223         CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    204224      ENDIF 
     
    210230      ENDIF 
    211231      ! 
    212       IF( lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
     232      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo ) 
     233#if defined key_ligand 
     234      CALL wrk_dealloc( jpi, jpj, jpk, zzligprod ) 
     235#endif 
    213236      ! 
    214237      IF( nn_timing == 1 )  CALL timing_stop('p4z_micro') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zpoc.F90

    r7180 r7617  
    7373      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zremipoc, zremigoc, zorem3 
    7474      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: alphag 
     75      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zfolimi 
     76 
    7577      !!--------------------------------------------------------------------- 
    7678      ! 
     
    8082      CALL wrk_alloc( jpi, jpj,      totprod,  totthick, totcons ) 
    8183      CALL wrk_alloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3 ) 
     84      CALL wrk_alloc( jpi, jpj, jpk, zfolimi ) 
    8285      ALLOCATE( alphag(jpi,jpj,jpk,jcpoc) ) 
    8386 
     
    98101      zorem3(:,:,:)   = 0. 
    99102      orem  (:,:,:)   = 0. 
     103      zfolimi(:,:,:)  = 0. 
    100104 
    101105      DO jn = 1, jcpoc 
     
    217221               tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + zorem2 
    218222               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zofer2 
     223               zfolimi(ji,jj,jk) = zofer2 
    219224            END DO 
    220225         END DO 
     
    392397                 orem(ji,jj,jk)      = orem(ji,jj,jk) + zorem 
    393398                 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zofer 
     399                 zfolimi(ji,jj,jk)   = zfolimi(ji,jj,jk) + zofer 
    394400                 tra(ji,jj,jk,jppoc) = tra(ji,jj,jk,jppoc) - zorem 
    395401#if defined key_kriest 
     
    407413          CALL iom_put( "REMINP" , zremipoc(:,:,:) * tmask(:,:,:) )  ! Remineralisation rate 
    408414          CALL iom_put( "REMING" , zremigoc(:,:,:) * tmask(:,:,:) )  ! Remineralisation rate 
     415          CALL iom_put( "REMINF" , zfolimi(:,:,:) * tmask(:,:,:)  * 1.e+3 * rfact2r )  ! Remineralisation rate 
    409416      ENDIF 
    410417 
     
    416423      ! 
    417424      CALL wrk_dealloc( jpi, jpj,      totprod, totthick, totcons ) 
    418       CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3 ) 
     425      CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, zfolimi ) 
    419426      DEALLOCATE( alphag ) 
    420427      ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90

    r7180 r7617  
    8989      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd 
    9090      REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
     91#if defined key_ligand 
     92      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpligprod, zpligprod2 
     93#endif 
    9194      !!--------------------------------------------------------------------- 
    9295      ! 
     
    98101      CALL wrk_alloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    99102      CALL wrk_alloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
     103#if defined key_ligand 
     104      CALL wrk_alloc( jpi, jpj, jpk, zpligprod, zpligprod2 ) 
     105#endif 
    100106      ! 
    101107      zprorcan(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp ; zprofed (:,:,:) = 0._wp 
     
    345351#if defined key_ligand 
    346352                 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp  - zfeup * plig(ji,jj,jk) * lthet 
     353                 zpligprod(ji,jj,jk) = zdocprod * ldocp 
     354                 zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) * lthet 
    347355#endif 
    348356                 tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) + o2ut * ( zproreg + zproreg2) & 
     
    424432              CALL iom_put( "TPBFE"  , zw3d ) 
    425433          ENDIF 
     434#if defined key_ligand 
     435          IF( iom_use( "LPRODP" ) )  THEN 
     436              zw3d(:,:,:) = zpligprod(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
     437              CALL iom_put( "LPRODP"  , zw3d ) 
     438          ENDIF 
     439          IF( iom_use( "LDETP" ) )  THEN 
     440              zw3d(:,:,:) = zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) 
     441              CALL iom_put( "LDETP"  , zw3d ) 
     442          ENDIF 
     443#endif 
    426444          IF( iom_use( "INTPPPHY" ) .OR. iom_use( "INTPPPHY2" ) ) THEN   
    427445             zw2d(:,:) = 0. 
     
    495513     CALL wrk_dealloc( jpi, jpj, jpk, zmxl_fac, zmxl_chl ) 
    496514     CALL wrk_dealloc( jpi, jpj, jpk, zprorcan, zprorcad, zprofed, zprofen, zpronewn, zpronewd ) 
     515#if defined key_ligand 
     516     CALL wrk_dealloc( jpi, jpj, jpk, zpligprod, zpligprod2 ) 
     517#endif 
    497518     ! 
    498519     IF( nn_timing == 1 )  CALL timing_stop('p4z_prod') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90

    r7180 r7617  
    7979      CHARACTER (len=25) :: charout 
    8080      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac 
    81       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib 
     81      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zolimi, zdepprod, zfacsi, zfacsib, znitr 
    8282      !!--------------------------------------------------------------------- 
    8383      ! 
     
    8686      ! Allocate temporary workspace 
    8787      CALL wrk_alloc( jpi, jpj,      ztempbac ) 
    88       CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
     88      CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, znitr, zfacsi, zfacsib ) 
    8989 
    9090      ! Initialization of local variables 
     
    187187               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2nit * zonitr 
    188188               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr + rno3 * ( rdenita - 1. ) * zdenitnh4 
     189               znitr(ji,jj,jk) = zonitr 
    189190            END DO 
    190191         END DO 
     
    271272          CALL iom_put( "REMIN" , zolimi(:,:,:) * tmask(:,:,:) * zrfact2 )  ! Remineralisation rate 
    272273          CALL iom_put( "DENIT" , denitr(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zrfact2  )  ! Denitrification 
     274          CALL iom_put( "NIT"   , znitr(:,:,:) * rno3 * tmask(:,:,:) * zrfact2 )  ! 
     275          CALL iom_put( "BACT", zdepbac(:,:,:) * 1.E6 * tmask(:,:,:) )  ! Bacterial biomass 
     276 
    273277      ENDIF 
    274278      ! 
    275279      CALL wrk_dealloc( jpi, jpj,      ztempbac ) 
    276       CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib ) 
     280      CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zolimi, zfacsi, zfacsib, znitr ) 
    277281      ! 
    278282      IF( nn_timing == 1 )  CALL timing_stop('p4z_rem') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r6453 r7617  
    4545   REAL(wp), PUBLIC  :: fep_rats    !: Fep/Fer ratio from sed  sources 
    4646   REAL(wp), PUBLIC  :: fep_rath    !: Fep/Fer ratio from hydro sources 
     47   REAL(wp), PUBLIC  :: hydrolig    !: Lgw/Fer ratio from hydro sources 
    4748#endif 
    4849 
     
    231232        &                sedfeinput, dustsolub, icefeinput, wdust, mfrac, nitrfix, diazolight, concfediaz,   & 
    232233#if defined key_ligand 
    233         &                fep_rats, fep_rath,                     & 
     234        &                fep_rats, fep_rath,   hydrolig,                  & 
    234235#endif 
    235236        &                hratio 
     
    271272         WRITE(numout,*) '    Fep/Fer ratio from sed sources                       = ', fep_rats 
    272273         WRITE(numout,*) '    Fep/Fer ratio from sed hydro sources                 = ', fep_rath 
     274         WRITE(numout,*) '    Lgw/Fer ratio from sed sources                       = ', hydrolig 
    273275#endif 
    274276      END IF 
     
    286288      IF( lk_offline ) THEN 
    287289        nk_rnf(:,:) = 1 
    288         h_rnf (:,:) = fsdept(:,:,1) 
     290        h_rnf (:,:) = fse3t(:,:,1) 
    289291      ENDIF 
    290292 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r7180 r7617  
    212212#if defined key_ligand 
    213213         tra(:,:,:,jpfep) = tra(:,:,:,jpfep) + ( hydrofe(:,:,:) * fep_rath ) * rfact2 
    214          tra(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * 0.5 ) * rfact2 
     214         tra(:,:,:,jplgw) = tra(:,:,:,jplgw) + ( hydrofe(:,:,:) * hydrolig ) * rfact2 
    215215#endif 
    216216         ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zlim.F90

    r6453 r7617  
    104104   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimdfe    !: ??? 
    105105   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimsi     !: ??? 
     106   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimsi2    !: ??? 
    106107   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimbac    !: ?? 
    107108   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xlimbacl   !: ?? 
     
    120121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   fvpuptk 
    121122   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   fvduptk 
     123   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xbactnh4   !: ??? 
     124   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)  ::   xbactno3   !: ??? 
    122125 
    123126   ! Coefficient for iron limitation 
     
    157160      REAL(wp) ::   zrpho, zrass, zcoef, zfuptk, zratchl 
    158161      REAL(wp) ::   zfvn, zfvp, zfvf, zsizen, zsizep, zsized, znanochl, zpicochl, zdiatchl 
    159       REAL(wp) ::   zqfemn, zqfemp, zqfemd, zbactno3, zbactnh4 
     162      REAL(wp) ::   zqfemn, zqfemp, zqfemd 
    160163      !!--------------------------------------------------------------------- 
    161164      ! 
     
    242245               ! Michaelis-Menten Limitation term for nutrients Small bacteria 
    243246               ! ------------------------------------------------------------- 
    244                zbactnh4 = trb(ji,jj,jk,jpnh4) / ( concbnh4 + trb(ji,jj,jk,jpnh4) ) 
    245                zbactno3 = trb(ji,jj,jk,jpno3) / ( concbno3 + trb(ji,jj,jk,jpno3) ) * (1. - zbactnh4) 
    246                ! 
    247                zlim1    = zbactno3 + zbactnh4 
     247               xbactnh4(ji,jj,jk) = trb(ji,jj,jk,jpnh4) / ( concbnh4 + trb(ji,jj,jk,jpnh4) ) 
     248               xbactno3(ji,jj,jk) = trb(ji,jj,jk,jpno3) / ( concbno3 + trb(ji,jj,jk,jpno3) ) * (1. - xbactnh4(ji,jj,jk)) 
     249               ! 
     250               zlim1    = xbactno3(ji,jj,jk) + xbactnh4(ji,jj,jk) 
    248251               zlim2    = trb(ji,jj,jk,jppo4) / ( trb(ji,jj,jk,jppo4) + concbpo4) 
    249252               zlim3    = biron(ji,jj,jk) / ( concbfe + biron(ji,jj,jk) ) 
     
    345348               xlimdfe(ji,jj,jk) = MIN( 1., zlim4 ) 
    346349               xlimdia(ji,jj,jk) = MIN( 1., zlim1, zlim3, zlim4 ) 
    347                xlimsi(ji,jj,jk)  = MIN( zlim1, zlim4 ) 
     350               xlimsi(ji,jj,jk)  = MIN( 1., zlim3, zlim4 ) 
     351               xlimsi2(ji,jj,jk)  = MIN( 1., zlim1, zlim4 ) 
    348352            END DO 
    349353         END DO 
     
    362366               zfvn = 2. * fvnuptk(ji,jj,jk) 
    363367               sizen(ji,jj,jk) = MAX(1., MIN(xsizern, 1.0 / ( MAX(rtrn, zfvn) ) ) ) 
    364  
    365368               ! N/P ratio of nanophytoplankton 
    366369               ! ------------------------------ 
    367370               zfuptk = 0.23 * zfvn 
    368371               zrpho = 2.24 * trb(ji,jj,jk,jpnch) / ( trb(ji,jj,jk,jpnph) * rno3 * 15. + rtrn ) 
    369                zrass = 1. - 0.2 - zrpho - zfuptk 
    370                xqpnmax(ji,jj,jk) = ( zfuptk + zrpho ) * 0.0128 * 16. + zrass * 1./ 7.2 * 16. 
    371                xqpnmax(ji,jj,jk) = xqpnmax(ji,jj,jk) * trb(ji,jj,jk,jpnph) / ( trb(ji,jj,jk,jpphy) + rtrn ) + 0.13 
    372                xqpnmin(ji,jj,jk) = 0.13 + 0.23 * 0.0128 * 16. 
     372               zrass = (1. - 0.2 - zrpho - zfuptk) 
     373               xqpnmax(ji,jj,jk) = ( zfuptk + zrpho ) * 0.0128 * 16. + zrass * 1./ 7.2 * 16. + 0.13 
     374               xqpnmax(ji,jj,jk) = xqpnmax(ji,jj,jk) * trb(ji,jj,jk,jpnph) / ( trb(ji,jj,jk,jpphy) + rtrn ) 
     375               xqpnmin(ji,jj,jk) = qpnmin 
    373376 
    374377               ! Size estimation of picophytoplankton 
     
    381384               zfuptk = 0.35 * zfvn 
    382385               zrpho = 2.24 * trb(ji,jj,jk,jppch) / ( trb(ji,jj,jk,jpnpi) * rno3 * 15. + rtrn ) 
    383                zrass = 1. - 0.4 - zrpho - zfuptk 
    384                xqppmax(ji,jj,jk) =  (zrpho + zfuptk) * 0.0128 * 16. + zrass * 1./ 9. * 16. 
    385                xqppmax(ji,jj,jk) = xqppmax(ji,jj,jk) * trb(ji,jj,jk,jpnpi) / ( trb(ji,jj,jk,jppic) + rtrn ) + 0.13 
    386                xqppmin(ji,jj,jk) = 0.13 
     386               zrass = (1. - 0.4 - zrpho - zfuptk) 
     387               xqppmax(ji,jj,jk) =  (zrpho + zfuptk) * 0.0128 * 16. + zrass * 1./ 10.9 * 16. + 0.13 
     388               xqppmax(ji,jj,jk) = xqppmax(ji,jj,jk) * trb(ji,jj,jk,jpnpi) / ( trb(ji,jj,jk,jppic) + rtrn ) 
     389               xqppmin(ji,jj,jk) = qppmin 
    387390 
    388391               ! Size estimation of diatoms 
     
    390393               zfvn = 2. * fvduptk(ji,jj,jk) 
    391394               sized(ji,jj,jk) = MAX(1., MIN(xsizerd, 1.0 / ( MAX(rtrn, zfvn) ) ) ) 
    392                zcoef = trb(ji,jj,jk,jpdia) - MIN(xsizedia, trb(ji,jj,jk,jpdia) ) 
    393                sized(ji,jj,jk) = 1. + xsizerd * zcoef *1E6 / ( 1. + zcoef * 1E6 ) 
     395!               zcoef = trb(ji,jj,jk,jpdia) - MIN(xsizedia, trb(ji,jj,jk,jpdia) ) 
     396!               sized(ji,jj,jk) = 1. + xsizerd * zcoef *1E6 / ( 1. + zcoef * 1E6 ) 
    394397 
    395398               ! N/P ratio of diatoms 
     
    398401               zrpho = 2.24 * trb(ji,jj,jk,jpdch) / ( trb(ji,jj,jk,jpndi) * rno3 * 15. + rtrn ) 
    399402               zrass = 1. - 0.2 - zrpho - zfuptk 
    400                xqpdmax(ji,jj,jk) = ( zfuptk + zrpho ) * 0.0128 * 16. + zrass * 1./ 7.2 * 16. 
    401                xqpdmax(ji,jj,jk) = xqpdmax(ji,jj,jk) * trb(ji,jj,jk,jpndi) / ( trb(ji,jj,jk,jpdia) + rtrn ) + 0.13 
    402                xqpdmin(ji,jj,jk) = 0.13 + 0.2 * 0.0128 * 16. 
    403  
     403               xqpdmax(ji,jj,jk) = ( zfuptk + zrpho ) * 0.0128 * 16. + zrass * 1./ 7.2 * 16. + 0.13 
     404               xqpdmax(ji,jj,jk) = xqpdmax(ji,jj,jk) * trb(ji,jj,jk,jpndi) / ( trb(ji,jj,jk,jpdia) + rtrn ) 
     405               xqpdmin(ji,jj,jk) = qpdmin * sized(ji,jj,jk)**(-0.27) 
    404406            END DO 
    405407         END DO 
     
    441443        IF( iom_use( "SIZEP"   ) ) CALL iom_put( "SIZEP"  , sizep(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    442444        IF( iom_use( "SIZED"   ) ) CALL iom_put( "SIZED"  , sized(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     445        IF( iom_use( "QPNMAX"   ) ) CALL iom_put( "QPNMAX"  , xqpnmax(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     446        IF( iom_use( "QPPMAX"   ) ) CALL iom_put( "QPPMAX"  , xqppmax(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
     447        IF( iom_use( "QPDMAX"   ) ) CALL iom_put( "QPDMAX"  , xqpdmax(:,:,:) * tmask(:,:,:) )  ! Iron limitation term 
    443448      ENDIF 
    444449      ! 
     
    569574         &      xnanonh4(jpi,jpj,jpk), xdiatnh4(jpi,jpj,jpk),       & 
    570575         &      xnanopo4(jpi,jpj,jpk), xdiatpo4(jpi,jpj,jpk),       & 
     576         &      xbactnh4(jpi,jpj,jpk), xbactno3(jpi,jpj,jpk),       & 
    571577         &      xlimphy (jpi,jpj,jpk), xlimdia (jpi,jpj,jpk),       & 
    572578         &      xlimnfe (jpi,jpj,jpk), xlimdfe (jpi,jpj,jpk),       & 
     
    576582         &      fvnuptk (jpi,jpj,jpk), fvduptk (jpi,jpj,jpk),       & 
    577583         &      fvpuptk (jpi,jpj,jpk), xlimpic (jpi,jpj,jpk),       & 
    578          &      xlimsi  (jpi,jpj,jpk), STAT=ierr(1) ) 
     584         &      xlimsi  (jpi,jpj,jpk), xlimsi2 (jpi,jpj,jpk),       STAT=ierr(1) ) 
    579585 
    580586      !*  Minimum/maximum quotas of phytoplankton 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zmeso.F90

    r7180 r7617  
    9595      CHARACTER (len=25) :: charout 
    9696      REAL(wp) :: zrfact2, zmetexcess 
    97       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     97      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo2 
     98#if defined key_ligand 
     99      REAL(wp), POINTER, DIMENSION(:,:,:) :: zz2ligprod 
     100#endif 
    98101 
    99102      !!--------------------------------------------------------------------- 
     
    101104      IF( nn_timing == 1 )  CALL timing_start('p5z_meso') 
    102105      ! 
    103       IF( lk_iomput ) THEN 
    104          CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
    105          zgrazing(:,:,:) = 0._wp 
    106       ENDIF 
     106      CALL wrk_alloc( jpi, jpj, jpk, zgrazing, zfezoo2 ) 
     107#if defined key_ligand 
     108      CALL wrk_alloc( jpi, jpj, jpk, zz2ligprod ) 
     109      zz2ligprod(:,:,:) = 0._wp 
     110#endif 
     111      zgrazing(:,:,:) = 0._wp 
     112      zfezoo2(:,:,:) = 0._wp 
    107113 
    108114      zmetexcess = 0.0 
     
    155161               !   most abundant species 
    156162               !   ------------------------------------------------------------   
    157                ztmp1 = xpref2p * zcompaph**1.5 
    158                ztmp2 = xpref2m * zcompames**1.5 
    159                ztmp3 = xpref2c * zcompapoc**1.5 
    160                ztmp4 = xpref2d * zcompadi**1.5 
    161                ztmp5 = xpref2z * zcompaz**1.5 
     163               ztmp1 = xpref2p * zcompaph * (0.75 * zcompaph + 0.25 * zcompadi) 
     164               ztmp2 = xpref2m * zcompames**2 
     165               ztmp3 = xpref2c * zcompapoc**2 
     166               ztmp4 = xpref2d * zcompadi * (0.75 * zcompadi + 0.25 * zcompaph) 
     167               ztmp5 = xpref2z * zcompaz**2 
    162168               ztmptot = ztmp1 + ztmp2 + ztmp3 + ztmp4 + ztmp5 + rtrn 
    163169               ztmp1 = ztmp1 / ztmptot 
     
    324330#if defined key_ligand 
    325331               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zgradoc * ldocz 
     332               zz2ligprod(ji,jj,jk) = zgradoc * ldocz 
    326333#endif 
    327334               tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + zgradon 
     
    329336               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zgrarem 
    330337               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgraref 
     338               zfezoo2(ji,jj,jk)   = zgraref 
    331339               tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) + zgrarem 
    332340               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) + rno3 * zgraren 
     
    396404            CALL iom_put( "PCAL", zw3d ) 
    397405         ENDIF 
     406         IF( iom_use( "FEZOO2" ) ) THEN 
     407            zw3d(:,:,:) = zfezoo2(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
     408            CALL iom_put( "FEZOO2", zw3d ) 
     409         ENDIF 
     410#if defined key_ligand 
     411         IF( iom_use( "LPRODZ2" ) )  THEN 
     412            zw3d(:,:,:) = zz2ligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
     413            CALL iom_put( "LPRODZ2"  , zw3d ) 
     414         ENDIF 
     415#endif 
    398416         CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    399417      ENDIF 
     
    405423      ENDIF 
    406424      ! 
    407       IF( lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
     425#if defined key_ligand 
     426      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo2, zz2ligprod ) 
     427#else 
     428      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo2 ) 
     429#endif 
    408430      ! 
    409431      IF( nn_timing == 1 )  CALL timing_stop('p5z_meso') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zmicro.F90

    r7180 r7617  
    9090      REAL(wp) :: zgrazdc, zgrazdn, zgrazdp, zgrazdf, zgraznf, zgrazz 
    9191      REAL(wp) :: zgrazpc, zgrazpn, zgrazpp, zgrazpf, zbeta, zrfact2, zmetexcess 
    92       REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d 
     92      REAL(wp), POINTER, DIMENSION(:,:,:) :: zgrazing, zw3d, zfezoo 
     93#if defined key_ligand 
     94      REAL(wp), POINTER, DIMENSION(:,:,:) :: zzligprod 
     95#endif 
    9396      CHARACTER (len=25) :: charout 
    9497      !!--------------------------------------------------------------------- 
     
    9699      IF( nn_timing == 1 )  CALL timing_start('p5z_micro') 
    97100      ! 
    98       IF( lk_iomput )  CALL wrk_alloc( jpi, jpj, jpk, zgrazing ) 
     101      CALL wrk_alloc( jpi, jpj, jpk, zgrazing, zfezoo ) 
     102      zfezoo(:,:,:) = 0._wp 
     103#if defined key_ligand 
     104      CALL wrk_alloc( jpi, jpj, jpk, zzligprod ) 
     105      zzligprod(:,:,:) = 0._wp 
     106#endif 
    99107      ! 
    100108      zmetexcess = 0.0 
     
    146154               !   most abundant species 
    147155               !   ------------------------------------------------------------   
    148                ztmp1 = xprefn * zcompaph**1.5 
    149                ztmp2 = xprefp * zcompapi**1.5 
    150                ztmp3 = xprefc * zcompapoc**1.5 
    151                ztmp4 = xprefd * zcompadi**1.5 
    152                ztmp5 = xprefz * zcompaz**1.5 
     156               ztmp1 = xprefn * zcompaph * ( 0.75 * zcompaph + 0.25 * zcompadi ) 
     157               ztmp2 = xprefp * zcompapi * zcompapi 
     158               ztmp3 = xprefc * zcompapoc * zcompapoc 
     159               ztmp4 = xprefd * zcompadi * ( 0.75 * zcompadi + 0.25 * zcompaph ) 
     160               ztmp5 = xprefz * zcompaz * zcompaz 
    153161               ztmptot = ztmp1 + ztmp2 + ztmp3 + ztmp4 + ztmp5 + rtrn 
    154162               ztmp1 = ztmp1 / ztmptot 
     
    258266#if defined key_ligand 
    259267               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zgradoc * ldocz 
     268               zzligprod(ji,jj,jk) = zgradoc * ldocz 
    260269#endif 
    261270               tra(ji,jj,jk,jpdon) = tra(ji,jj,jk,jpdon) + zgradon 
     
    263272               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2ut * zgrarem  
    264273               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zgraref 
     274               zfezoo(ji,jj,jk)    = zgraref 
    265275               tra(ji,jj,jk,jpzoo) = tra(ji,jj,jk,jpzoo) + zepsherv * zgraztotc - zrespirc   & 
    266276               &                     - ztortz - zgrazz 
     
    315325            CALL iom_put( "GRAZ1", zw3d ) 
    316326         ENDIF 
     327         IF( iom_use( "FEZOO" ) ) THEN 
     328            zw3d(:,:,:) = zfezoo(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)   ! 
     329            CALL iom_put( "FEZOO", zw3d ) 
     330         ENDIF 
     331#if defined key_ligand 
     332         IF( iom_use( "LPRODZ" ) )  THEN 
     333            zw3d(:,:,:) = zzligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
     334            CALL iom_put( "LPRODZ"  , zw3d ) 
     335         ENDIF 
     336#endif 
    317337         CALL wrk_dealloc( jpi, jpj, jpk, zw3d ) 
    318338      ENDIF 
     
    324344      ENDIF 
    325345      ! 
    326       IF( lk_iomput )  CALL wrk_dealloc( jpi, jpj, jpk, zgrazing ) 
     346      CALL wrk_dealloc( jpi, jpj, jpk, zgrazing, zfezoo ) 
     347#if defined key_ligand 
     348      CALL wrk_dealloc( jpi, jpj, jpk, zzligprod ) 
     349#endif 
    327350      ! 
    328351      IF( nn_timing == 1 )  CALL timing_stop('p5z_micro') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zpoc.F90

    r7190 r7617  
    7979      REAL(wp), POINTER, DIMENSION(:,:,:) :: zremipoc, zremigoc, zorem3 
    8080      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: alphag 
     81      REAL(wp), POINTER, DIMENSION(:,:,:)   :: zfolimi 
     82 
    8183      !!--------------------------------------------------------------------- 
    8284      ! 
     
    8789      CALL wrk_alloc( jpi, jpj,      totprod, totthick, totcons ) 
    8890      CALL wrk_alloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3 ) 
     91      CALL wrk_alloc( jpi, jpj, jpk, zfolimi ) 
    8992      ALLOCATE( alphag(jpi,jpj,jpk,jcpoc) ) 
    9093 
     
    223226               tra(ji,jj,jk,jpdop) = tra(ji,jj,jk,jpdop) + zopop2 
    224227               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zofer2 
     228               zfolimi(ji,jj,jk) = zofer2 
    225229               tra(ji,jj,jk,jpgoc) = tra(ji,jj,jk,jpgoc) - zopoc2 - zorem3(ji,jj,jk) 
    226230               tra(ji,jj,jk,jpgon) = tra(ji,jj,jk,jpgon) - zopon2 * (1. + solgoc) 
     
    418422          CALL iom_put( "REMINP" , zremipoc(:,:,:) * tmask(:,:,:) )  ! Remineralisation rate 
    419423          CALL iom_put( "REMING" , zremigoc(:,:,:) * tmask(:,:,:) )  ! Remineralisation rate 
     424          CALL iom_put( "REMINF" , zfolimi(:,:,:) * tmask(:,:,:)  * 1.e+3 * rfact2r )  ! Remineralisation rate 
    420425      ENDIF 
    421426      ! 
     
    428433      CALL wrk_dealloc( jpi, jpj, jpk, zwork1 ) 
    429434      CALL wrk_dealloc( jpi, jpj,      totprod, totthick, totcons ) 
    430       CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3 ) 
     435      CALL wrk_dealloc( jpi, jpj, jpk, zremipoc, zremigoc, zorem3, zfolimi ) 
    431436      DEALLOCATE( alphag ) 
    432437      ! 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zprod.F90

    r7190 r7617  
    8686      REAL(wp) ::   zprnutmax, zdocprod, zprochln, zprochld, zprochlp 
    8787      REAL(wp) ::   zpislopen, zpislopep, zpisloped, thetannm_n, thetandm_n, thetanpm_n 
     88      REAL(wp) ::   zratiosi, zquotasi, grosip2 
    8889      REAL(wp) ::   zrum, zcodel, zargu, zval, zfeup 
    8990      REAL(wp) ::   zrfact2 
     
    9495      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprchln, zprchlp, zprchld 
    9596      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprorcan, zprorcap, zprorcad  
    96       REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen 
     97      REAL(wp), POINTER, DIMENSION(:,:,:) :: zprofed, zprofep, zprofen, zprosid 
    9798      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpronewn, zpronewp, zpronewd 
    9899      REAL(wp), POINTER, DIMENSION(:,:,:) :: zproregn, zproregp, zproregd 
     
    102103      REAL(wp), POINTER, DIMENSION(:,:,:) :: zcroissn, zcroissp, zcroissd 
    103104      REAL(wp), POINTER, DIMENSION(:,:,:) :: zmxl_fac, zmxl_chl 
     105#if defined key_ligand 
     106      REAL(wp), POINTER, DIMENSION(:,:,:) :: zpligprod, zpligprod2 
     107#endif 
    104108      !!--------------------------------------------------------------------- 
    105109      ! 
     
    111115      CALL wrk_alloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )  
    112116      CALL wrk_alloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    113       CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen ) 
     117      CALL wrk_alloc( jpi, jpj, jpk, zprofed, zprofep, zprofen, zprosid ) 
    114118      CALL wrk_alloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    115119      CALL wrk_alloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    116120      CALL wrk_alloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    117121      CALL wrk_alloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
     122#if defined key_ligand 
     123      CALL wrk_alloc( jpi, jpj, jpk, zpligprod, zpligprod2 ) 
     124#endif 
    118125      ! 
    119126      zprorcan(:,:,:) = 0._wp ; zprorcap(:,:,:) = 0._wp ; zprorcad(:,:,:) = 0._wp 
     
    123130      zpropo4n(:,:,:) = 0._wp ; zpropo4p(:,:,:) = 0._wp ; zpropo4d(:,:,:) = 0._wp 
    124131      zprdia  (:,:,:) = 0._wp ; zprpic  (:,:,:) = 0._wp ; zprbio  (:,:,:) = 0._wp 
    125       zysopt  (:,:,:) = 0._wp 
     132      zysopt  (:,:,:) = 0._wp ; zprosid (:,:,:) = 0._wp 
    126133      zrespn  (:,:,:) = 0._wp ; zrespp  (:,:,:) = 0._wp ; zrespd  (:,:,:) = 0._wp  
    127134 
    128135      ! Computation of the optimal production 
    129       prmaxn(:,:,:) = ( 0.65_wp * (1. + zpsino3 * qnpmax ) ) * r1_rday * tgfunc(:,:,:) 
    130       prmaxp(:,:,:) = 0.5 / 0.65 * prmaxn(:,:,:)  
     136      prmaxn(:,:,:) = ( 0.8_wp * (1. + zpsino3 * qnpmax ) ) * r1_rday * tgfunc(:,:,:) 
     137      prmaxp(:,:,:) = 0.5 / 0.8 * prmaxn(:,:,:)  
    131138      prmaxd(:,:,:) = prmaxn(:,:,:)  
    132       zprnut(:,:,:) = 0.65_wp * r1_rday * tgfunc(:,:,:) 
     139      zprnut(:,:,:) = 0.8_wp * r1_rday * tgfunc(:,:,:) 
    133140 
    134141      IF( lk_degrad )  THEN 
     
    159166                  zval = MAX( 1., zstrn(ji,jj) ) 
    160167                  IF( fsdept(ji,jj,jk) <= hmld(ji,jj) ) THEN 
    161                      zval = MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
     168                     zval = zval * MIN(1., heup_01(ji,jj) / ( hmld(ji,jj) + rtrn )) 
    162169                  ENDIF 
    163170                  zmxl_chl(ji,jj,jk) = zval / 24. 
     
    227234                  !    Si/C is arbitrariliy increased for very high Si concentrations 
    228235                  !    to mimic the very high ratios observed in the Southern Ocean (silpot2) 
    229                   zlim  = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) 
    230                   zsilim = MIN( zprdia(ji,jj,jk) / ( prmaxd(ji,jj,jk) + rtrn ), xlimsi(ji,jj,jk) ) 
    231                   zsilfac = 3.4 * EXP( -4.23 * zsilim ) * MAX( 0.e0, MIN( 1., 2.2 * ( zlim - 0.5 ) )  ) + 1.e0 
    232236                  zsiborn = trb(ji,jj,jk,jpsil) * trb(ji,jj,jk,jpsil) * trb(ji,jj,jk,jpsil) 
    233237                  IF (gphit(ji,jj) < -30 ) THEN 
    234                     zsilfac2 = 1. + 2. * zsiborn / ( zsiborn + xksi2**3 ) 
     238                    zsilfac2 = 1. + zsiborn / ( zsiborn + xksi2**3 ) 
    235239                  ELSE 
    236                     zsilfac2 = 1. +      zsiborn / ( zsiborn + xksi2**3 ) 
     240                    zsilfac2 = 1.  
    237241                  ENDIF 
    238                   zysopt(ji,jj,jk) = grosip * zlim * zsilfac * zsilfac2 
     242                  zsilim = MIN( zprdia(ji,jj,jk) / ( prmaxd(ji,jj,jk) + rtrn ), xlimsi2(ji,jj,jk) ) 
     243                  zlim  = trb(ji,jj,jk,jpsil) / ( trb(ji,jj,jk,jpsil) + xksi1 ) 
     244                  zratiosi = trb(ji,jj,jk,jpndi) 
     245                  grosip2 = zsilfac2 * grosip 
     246                  zquotasi = MIN( grosip2, trn(ji,jj,jk,jpdsi) / (zratiosi + rtrn ) ) 
     247                  zysopt(ji,jj,jk) = 1./3. * zratiosi * zlim * MAX(0.0, grosip2 - zquotasi)  
     248                  zysopt(ji,jj,jk) = zysopt(ji,jj,jk) * 1.005 * zsilim**3 / (0.005 + zsilim**3 ) 
    239249              ENDIF 
    240250            END DO 
     
    270280                  zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 
    271281                  zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqpnmin(ji,jj,jk) )   & 
    272                   &          / ( xqpnmax(ji,jj,jk) - xqpnmin(ji,jj,jk) ), xlimnfe(ji,jj,jk) ) ) 
     282                  &          / ( xqpnmax(ji,jj,jk) - xqpnmin(ji,jj,jk) + rtrn ), xlimnfe(ji,jj,jk) ) ) 
    273283                  zpronewn(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xnanono3(ji,jj,jk) 
    274284                  zproregn(ji,jj,jk) = zpronmax * xnanonh4(ji,jj,jk) 
     
    307317                  zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05)) 
    308318                  zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqppmin(ji,jj,jk) )   & 
    309                   &          / ( xqppmax(ji,jj,jk) - xqppmin(ji,jj,jk) ), xlimpfe(ji,jj,jk) ) ) 
     319                  &          / ( xqppmax(ji,jj,jk) - xqppmin(ji,jj,jk) + rtrn ), xlimpfe(ji,jj,jk) ) ) 
    310320                  zpronewp(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xpicono3(ji,jj,jk)  
    311321                  zproregp(ji,jj,jk) = zpronmax * xpiconh4(ji,jj,jk) 
     
    346356                  zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05))  
    347357                  zpronmax = zprnutmax * zmax * MAX(0., MIN(1., ( zratiop - xqpdmin(ji,jj,jk) )   & 
    348                   &          / ( xqpdmax(ji,jj,jk) - xqpdmin(ji,jj,jk) ), xlimdfe(ji,jj,jk) ) ) 
     358                  &          / ( xqpdmax(ji,jj,jk) - xqpdmin(ji,jj,jk) + rtrn ), xlimsi(ji,jj,jk) ) ) 
    349359                  zpronewd(ji,jj,jk) = zpronmax * zdaylen(ji,jj) * xdiatno3(ji,jj,jk) 
    350360                  zproregd(ji,jj,jk) = zpronmax * xdiatnh4(ji,jj,jk) 
     
    352362                  zrat = MIN( 1., zratiop / (xqpdmax(ji,jj,jk) + rtrn) ) 
    353363                  zmax = MAX(0., MIN(1., (1. - zrat)/ (1.05 - zrat) * 1.05))  
    354                   zpropmax = zprnutmax * zmax * xlimdfe(ji,jj,jk) 
     364                  zpropmax = zprnutmax * zmax * xlimsi(ji,jj,jk) 
    355365                  zpropo4d(ji,jj,jk) = zpropmax * xdiatpo4(ji,jj,jk) 
    356366                  zprodopd(ji,jj,jk) = zpropmax * xdiatdop(ji,jj,jk) 
     367                  ! Uptake of Si 
     368                  zprosid(ji,jj,jk)  = zprnut(ji,jj,jk) * fvduptk(ji,jj,jk) / rno3 * rfact2 * zysopt(ji,jj,jk) 
    357369                  ! Uptake of iron 
    358370                  zrat = MIN( 1., zratiof / qfdmax ) 
     
    440452              &                     + zprodopd(ji,jj,jk) * texcretd 
    441453              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 
     454              tra(ji,jj,jk,jpdsi) = tra(ji,jj,jk,jpdsi) + zprosid(ji,jj,jk)  
    443455              tra(ji,jj,jk,jpdoc) = tra(ji,jj,jk,jpdoc) + excretd * zprorcad(ji,jj,jk) + excretn * zprorcan(ji,jj,jk)  & 
    444456              &                     + excretp * zprorcap(ji,jj,jk) 
     
    455467              &          + texcretp * zprofep(ji,jj,jk) 
    456468              tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zfeup 
    457               tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - texcretd * zprorcad(ji,jj,jk) * zysopt(ji,jj,jk) 
     469              tra(ji,jj,jk,jpsil) = tra(ji,jj,jk,jpsil) - zprosid(ji,jj,jk) 
    458470              tra(ji,jj,jk,jpdic) = tra(ji,jj,jk,jpdic) - zprorcan(ji,jj,jk) - zprorcad(ji,jj,jk) - zprorcap(ji,jj,jk)  & 
    459471              &                     + zpsino3 * zpronewn(ji,jj,jk) + zpsinh4 * zproregn(ji,jj,jk)   & 
     
    466478#if defined key_ligand 
    467479              tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zdocprod * ldocp - zfeup * plig(ji,jj,jk) * lthet 
     480              zpligprod(ji,jj,jk) = zdocprod * ldocp 
     481              zpligprod2(ji,jj,jk) = zfeup * plig(ji,jj,jk) * lthet 
    468482#endif 
    469483          END DO 
     
    485499              CALL iom_put( "PPNEWP" , zpronewp(:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by nanophyto 
    486500              CALL iom_put( "PPNEWD" , zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) )  ! new primary production by diatom 
    487               CALL iom_put( "PBSi"   , zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) ) ! biogenic silica production 
     501              CALL iom_put( "PBSi"   , zprosid(:,:,:) * zrfact2 * tmask(:,:,:) ) ! biogenic silica production 
    488502              CALL iom_put( "PFeD"   , zprofed (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by diatom 
    489503              CALL iom_put( "PFeP"   , zprofep (:,:,:) * zrfact2 * tmask(:,:,:) )  ! biogenic iron production by diatom 
     
    499513              CALL iom_put( "LPlight", zprpic (:,:,:) / (prmaxp(:,:,:) + rtrn) * tmask(:,:,:) )  ! light limitation term 
    500514              CALL iom_put( "LDlight", zprdia (:,:,:) / (prmaxd(:,:,:) + rtrn) * tmask(:,:,:) )  ! light limitation term 
     515#if defined key_ligand 
     516              CALL iom_put( "LPRODP", zpligprod(:,:,:) * 1e9 * zfact * tmask(:,:,:) )  ! light limitation term 
     517              CALL iom_put( "LDETP", zpligprod2(:,:,:) * 1e9 * zfact * tmask(:,:,:) )  ! light limitation term 
     518#endif 
    501519           ENDIF 
    502520         ELSE 
     
    505523              trc3d(:,:,:,jp_pcs0_3d + 6)  = zpronewn(:,:,:) * zrfact2 * tmask(:,:,:) 
    506524              trc3d(:,:,:,jp_pcs0_3d + 7)  = zpronewd(:,:,:) * zrfact2 * tmask(:,:,:) 
    507               trc3d(:,:,:,jp_pcs0_3d + 8)  = zprorcad(:,:,:) * zrfact2 * tmask(:,:,:) * zysopt(:,:,:) 
     525              trc3d(:,:,:,jp_pcs0_3d + 8)  = zprosid(:,:,:)  * zrfact2 * tmask(:,:,:) 
    508526              trc3d(:,:,:,jp_pcs0_3d + 9)  = zprofed (:,:,:) * zrfact2 * tmask(:,:,:) 
    509527#  if ! defined key_kriest 
     
    524542      CALL wrk_dealloc( jpi, jpj, jpk, zpislopeadn, zpislopeadp, zpislopeadd, zysopt )                            
    525543      CALL wrk_dealloc( jpi, jpj, jpk, zprdia, zprpic, zprbio, zprorcan, zprorcap, zprorcad ) 
    526       CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen )  
     544      CALL wrk_dealloc( jpi, jpj, jpk, zprofed, zprofep, zprofen, zprosid )  
    527545      CALL wrk_dealloc( jpi, jpj, jpk, zpronewn, zpronewp, zpronewd, zproregn, zproregp, zproregd ) 
    528546      CALL wrk_dealloc( jpi, jpj, jpk, zpropo4n, zpropo4p, zpropo4d, zrespn, zrespp, zrespd, zprnut ) 
    529547      CALL wrk_dealloc( jpi, jpj, jpk, zprchln, zprchlp, zprchld, zprodopn, zprodopp, zprodopd ) 
    530548      CALL wrk_dealloc( jpi, jpj, jpk, zcroissp, zcroissn, zcroissd ) 
     549#if defined key_ligand 
     550      CALL wrk_dealloc( jpi, jpj, jpk, zpligprod, zpligprod2 ) 
     551#endif 
    531552      ! 
    532553      IF( nn_timing == 1 )  CALL timing_stop('p5z_prod') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zrem.F90

    r7190 r7617  
    8080      CHARACTER (len=25) :: charout 
    8181      REAL(wp), POINTER, DIMENSION(:,:  ) :: ztempbac  
    82       REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zwork1, zdepprod, zfacsi, zfacsib 
     82      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdepbac, zwork1, zdepprod, zfacsi, zfacsib, znitr 
    8383      !!--------------------------------------------------------------------- 
    8484      ! 
     
    8787      ! Allocate temporary workspace 
    8888      CALL wrk_alloc( jpi, jpj,      ztempbac                  ) 
    89       CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zwork1, zfacsi, zfacsib ) 
     89      CALL wrk_alloc( jpi, jpj, jpk, zdepbac, zdepprod, zwork1, zfacsi, zfacsib, znitr ) 
    9090 
    9191      ! Initialisation of temprary arrys 
     
    199199               tra(ji,jj,jk,jpoxy) = tra(ji,jj,jk,jpoxy) - o2nit * zonitr 
    200200               tra(ji,jj,jk,jptal) = tra(ji,jj,jk,jptal) - 2 * rno3 * zonitr + rno3 * ( rdenita - 1. ) * zdenitnh4 
     201               znitr(ji,jj,jk) = zonitr 
    201202            END DO 
    202203         END DO 
     
    224225               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.05 
    225226#else 
    226                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.16 
    227                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.12 
    228                tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.04 
     227               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zbactfer*0.12 
     228               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zbactfer*0.09 
     229               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zbactfer*0.03 
    229230#endif 
    230231            END DO 
     
    282283          CALL iom_put( "REMIN" , zwork1(:,:,:) * tmask(:,:,:) * zrfact2 )  ! Remineralisation rate 
    283284          CALL iom_put( "DENIT" , denitrc(:,:,:) * rdenit * rno3 * tmask(:,:,:) * zrfact2  )  ! Denitrification 
     285          CALL iom_put( "NIT"   , znitr(:,:,:) * rno3 * tmask(:,:,:) * zrfact2 )  ! 
     286          CALL iom_put( "BACT"  , zdepbac(:,:,:) * 1.E6 * tmask(:,:,:) )  ! Bacterial biomass 
    284287      ENDIF 
    285288      ! 
    286289      CALL wrk_dealloc( jpi, jpj,      ztempbac                  ) 
    287       CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zwork1, zfacsi, zfacsib ) 
     290      CALL wrk_dealloc( jpi, jpj, jpk, zdepbac, zdepprod, zwork1, zfacsi, zfacsib, znitr ) 
    288291      ! 
    289292      IF( nn_timing == 1 )  CALL timing_stop('p5z_rem') 
  • branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P5Z/p5zsed.F90

    r6841 r7617  
    213213#if defined key_ligand 
    214214         trn(:,:,:,jpfep) = trn(:,:,:,jpfep) + ( hydrofe(:,:,:) * fep_rath ) * rfact2 
    215          trn(:,:,:,jplgw) = trn(:,:,:,jplgw) + ( hydrofe(:,:,:) * 0.5 ) * rfact2 
     215         trn(:,:,:,jplgw) = trn(:,:,:,jplgw) + ( hydrofe(:,:,:) * hydrolig ) * rfact2 
    216216#endif 
    217217         ! 
Note: See TracChangeset for help on using the changeset viewer.