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 14963 for NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p4zfechem.F90 – NEMO

Ignore:
Timestamp:
2021-06-09T18:14:48+02:00 (3 years ago)
Author:
aumont
Message:

Code updates + debugging + configuration files updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/TOP/PISCES/P4Z/p4zfechem.F90

    r14957 r14963  
    5656      INTEGER  ::   ji, jj, jk, jic, jn 
    5757      REAL(wp) ::   zlam1a, zlam1b 
    58       REAL(wp) ::   zkeq, zfesatur, zfecoll, fe3sol, zligco 
     58      REAL(wp) ::   zkeq, zfesatur, fe3sol, zligco 
    5959      REAL(wp) ::   zscave, zaggdfea, zaggdfeb, ztrc, zdust, zklight 
    6060      REAL(wp) ::   ztfe, zhplus, zxlam, zaggliga, zaggligb 
     
    6262      REAL(wp) ::   zrfact2 
    6363      CHARACTER (len=25) :: charout 
    64       REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zTL1, zFe3, ztotlig, zfeprecip, zFeL1 
     64      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zTL1, zFe3, ztotlig, zfeprecip, zFeL1, zfecoll 
    6565      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zcoll3d, zscav3d, zlcoll3d 
    6666      !!--------------------------------------------------------------------- 
     
    7575      zscav3d  (:,:,jpk) = 0. 
    7676      zlcoll3d (:,:,jpk) = 0. 
    77  
     77      zfecoll  (:,:,jpk) = 0. 
     78      xfecolagg(:,:,jpk) = 0. 
     79      xcoagfe  (:,:,jpk) = 0. 
     80      ! 
    7881      ! Total ligand concentration : Ligands can be chosen to be constant or variable 
    7982      ! Parameterization from Pham and Ito (2018) 
    8083      ! ------------------------------------------------- 
     84      xfecolagg(:,:,:) = ligand * 1E9 + MAX(0., chemo2(:,:,:) - tr(:,:,:,jpoxy,Kbb) ) / 400.E-6 
    8185      IF( ln_ligvar ) THEN 
    82          ztotlig(:,:,:) =  0.09 * 0.667 * tr(:,:,:,jpdoc,Kbb) * 1E6 & 
    83            &             + ligand * 1E9 & 
    84            &             + MAX(0., chemo2(:,:,:) - tr(:,:,:,jpoxy,Kbb) ) / 400.E-6 
     86         ztotlig(:,:,:) =  0.09 * 0.667 * tr(:,:,:,jpdoc,Kbb) * 1E6 + xfecolagg(:,:,:) 
    8587         ztotlig(:,:,:) =  MIN( ztotlig(:,:,:), 10. ) 
    8688      ELSE 
     
    111113      ! 
    112114      zdust = 0.         ! if no dust available 
     115 
     116      ! Computation of the colloidal fraction that is subjecto to coagulation 
     117      ! The assumption is that 50% of complexed iron is colloidal. Furthermore 
     118      ! The refractory part is supposed to be non sticky. The refractory 
     119      ! fraction is supposed to equal to the background concentration +  
     120      ! the fraction that accumulates in the deep ocean. AOU is taken as a  
     121      ! proxy of that accumulation following numerous studies showing  
     122      ! some relationship between weak ligands and AOU. 
     123      ! An issue with that parameterization is that when ligands are not 
     124      ! prognostic or non variable, all the colloidal fraction is supposed 
     125      ! to coagulate 
     126      ! ---------------------------------------------------------------------- 
     127      IF (ln_ligand) THEN 
     128         zfecoll(:,:,:) = 0.5 * zFeL1(:,:,:) * MAX(0., tr(:,:,:,jplgw,Kbb) - xfecolagg(:,:,:) * 1.0E-9 ) / ( tr(:,:,:,jplgw,Kbb) + rtrn )  
     129      ELSE 
     130         IF (ln_ligvar) THEN 
     131            zfecoll(:,:,:) = 0.5 * zFeL1(:,:,:) * MAX(0., tr(:,:,:,jplgw,Kbb) - xfecolagg(:,:,:) * 1.0E-9 ) / ( tr(:,:,:,jplgw,Kbb) + rtrn )    
     132         ELSE 
     133            zfecoll(:,:,:) = 0.5 * zFeL1(:,:,:) 
     134         ENDIF 
     135      ENDIF 
     136 
    113137      DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    114138         ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.  
     
    121145         &         + fesol(ji,jj,jk,5) / zhplus ) 
    122146         ! 
    123          zfecoll = 0.5 * zFeL1(ji,jj,jk) 
    124147         ! precipitation of Fe3+, creation of nanoparticles 
    125148         zprecip = MAX( 0., ( zFe3(ji,jj,jk) - fe3sol ) ) * kfep * xstep * ( 1.0 - nitrfac(ji,jj,jk) )  
     
    144167             &    + ( 2.49  * tr(ji,jj,jk,jppoc,Kbb) )     & 
    145168             &    + ( 127.8 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 725.7 * tr(ji,jj,jk,jppoc,Kbb) ) 
    146          zaggdfea = zlam1a * xstep * zfecoll 
     169         zaggdfea = zlam1a * xstep * zfecoll(ji,jj,jk) 
    147170               ! 
    148171         zlam1b   = ( 1.94 * xdiss(ji,jj,jk) + 1.37 ) * tr(ji,jj,jk,jpgoc,Kbb) 
    149          zaggdfeb = zlam1b * xstep * zfecoll 
    150  
     172         zaggdfeb = zlam1b * xstep * zfecoll(ji,jj,jk) 
     173         xcoagfe(ji,jj,jk) = zlam1a + zlam1b 
    151174         ! 
    152175         tr(ji,jj,jk,jpfer,Krhs) = tr(ji,jj,jk,jpfer,Krhs) - zscave - zaggdfea - zaggdfeb & 
     
    179202      biron(:,:,:) = tr(:,:,:,jpfer,Kbb)  
    180203      ! 
    181       IF( ln_ligand ) THEN 
    182          ! 
    183          DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 
    184              ! Coagulation of ligands due to various processes (Brownian, shear, diff. sedimentation 
    185              ! Coefficients are taken from p4zagg 
    186              ! ------------------------------------------------------------------------------------- 
    187              zlam1a   = ( 12.0  * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 9.05  * tr(ji,jj,jk,jppoc,Kbb) ) * xdiss(ji,jj,jk)    & 
    188                  &    + ( 2.49  * tr(ji,jj,jk,jppoc,Kbb) )     & 
    189                  &    + ( 127.8 * 0.3 * tr(ji,jj,jk,jpdoc,Kbb) + 725.7 * tr(ji,jj,jk,jppoc,Kbb) ) 
    190              ! 
    191              zlam1b   = ( 1.94 * xdiss(ji,jj,jk) + 1.37 ) * tr(ji,jj,jk,jpgoc,Kbb) 
    192              ! 50% of the ligands are supposed to be in the colloidal size fraction 
    193              ! as for FeL 
    194              zligco   = 0.5 * tr(ji,jj,jk,jplgw,Kbb) 
    195              zaggliga = zlam1a * xstep * zligco  
    196              zaggligb = zlam1b * xstep * zligco 
    197              ! 
    198              tr(ji,jj,jk,jplgw,Krhs) = tr(ji,jj,jk,jplgw,Krhs)  - zaggliga - zaggligb 
    199              zlcoll3d(ji,jj,jk)  = zaggliga + zaggligb 
    200          END_3D 
    201       ENDIF 
    202  
    203204      !  Output of some diagnostics variables 
    204205      !     --------------------------------- 
     
    213214         IF( iom_use("FECOLL") )  CALL iom_put("FECOLL" , zcoll3d(:,:,:)  * 1e9 * tmask(:,:,:) * zrfact2 ) 
    214215         IF( iom_use("FEPREC") )  CALL iom_put("FEPREC" , zfeprecip(:,:,:) *1e9*tmask(:,:,:)*zrfact2 ) 
    215          IF( iom_use("LGWCOLL"))  CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 
    216216      ENDIF 
    217217 
Note: See TracChangeset for help on using the changeset viewer.