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 10362 for NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90 – NEMO

Ignore:
Timestamp:
2018-11-30T16:38:17+01:00 (6 years ago)
Author:
aumont
Message:

Various bug fixes and improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/TOP/PISCES/P4Z/p4zligand.F90

    r10069 r10362  
    1313   USE sms_pisces      ! PISCES Source Minus Sink variables 
    1414   USE prtctl_trc      ! print control for debugging 
     15   USE iom             !  I/O manager 
    1516 
    1617   IMPLICIT NONE 
     
    4344      INTEGER  ::   ji, jj, jk 
    4445      REAL(wp) ::   zlgwp, zlgwpr, zlgwr, zlablgw, zrfepa, zfepr 
     46      REAL(wp), DIMENSION(jpi,jpj,jpk) :: zligrem, zligpr, zrligprod 
     47      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   zw3d 
    4548      CHARACTER (len=25) ::   charout 
    4649      !!--------------------------------------------------------------------- 
     
    5659               ! ------------------------------------------------------------------ 
    5760               ! production from remineralisation of organic matter 
    58                zlgwp  = orem(ji,jj,jk) * rlig 
     61               zlgwp = orem(ji,jj,jk) * rlig 
    5962               ! decay of weak ligand 
    6063               ! This is based on the idea that as LGW is lower 
    6164               ! there is a larger fraction of refractory OM 
    6265               zlgwr = max( rlgs , rlgw * exp( -2 * (trb(ji,jj,jk,jplgw)*1e9) ) ) ! years 
    63                zlgwr = 1. / zlgwr * tgfunc(ji,jj,jk) * ( xstep / nyear_len(1) ) * trb(ji,jj,jk,jplgw) 
     66               zlgwr = 1. / zlgwr * tgfunc(ji,jj,jk) * ( xstep / nyear_len(1) ) * blim(ji,jj,jk) * trb(ji,jj,jk,jplgw) 
    6467               ! photochem loss of weak ligand 
    6568               zlgwpr = prlgw * xstep * etot(ji,jj,jk) * trb(ji,jj,jk,jplgw) * (1. - fr_i(ji,jj)) 
    6669               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) + zlgwp - zlgwr - zlgwpr 
     70               zligrem(ji,jj,jk)   = zlgwr 
     71               zligpr(ji,jj,jk)    = zlgwpr 
     72               zrligprod(ji,jj,jk) = zlgwp 
    6773               ! 
    6874               ! ---------------------------------------------------------- 
     
    7480               zrfepa = rfep * ( 1. - EXP( -1. * etot(ji,jj,jk) / 25. ) ) * (1.- fr_i(ji,jj)) 
    7581               zrfepa = MAX( (zrfepa / 10.0), zrfepa ) ! min of 10 days lifetime 
    76                zfepr = rfep * xstep * trb(ji,jj,jk,jpfep) 
     82               zfepr  = rfep * xstep * trb(ji,jj,jk,jpfep) 
    7783               tra(ji,jj,jk,jpfep) = tra(ji,jj,jk,jpfep) - zfepr 
    7884               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) + zfepr 
     
    8187         END DO 
    8288      END DO 
     89      ! 
     90      !  Output of some diagnostics variables 
     91      !     --------------------------------- 
     92      IF( lk_iomput .AND. knt == nrdttrc ) THEN 
     93         ALLOCATE( zw3d(jpi,jpj,jpk) ) 
     94         IF( iom_use( "LIGREM" ) ) THEN 
     95            zw3d(:,:,:) = zligrem(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:) 
     96            CALL iom_put( "LIGREM", zw3d ) 
     97         ENDIF 
     98         IF( iom_use( "LIGPR" ) ) THEN 
     99            zw3d(:,:,:) = zligpr(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  
     100            CALL iom_put( "LIGPR", zw3d ) 
     101         ENDIF 
     102         IF( iom_use( "LPRODR" ) ) THEN 
     103            zw3d(:,:,:) = zrligprod(:,:,:) * 1e9 * 1.e+3 * rfact2r * tmask(:,:,:)  
     104            CALL iom_put( "LPRODR", zw3d ) 
     105         ENDIF 
     106         DEALLOCATE( zw3d ) 
     107      ENDIF 
    83108      ! 
    84109      IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
Note: See TracChangeset for help on using the changeset viewer.