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 7180 for branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90 – NEMO

Ignore:
Timestamp:
2016-11-03T16:41:10+01:00 (7 years ago)
Author:
aumont
Message:

various bug fixes on iron chemistry

File:
1 edited

Legend:

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

    r6966 r7180  
    6969      INTEGER  ::   ji, jj, jk, jic, jn 
    7070      REAL(wp) ::   zdep, zlam1a, zlam1b, zlamfac 
    71       REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, fe3sol 
     71      REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll, fe3sol, fe3sol1 
    7272      REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag 
    7373      REAL(wp) ::   ztrc, zdust 
     
    279279                  zfecoll = ( 0.3 * zFeL1(ji,jj,jk) + 0.5 * zFeL2(ji,jj,jk) ) * 1E-9 
    280280               ELSE 
     281                  zfeequi = zFe3(ji,jj,jk) * 1E-9 
    281282                  IF (ln_fecolloid) THEN 
    282                      zfeequi = zFe3(ji,jj,jk) * 1E-9 
    283283                     zhplus   = max( rtrn, hi(ji,jj,jk) ) 
    284                      fe3sol  = fesol(ji,jj,jk,1) * ( fesol(ji,jj,jk,2) * zhplus**2  & 
     284                     fe3sol  = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2  & 
    285285                     &         + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4)     & 
    286286                     &         + fesol(ji,jj,jk,5) / zhplus ) 
    287287                     zfecoll = max( ( 0.1 * zFeL1(ji,jj,jk) * 1E-9 ), ( zFeL1(ji,jj,jk) * 1E-9 -fe3sol ) ) 
     288#if defined key_ligand 
     289                     zligco  = max( ( 0.1 * trn(ji,jj,jk,jplgw) ), ( trn(ji,jj,jk,jplgw) - fe3sol ) ) 
     290#endif  
    288291                  ELSE 
    289                      zfeequi = zFe3(ji,jj,jk) * 1E-9  
    290292                     zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9 
     293#if defined key_ligand 
     294                     zligco  = 0.5 * trn(ji,jj,jk,jplgw) 
     295#endif  
    291296                     fe3sol  = 0. 
    292                      kfep    = 0. 
    293297                  ENDIF 
    294298               ENDIF 
     
    324328               !  ---------------------------------------------------------------- 
    325329               zlam1a  = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    & 
    326                    &   + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) + 0. * trb(ji,jj,jk,jppoc) ) 
     330                   &   + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) ) 
    327331               zaggdfea = zlam1a * zstep * zfecoll 
    328 #if defined key_ligand 
    329                zligco = max( ( 0.1 * trn(ji,jj,jk,jplgw) ), ( trn(ji,jj,jk,jplgw) - fe3sol ) ) 
    330                zaggliga = zlam1a * zstep * zligco 
    331 #endif 
    332332               ! 
    333333#if defined key_kriest 
    334334               zaggdfeb = 0. 
    335                ! 
    336 #  if defined key_ligand 
    337                zaggligb = 0. 
    338 #  endif 
    339                ! 
    340                tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb - zcoag 
    341                tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb 
    342                ! 
    343335#else 
    344                ! 
    345336               zlam1b = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 
    346337               zaggdfeb = zlam1b * zstep * zfecoll 
    347                ! 
    348 #  if defined key_ligand 
    349                zaggligb = zlam1b * zstep * zligco 
    350 #  endif 
     338#endif 
    351339               ! precipitation of Fe3+, creation of nanoparticles 
    352340               precip(ji,jj,jk) = max( 0., (zfeequi - fe3sol) ) * kfep * zstep 
     
    355343               &                     - zcoag - precip(ji,jj,jk) 
    356344               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea 
     345#if ! defined key_kriest  
    357346               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb 
    358347#endif 
    359348#if defined key_ligand 
     349               zaggliga = zlam1a * zstep * zligco 
     350#   if defined key_kriest 
     351               zaggligb = 0. 
     352#   else 
     353               zaggligb = zlam1b * zstep * zligco 
     354#   endif 
    360355               tra(ji,jj,jk,jpfep) = tra(ji,jj,jk,jpfep) + precip(ji,jj,jk) 
    361356               tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) - zaggliga - zaggligb 
     
    404399      ENDIF 
    405400      ! 
    406                        CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
    407       IF( ln_fechem )  CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     401      CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig, precip ) 
     402      IF( ln_fechem )  THEN 
     403         CALL wrk_dealloc( jpi, jpj,      zstrn, zstrn2 ) 
     404         CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP ) 
     405      ENDIF 
    408406      ! 
    409407      IF( nn_timing == 1 )  CALL timing_stop('p4z_fechem') 
Note: See TracChangeset for help on using the changeset viewer.