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.
p4zfechem.F90 in trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z – NEMO

source: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90 @ 6140

Last change on this file since 6140 was 6140, checked in by timgraham, 8 years ago

Merge of branches/2015/dev_merge_2015 back into trunk. Merge excludes NEMOGCM/TOOLS/OBSTOOLS/ for now due to issues with the change of file type. Will sort these manually with further commits.

Branch merged as follows:
In the working copy of branch ran:
svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk@HEAD
Small conflicts due to bug fixes applied to trunk since the dev_merge_2015 was copied. Bug fixes were applied to the branch as well so these were easy to resolve.
Branch committed at this stage

In working copy run:
svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
to switch working copy

Run:
svn merge --reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2015/dev_merge_2015
to merge the branch into the trunk and then commit - no conflicts at this stage.

File size: 19.8 KB
RevLine 
[3443]1MODULE p4zfechem
2   !!======================================================================
3   !!                         ***  MODULE p4zfechem  ***
4   !! TOP :   PISCES Compute iron chemistry and scavenging
5   !!======================================================================
[3461]6   !! History :   3.5  !  2012-07 (O. Aumont, A. Tagliabue, C. Ethe) Original code
[3443]7   !!----------------------------------------------------------------------
8#if defined key_pisces
9   !!----------------------------------------------------------------------
10   !!   'key_top'       and                                      TOP models
11   !!   'key_pisces'                                       PISCES bio-model
12   !!----------------------------------------------------------------------
13   !!   p4z_fechem       :  Compute remineralization/scavenging of iron
14   !!   p4z_fechem_init  :  Initialisation of parameters for remineralisation
15   !!   p4z_fechem_alloc :  Allocate remineralisation variables
16   !!----------------------------------------------------------------------
17   USE oce_trc         !  shared variables between ocean and passive tracers
18   USE trc             !  passive tracers common variables
19   USE sms_pisces      !  PISCES Source Minus Sink variables
20   USE p4zopt          !  optical model
21   USE p4zche          !  chemical model
22   USE p4zsbc          !  Boundary conditions from sediments
23   USE prtctl_trc      !  print control for debugging
24   USE iom             !  I/O manager
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC   p4z_fechem      ! called in p4zbio.F90
30   PUBLIC   p4z_fechem_init ! called in trcsms_pisces.F90
31
[6140]32   LOGICAL          ::   ln_fechem    !: boolean for complex iron chemistry following Tagliabue and voelker
33   LOGICAL          ::   ln_ligvar    !: boolean for variable ligand concentration following Tagliabue and voelker
34   REAL(wp), PUBLIC ::   xlam1        !: scavenging rate of Iron
35   REAL(wp), PUBLIC ::   xlamdust     !: scavenging rate of Iron by dust
36   REAL(wp), PUBLIC ::   ligand       !: ligand concentration in the ocean
[3443]37
[6140]38!!gm Not DOCTOR norm !!!
[3446]39   REAL(wp) :: kl1, kl2, kb1, kb2, ks, kpr, spd, con, kth
[3443]40
41   !!----------------------------------------------------------------------
42   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
43   !! $Id: p4zrem.F90 3160 2011-11-20 14:27:18Z cetlod $
44   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
45   !!----------------------------------------------------------------------
46CONTAINS
47
[5385]48   SUBROUTINE p4z_fechem( kt, knt )
[3443]49      !!---------------------------------------------------------------------
50      !!                     ***  ROUTINE p4z_fechem  ***
51      !!
52      !! ** Purpose :   Compute remineralization/scavenging of iron
53      !!
54      !! ** Method  :   2 different chemistry models are available for iron
55      !!                (1) The simple chemistry model of Aumont and Bopp (2006)
56      !!                    based on one ligand and one inorganic form
57      !!                (2) The complex chemistry model of Tagliabue and
58      !!                    Voelker (2009) based on 2 ligands, 2 inorganic forms
59      !!                    and one particulate form (ln_fechem)
60      !!---------------------------------------------------------------------
[6140]61      INTEGER, INTENT(in) ::   kt, knt   ! ocean time step
[3443]62      !
63      INTEGER  ::   ji, jj, jk, jic
[6140]64      CHARACTER (len=25) :: charout
[3446]65      REAL(wp) ::   zdep, zlam1a, zlam1b, zlamfac
66      REAL(wp) ::   zkeq, zfeequi, zfesatur, zfecoll
67      REAL(wp) ::   zdenom1, zscave, zaggdfea, zaggdfeb, zcoag
[3443]68      REAL(wp) ::   ztrc, zdust
69#if ! defined key_kriest
70      REAL(wp) ::   zdenom, zdenom2
71#endif
72      REAL(wp), POINTER, DIMENSION(:,:,:) :: zTL1, zFe3, ztotlig
73      REAL(wp), POINTER, DIMENSION(:,:,:) :: zFeL1, zFeL2, zTL2, zFe2, zFeP
[3446]74      REAL(wp) :: zkox, zkph1, zkph2, zph, zionic, ztligand
[3443]75      REAL(wp) :: za, zb, zc, zkappa1, zkappa2, za0, za1, za2
76      REAL(wp) :: zxs, zfunc, zp, zq, zd, zr, zphi, zfff, zp3, zq2
77      REAL(wp) :: ztfe, zoxy
78      REAL(wp) :: zstep
79      !!---------------------------------------------------------------------
80      !
81      IF( nn_timing == 1 )  CALL timing_start('p4z_fechem')
82      !
[6140]83      CALL wrk_alloc( jpi,jpj,jpk,   zFe3, zFeL1, zTL1, ztotlig )
[3531]84      zFe3 (:,:,:) = 0.
85      zFeL1(:,:,:) = 0.
86      zTL1 (:,:,:) = 0.
87      IF( ln_fechem ) THEN
[6140]88         CALL wrk_alloc( jpi,jpj,jpk,   zFe2, zFeL2, zTL2, zFeP )
[3531]89         zFe2 (:,:,:) = 0.
90         zFeL2(:,:,:) = 0.
91         zTL2 (:,:,:) = 0.
92         zFeP (:,:,:) = 0.
93      ENDIF
[3461]94
[3443]95      ! Total ligand concentration : Ligands can be chosen to be constant or variable
96      ! Parameterization from Tagliabue and Voelker (2011)
97      ! -------------------------------------------------
98      IF( ln_ligvar ) THEN
[5385]99         ztotlig(:,:,:) =  0.09 * trb(:,:,:,jpdoc) * 1E6 + ligand * 1E9
[3446]100         ztotlig(:,:,:) =  MIN( ztotlig(:,:,:), 10. )
[3443]101      ELSE
102         ztotlig(:,:,:) = ligand * 1E9
103      ENDIF
104
105      IF( ln_fechem ) THEN
106         ! ------------------------------------------------------------
107         ! NEW FE CHEMISTRY ROUTINE from Tagliabue and Volker (2009)
108         ! This model is based on two ligands, Fe2+, Fe3+ and Fep
109         ! Chemistry is supposed to be fast enough to be at equilibrium
110         ! ------------------------------------------------------------
111         DO jk = 1, jpkm1
112            DO jj = 1, jpj
113               DO ji = 1, jpi
[3461]114                  ! Calculate ligand concentrations : assume 2/3rd of excess goes to
115                  ! strong ligands (L1) and 1/3rd to weak ligands (L2)
[3446]116                  ztligand       = ztotlig(ji,jj,jk) - ligand * 1E9
[3461]117                  zTL1(ji,jj,jk) =                0.000001 + 0.67 * ztligand
118                  zTL2(ji,jj,jk) = ligand * 1E9 - 0.000001 + 0.33 * ztligand
[3443]119                  ! ionic strength from Millero et al. 1987
120                  zionic = 19.9201 * tsn(ji,jj,jk,jp_sal) / ( 1000. - 1.00488 * tsn(ji,jj,jk,jp_sal) + rtrn )
121                  zph    = -LOG10( MAX( hi(ji,jj,jk), rtrn) )
[5385]122                  zoxy   = trb(ji,jj,jk,jpoxy) * ( rhop(ji,jj,jk) / 1.e3 )
[3461]123                  ! Fe2+ oxydation rate from Santana-Casiano et al. (2005)
[4153]124                  zkox   = 35.407 - 6.7109 * zph + 0.5342 * zph * zph - 5362.6 / ( tsn(ji,jj,jk,jp_tem) + 273.15 )  &
[3461]125                    &    - 0.04406 * SQRT( tsn(ji,jj,jk,jp_sal) ) - 0.002847 * tsn(ji,jj,jk,jp_sal)
126                  zkox   = ( 10.** zkox ) * spd
127                  zkox   = zkox * MAX( 1.e-6, zoxy) / ( chemo2(ji,jj,jk) + rtrn )
[3443]128                  ! PHOTOREDUCTION of complexed iron : Tagliabue and Arrigo (2006)
[3461]129                  zkph2 = MAX( 0., 15. * etot(ji,jj,jk) / ( etot(ji,jj,jk) + 2. ) )
130                  zkph1 = zkph2 / 5.
[3443]131                  ! pass the dfe concentration from PISCES
[5385]132                  ztfe = trb(ji,jj,jk,jpfer) * 1e9
[3443]133                  ! ----------------------------------------------------------
134                  ! ANALYTICAL SOLUTION OF ROOTS OF THE FE3+ EQUATION
135                  ! As shown in Tagliabue and Voelker (2009), Fe3+ is the root of a 3rd order polynom.
136                  ! ----------------------------------------------------------
137                  ! calculate some parameters
138                  za = 1 + ks / kpr
[3446]139                  zb = 1 + ( zkph1 + kth ) / ( zkox + rtrn )
[3443]140                  zc = 1 + zkph2 / ( zkox + rtrn )
[3446]141                  zkappa1 = ( kb1 + zkph1 + kth ) / kl1
142                  zkappa2 = ( kb2 + zkph2 ) / kl2
[3443]143                  za2 = zTL1(ji,jj,jk) * zb / za + zTL2(ji,jj,jk) * zc / za + zkappa1 + zkappa2 - ztfe / za
144                  za1 = zkappa2 * zTL1(ji,jj,jk) * zb / za + zkappa1 * zTL2(ji,jj,jk) * zc / za &
145                      & + zkappa1 * zkappa2 - ( zkappa1 + zkappa2 ) * ztfe / za
146                  za0 = -zkappa1 * zkappa2 * ztfe / za
147                  zp  = za1 - za2 * za2 / 3.
148                  zq  = za2 * za2 * za2 * 2. / 27. - za2 * za1 / 3. + za0
149                  zp3 = zp / 3.
150                  zq2 = zq / 2.
151                  zd  = zp3 * zp3 * zp3 + zq2 * zq2
152                  zr  = zq / ABS( zq ) * SQRT( ABS( zp ) / 3. )
153                  ! compute the roots
154                  IF( zp > 0.) THEN
[3450]155                     ! zphi = ASINH( zq / ( 2. * zr * zr * zr ) )
156                     zphi =  zq / ( 2. * zr * zr * zr ) 
[3461]157                     zphi = LOG( zphi + SQRT( zphi * zphi + 1 ) )  ! asinh(x) = log(x + sqrt(x^2+1))
[3443]158                     zxs  = -2. * zr * SINH( zphi / 3. ) - za1 / 3.
159                  ELSE
160                     IF( zd > 0. ) THEN
161                        zfff = MAX( 1., zq / ( 2. * zr * zr * zr ) )
[3461]162                        ! zphi = ACOSH( zfff )
163                        zphi = LOG( zfff + SQRT( zfff * zfff - 1 ) )  ! acosh(x) = log(x + sqrt(x^2-1))
[3443]164                        zxs = -2. * zr * COSH( zphi / 3. ) - za1 / 3.
165                     ELSE
[3461]166                        zfff = MIN( 1., zq / ( 2. * zr * zr * zr ) )
[3456]167                        zphi = ACOS( zfff )
[3443]168                        DO jic = 1, 3
169                           zfunc = -2 * zr * COS( zphi / 3. + 2. * FLOAT( jic - 1 ) * rpi / 3. ) - za2 / 3.
170                           IF( zfunc > 0. .AND. zfunc <= ztfe)  zxs = zfunc
171                        END DO
172                     ENDIF
173                  ENDIF
174                  ! solve for the other Fe species
175                  zFe3(ji,jj,jk) = MAX( 0., zxs ) 
176                  zFep(ji,jj,jk) = MAX( 0., ( ks * zFe3(ji,jj,jk) / kpr ) )
[3448]177                  zkappa2 = ( kb2 + zkph2 ) / kl2
178                  zFeL2(ji,jj,jk) = MAX( 0., ( zFe3(ji,jj,jk) * zTL2(ji,jj,jk) ) / ( zkappa2 + zFe3(ji,jj,jk) ) )
179                  zFeL1(ji,jj,jk) = MAX( 0., ( ztfe / zb - za / zb * zFe3(ji,jj,jk) - zc / zb * zFeL2(ji,jj,jk) ) )
180                  zFe2 (ji,jj,jk) = MAX( 0., ( ( zkph1 * zFeL1(ji,jj,jk) + zkph2 * zFeL2(ji,jj,jk) ) / zkox ) )
[3443]181               END DO
182            END DO
183         END DO
184      ELSE
185         ! ------------------------------------------------------------
186         ! OLD FE CHEMISTRY ROUTINE from Aumont and Bopp (2006)
187         ! This model is based on one ligand and Fe'
188         ! Chemistry is supposed to be fast enough to be at equilibrium
189         ! ------------------------------------------------------------
190         DO jk = 1, jpkm1
191            DO jj = 1, jpj
192               DO ji = 1, jpi
193                  zTL1(ji,jj,jk) = ztotlig(ji,jj,jk)
194                  zkeq           = fekeq(ji,jj,jk)
195                  zfesatur       = zTL1(ji,jj,jk) * 1E-9
[5385]196                  ztfe           = trb(ji,jj,jk,jpfer) 
[3443]197                  ! Fe' is the root of a 2nd order polynom
[3448]198                  zFe3 (ji,jj,jk) = ( -( 1. + zfesatur * zkeq - zkeq * ztfe )               &
[3443]199                     &             + SQRT( ( 1. + zfesatur * zkeq - zkeq * ztfe )**2       &
200                     &               + 4. * ztfe * zkeq) ) / ( 2. * zkeq )
[3448]201                  zFe3 (ji,jj,jk) = zFe3(ji,jj,jk) * 1E9
[5385]202                  zFeL1(ji,jj,jk) = MAX( 0., trb(ji,jj,jk,jpfer) * 1E9 - zFe3(ji,jj,jk) )
[3443]203              END DO
204            END DO
205         END DO
206         !
207      ENDIF
[5836]208      !
[3531]209      zdust = 0.         ! if no dust available
[5836]210      !
[3443]211      DO jk = 1, jpkm1
212         DO jj = 1, jpj
213            DO ji = 1, jpi
214               zstep = xstep
215# if defined key_degrad
216               zstep = zstep * facvol(ji,jj,jk)
217# endif
218               ! Scavenging rate of iron. This scavenging rate depends on the load of particles of sea water.
219               ! This parameterization assumes a simple second order kinetics (k[Particles][Fe]).
220               ! Scavenging onto dust is also included as evidenced from the DUNE experiments.
221               ! --------------------------------------------------------------------------------------
[3446]222               IF( ln_fechem ) THEN
[4521]223                  zfeequi = ( zFe3(ji,jj,jk) + zFe2(ji,jj,jk) + zFeP(ji,jj,jk) ) * 1E-9
[3446]224                  zfecoll = ( 0.3 * zFeL1(ji,jj,jk) + 0.5 * zFeL2(ji,jj,jk) ) * 1E-9
225               ELSE
226                  zfeequi = zFe3(ji,jj,jk) * 1E-9 
227                  zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9
228               ENDIF
[3443]229#if defined key_kriest
[5385]230               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 
[3443]231#else
[5385]232               ztrc   = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 
[3443]233#endif
[4800]234               IF( ln_dust )  zdust  = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s
[3443]235               zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc
236               zscave = zfeequi * zlam1b * zstep
237
238               ! Compute the different ratios for scavenging of iron
239               ! to later allocate scavenged iron to the different organic pools
240               ! ---------------------------------------------------------
[5385]241               zdenom1 = xlam1 * trb(ji,jj,jk,jppoc) / zlam1b
[3780]242#if ! defined key_kriest
[5385]243               zdenom2 = xlam1 * trb(ji,jj,jk,jpgoc) / zlam1b
[3443]244#endif
245
246               !  Increased scavenging for very high iron concentrations found near the coasts
247               !  due to increased lithogenic particles and let say it is unknown processes (precipitation, ...)
248               !  -----------------------------------------------------------
[3475]249               zlamfac = MAX( 0.e0, ( gphit(ji,jj) + 55.) / 30. )
250               zlamfac = MIN( 1.  , zlamfac )
[6140]251!!gm very small BUG :  it is unlikely but possible that gdept_n = 0  .....
252               zdep    = MIN( 1., 1000. / gdept_n(ji,jj,jk) )
[5385]253               zlam1b  = xlam1 * MAX( 0.e0, ( trb(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) )
254               zcoag   = zfeequi * zlam1b * zstep + 1E-4 * ( 1. - zlamfac ) * zdep * zstep * trb(ji,jj,jk,jpfer)
[3443]255
256               !  Compute the coagulation of colloidal iron. This parameterization
257               !  could be thought as an equivalent of colloidal pumping.
258               !  It requires certainly some more work as it is very poorly constrained.
259               !  ----------------------------------------------------------------
[5385]260               zlam1a  = ( 0.369  * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4  * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk)    &
261                   &   + ( 114.   * 0.3 * trb(ji,jj,jk,jpdoc) + 5.09E3 * trb(ji,jj,jk,jppoc) )
[3475]262               zaggdfea = zlam1a * zstep * zfecoll
[3443]263#if defined key_kriest
[3446]264               zaggdfeb = 0.
265               !
266               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb - zcoag
267               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea + zaggdfeb
[3443]268#else
[5385]269               zlam1b = 3.53E3 *   trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk)
[3446]270               zaggdfeb = zlam1b * zstep * zfecoll
271               !
272               tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb - zcoag
273               tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea
274               tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb
[3443]275#endif
276            END DO
277         END DO
278      END DO
279      !
[3446]280      !  Define the bioavailable fraction of iron
281      !  ----------------------------------------
282      IF( ln_fechem ) THEN
[5385]283          biron(:,:,:) = MAX( 0., trb(:,:,:,jpfer) - zFeP(:,:,:) * 1E-9 )
[3446]284      ELSE
[5385]285          biron(:,:,:) = trb(:,:,:,jpfer) 
[3446]286      ENDIF
[3443]287
288      !  Output of some diagnostics variables
289      !     ---------------------------------
[5385]290      IF( lk_iomput .AND. knt == nrdttrc ) THEN
[4996]291         IF( iom_use("Fe3")    )  CALL iom_put("Fe3"    , zFe3   (:,:,:)       * tmask(:,:,:) )   ! Fe3+
292         IF( iom_use("FeL1")   )  CALL iom_put("FeL1"   , zFeL1  (:,:,:)       * tmask(:,:,:) )   ! FeL1
293         IF( iom_use("TL1")    )  CALL iom_put("TL1"    , zTL1   (:,:,:)       * tmask(:,:,:) )   ! TL1
294         IF( iom_use("Totlig") )  CALL iom_put("Totlig" , ztotlig(:,:,:)       * tmask(:,:,:) )   ! TL
295         IF( iom_use("Biron")  )  CALL iom_put("Biron"  , biron  (:,:,:) * 1e9 * tmask(:,:,:) )   ! biron
296         IF( ln_fechem ) THEN
297            IF( iom_use("Fe2")  ) CALL iom_put("Fe2"    , zFe2   (:,:,:)       * tmask(:,:,:) )   ! Fe2+
298            IF( iom_use("FeL2") ) CALL iom_put("FeL2"   , zFeL2  (:,:,:)       * tmask(:,:,:) )   ! FeL2
299            IF( iom_use("FeP")  ) CALL iom_put("FeP"    , zFeP   (:,:,:)       * tmask(:,:,:) )   ! FeP
300            IF( iom_use("TL2")  ) CALL iom_put("TL2"    , zTL2   (:,:,:)       * tmask(:,:,:) )   ! TL2
[3443]301         ENDIF
302      ENDIF
303
304      IF(ln_ctl)   THEN  ! print mean trends (used for debugging)
[3449]305         WRITE(charout, FMT="('fechem')")
[3443]306         CALL prt_ctl_trc_info(charout)
307         CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm)
308      ENDIF
309      !
[3448]310                       CALL wrk_dealloc( jpi, jpj, jpk, zFe3, zFeL1, zTL1, ztotlig )
311      IF( ln_fechem )  CALL wrk_dealloc( jpi, jpj, jpk, zFe2, zFeL2, zTL2, zFeP )
[3443]312      !
313      IF( nn_timing == 1 )  CALL timing_stop('p4z_fechem')
314      !
315   END SUBROUTINE p4z_fechem
316
317
318   SUBROUTINE p4z_fechem_init
319      !!----------------------------------------------------------------------
320      !!                  ***  ROUTINE p4z_fechem_init  ***
321      !!
322      !! ** Purpose :   Initialization of iron chemistry parameters
323      !!
324      !! ** Method  :   Read the nampisfer namelist and check the parameters
325      !!      called at the first timestep
326      !!
327      !! ** input   :   Namelist nampisfer
328      !!
329      !!----------------------------------------------------------------------
330      NAMELIST/nampisfer/ ln_fechem, ln_ligvar, xlam1, xlamdust, ligand 
[4147]331      INTEGER :: ios                 ! Local integer output status for namelist read
[3443]332
[4147]333      REWIND( numnatp_ref )              ! Namelist nampisfer in reference namelist : Pisces iron chemistry
334      READ  ( numnatp_ref, nampisfer, IOSTAT = ios, ERR = 901)
335901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in reference namelist', lwp )
[3443]336
[4147]337      REWIND( numnatp_cfg )              ! Namelist nampisfer in configuration namelist : Pisces iron chemistry
338      READ  ( numnatp_cfg, nampisfer, IOSTAT = ios, ERR = 902 )
339902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in configuration namelist', lwp )
[4624]340      IF(lwm) WRITE ( numonp, nampisfer )
[4147]341
[3443]342      IF(lwp) THEN                         ! control print
343         WRITE(numout,*) ' '
344         WRITE(numout,*) ' Namelist parameters for Iron chemistry, nampisfer'
345         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
346         WRITE(numout,*) '    enable complex iron chemistry scheme      ln_fechem =', ln_fechem
347         WRITE(numout,*) '    variable concentration of ligand          ln_ligvar =', ln_ligvar
348         WRITE(numout,*) '    scavenging rate of Iron                   xlam1     =', xlam1
349         WRITE(numout,*) '    scavenging rate of Iron by dust           xlamdust  =', xlamdust
350         WRITE(numout,*) '    ligand concentration in the ocean         ligand    =', ligand
351      ENDIF
352      !
353      IF( ln_fechem ) THEN
354         ! initialization of some constants used by the complexe chemistry scheme
355         ! ----------------------------------------------------------------------
[3446]356         spd = 3600. * 24.
[3443]357         con = 1.E9
358         ! LIGAND KINETICS (values from Witter et al. 2000)
[3461]359         ! Weak (L2) ligands
360         ! Phaeophytin
361         kl2 = 12.2E5  * spd / con
362         kb2 = 12.3E-6 * spd
363         ! Strong (L1) ligands
364         ! Saccharides
365         ! kl1 = 12.2E5  * spd / con
366         ! kb1 = 12.3E-6 * spd
367         ! DFOB-
368         kl1 = 19.6e5  * spd / con
369         kb1 = 1.5e-6  * spd
[3443]370         ! pcp and remin of Fe3p
371         ks  = 0.075
372         kpr = 0.05
[3446]373         ! thermal reduction of Fe3
374         kth = 0.0048 * 24.
[3461]375         !
[3443]376      ENDIF
377      !
378   END SUBROUTINE p4z_fechem_init
379
380#else
381   !!======================================================================
382   !!  Dummy module :                                   No PISCES bio-model
383   !!======================================================================
384CONTAINS
385   SUBROUTINE p4z_fechem                    ! Empty routine
386   END SUBROUTINE p4z_fechem
387#endif 
388
389   !!======================================================================
390END MODULE p4zfechem
Note: See TracBrowser for help on using the repository browser.