Changeset 10362 for NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90
- Timestamp:
- 2018-11-30T16:38:17+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/PISCES/P4Z/p4zfechem.F90
r10069 r10362 27 27 LOGICAL :: ln_fechem !: boolean for complex iron chemistry following Tagliabue and voelker 28 28 LOGICAL :: ln_ligvar !: boolean for variable ligand concentration following Tagliabue and voelker 29 LOGICAL :: ln_fecolloid !: boolean for variable colloidal fraction30 29 REAL(wp), PUBLIC :: xlam1 !: scavenging rate of Iron 31 30 REAL(wp), PUBLIC :: xlamdust !: scavenging rate of Iron by dust … … 68 67 REAL(wp) :: za, zb, zc, zkappa1, zkappa2, za0, za1, za2 69 68 REAL(wp) :: zxs, zfunc, zp, zq, zd, zr, zphi, zfff, zp3, zq2 70 REAL(wp) :: ztfe, zoxy, zhplus 69 REAL(wp) :: ztfe, zoxy, zhplus, zxlam 71 70 REAL(wp) :: zaggliga, zaggligb 72 71 REAL(wp) :: dissol, zligco 72 REAL(wp) :: zrfact2 73 73 CHARACTER (len=25) :: charout 74 74 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zTL1, zFe3, ztotlig, precip, zFeL1 75 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zcoll3d, zscav3d, zlcoll3d 75 76 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zFeL2, zTL2, zFe2, zFeP 76 77 REAL(wp), ALLOCATABLE, DIMENSION(:,: ) :: zstrn, zstrn2 … … 129 130 ! ------------------------------------------------------------ 130 131 DO jn = 1, 2 131 DO jk = 1, jpkm1132 DO jj = 1, jpj133 DO ji = 1, jpi134 zlight= etot(ji,jj,jk) * zstrn(ji,jj) * REAL( 2-jn, wp )135 zzstrn2 = zstrn2(ji,jj) * REAL( 2-jn, wp ) + (1. - zstrn2(ji,jj) ) * REAL( jn-1, wp )136 ! Calculate ligand concentrations : assume 2/3rd of excess goes to137 ! strong ligands (L1) and 1/3rd to weak ligands (L2)138 ztligand = ztotlig(ji,jj,jk) - ligand * 1E9139 zTL1(ji,jj,jk) = 0.000001 + 0.67 * ztligand140 zTL2(ji,jj,jk) = ligand * 1E9 - 0.000001 + 0.33 * ztligand141 ! ionic strength from Millero et al. 1987142 zph = -LOG10( MAX( hi(ji,jj,jk), rtrn) )143 zoxy = trb(ji,jj,jk,jpoxy)144 ! Fe2+ oxydation rate from Santana-Casiano et al. (2005)145 zkox = 35.407 - 6.7109 * zph + 0.5342 * zph * zph - 5362.6 / ( tempis(ji,jj,jk) + 273.15 ) &146 &- 0.04406 * SQRT( salinprac(ji,jj,jk) ) - 0.002847 * salinprac(ji,jj,jk)147 zkox = ( 10.** zkox ) * spd148 zkox = zkox * MAX( 1.e-6, zoxy) / ( chemo2(ji,jj,jk) + rtrn )149 ! PHOTOREDUCTION of complexed iron : Tagliabue and Arrigo (2006)150 zkph2 = MAX( 0., 15. * zlight / ( zlight + 2. ) ) * (1. - fr_i(ji,jj))151 zkph1 = zkph2 / 5.152 ! pass the dfe concentration from PISCES153 ztfe= trb(ji,jj,jk,jpfer) * 1e9154 ! ----------------------------------------------------------155 ! ANALYTICAL SOLUTION OF ROOTS OF THE FE3+ EQUATION156 ! As shown in Tagliabue and Voelker (2009), Fe3+ is the root of a 3rd order polynom.157 ! ----------------------------------------------------------158 ! calculate some parameters159 za = 1+ ks / kpr160 zb = 1 + ( zkph1 + kth ) / ( zkox + rtrn)161 zc = 1 + zkph2 / ( zkox + rtrn)162 zkappa1 = ( kb1 + zkph1 + kth ) / kl1163 zkappa2 = ( kb2 + zkph2 ) / kl2164 za2 = zTL1(ji,jj,jk) * zb / za + zTL2(ji,jj,jk) * zc / za + zkappa1 + zkappa2 - ztfe / za165 za1 = zkappa2 * zTL1(ji,jj,jk) * zb / za + zkappa1 * zTL2(ji,jj,jk) * zc / za &132 DO jk = 1, jpkm1 133 DO jj = 1, jpj 134 DO ji = 1, jpi 135 zlight = etot(ji,jj,jk) * zstrn(ji,jj) * REAL( 2-jn, wp ) 136 zzstrn2 = zstrn2(ji,jj) * REAL( 2-jn, wp ) + (1. - zstrn2(ji,jj) ) * REAL( jn-1, wp ) 137 ! Calculate ligand concentrations : assume 2/3rd of excess goes to 138 ! strong ligands (L1) and 1/3rd to weak ligands (L2) 139 ztligand = ztotlig(ji,jj,jk) - ligand * 1E9 140 zTL1(ji,jj,jk) = 0.000001 + 0.67 * ztligand 141 zTL2(ji,jj,jk) = ligand * 1E9 - 0.000001 + 0.33 * ztligand 142 ! ionic strength from Millero et al. 1987 143 zph = -LOG10( MAX( hi(ji,jj,jk), rtrn) ) 144 zoxy = trb(ji,jj,jk,jpoxy) 145 ! Fe2+ oxydation rate from Santana-Casiano et al. (2005) 146 zkox = 35.407 - 6.7109 * zph + 0.5342 * zph * zph - 5362.6 / ( tempis(ji,jj,jk) + 273.15 ) & 147 & - 0.04406 * SQRT( salinprac(ji,jj,jk) ) - 0.002847 * salinprac(ji,jj,jk) 148 zkox = ( 10.** zkox ) * spd 149 zkox = zkox * MAX( 1.e-6, zoxy) / ( chemo2(ji,jj,jk) + rtrn ) 150 ! PHOTOREDUCTION of complexed iron : Tagliabue and Arrigo (2006) 151 zkph2 = MAX( 0., 15. * zlight / ( zlight + 2. ) ) * (1. - fr_i(ji,jj)) 152 zkph1 = zkph2 / 5. 153 ! pass the dfe concentration from PISCES 154 ztfe = trb(ji,jj,jk,jpfer) * 1e9 155 ! ---------------------------------------------------------- 156 ! ANALYTICAL SOLUTION OF ROOTS OF THE FE3+ EQUATION 157 ! As shown in Tagliabue and Voelker (2009), Fe3+ is the root of a 3rd order polynom. 158 ! ---------------------------------------------------------- 159 ! calculate some parameters 160 za = 1.0 + ks / kpr 161 zb = 1.0 + zkph2 / ( zkox ) 162 zc = 1.0 + ( zkph1 + kth ) / ( zkox ) 163 zkappa1 = ( kb1 + zkph1 + kth ) / kl1 164 zkappa2 = ( kb2 + zkph2 ) / kl2 165 za2 = zTL2(ji,jj,jk) * zb / za + zTL2(ji,jj,jk) * zc / za + zkappa1 + zkappa2 - ztfe / za 166 za1 = zkappa1 * zTL2(ji,jj,jk) * zb / za + zkappa2 * zTL1(ji,jj,jk) * zc / za & 166 167 & + zkappa1 * zkappa2 - ( zkappa1 + zkappa2 ) * ztfe / za 167 za0 = -zkappa1 * zkappa2 * ztfe / za 168 zp = za1 - za2 * za2 / 3. 169 zq = za2 * za2 * za2 * 2. / 27. - za2 * za1 / 3. + za0 170 zp3 = zp / 3. 171 zq2 = zq / 2. 172 zd = zp3 * zp3 * zp3 + zq2 * zq2 173 zr = zq / ABS( zq ) * SQRT( ABS( zp ) / 3. ) 174 ! compute the roots 175 IF( zp > 0.) THEN 176 ! zphi = ASINH( zq / ( 2. * zr * zr * zr ) ) 177 zphi = zq / ( 2. * zr * zr * zr ) 178 zphi = LOG( zphi + SQRT( zphi * zphi + 1 ) ) ! asinh(x) = log(x + sqrt(x^2+1)) 179 zxs = -2. * zr * SINH( zphi / 3. ) - za1 / 3. 180 ELSE 181 IF( zd > 0. ) THEN 182 zfff = MAX( 1., zq / ( 2. * zr * zr * zr ) ) 183 ! zphi = ACOSH( zfff ) 184 zphi = LOG( zfff + SQRT( zfff * zfff - 1 ) ) ! acosh(x) = log(x + sqrt(x^2-1)) 185 zxs = -2. * zr * COSH( zphi / 3. ) - za1 / 3. 168 za0 = -zkappa1 * zkappa2 * ztfe / za 169 zp = za1 - za2 * za2 / 3. 170 zq = za2 * za2 * za2 * 2. / 27. - za2 * za1 / 3. + za0 171 zp3 = zp / 3. 172 zq2 = zq / 2. 173 zd = zp3 * zp3 * zp3 + zq2 * zq2 174 zr = zq / ABS( zq ) * SQRT( ABS( zp ) / 3. ) 175 ! compute the roots 176 IF( zp > 0.) THEN 177 ! zphi = ASINH( zq / ( 2. * zr * zr * zr ) ) 178 zphi = zq / ( 2. * zr * zr * zr ) 179 zphi = LOG( zphi + SQRT( zphi * zphi + 1 ) ) ! asinh(x) = log(x + sqrt(x^2+1)) 180 zxs = -2. * zr * SINH( zphi / 3. ) - za1 / 3. 186 181 ELSE 187 zfff = MIN( 1., zq / ( 2. * zr * zr * zr ) ) 188 zphi = ACOS( zfff ) 189 DO jic = 1, 3 190 zfunc = -2 * zr * COS( zphi / 3. + 2. * REAL( jic - 1, wp ) * rpi / 3. ) - za2 / 3. 191 IF( zfunc > 0. .AND. zfunc <= ztfe) zxs = zfunc 192 END DO 182 IF( zd > 0. ) THEN 183 zfff = MAX( 1., zq / ( 2. * zr * zr * zr ) ) 184 ! zphi = ACOSH( zfff ) 185 zphi = LOG( zfff + SQRT( zfff * zfff - 1 ) ) ! acosh(x) = log(x + sqrt(x^2-1)) 186 zxs = -2. * zr * COSH( zphi / 3. ) - za1 / 3. 187 ELSE 188 zfff = MIN( 1., zq / ( 2. * zr * zr * zr ) ) 189 zphi = ACOS( zfff ) 190 DO jic = 1, 3 191 zfunc = -2 * zr * COS( zphi / 3. + 2. * REAL( jic - 1, wp ) * rpi / 3. ) - za2 / 3. 192 IF( zfunc > 0. .AND. zfunc <= ztfe) zxs = zfunc 193 END DO 194 ENDIF 193 195 ENDIF 194 ENDIF195 ! solve for the other Fe species196 zzFe3 = MAX( 0., zxs)197 zzFep = MAX( 0., ( ks * zzFe3 / kpr) )198 zkappa2 = ( kb2 + zkph2 ) / kl2199 zzFeL2 = MAX( 0., ( zzFe3 * zTL2(ji,jj,jk) ) / ( zkappa2 + zzFe3) )200 zzFeL1 = MAX( 0., ( ztfe / zb - za / zb * zzFe3 - zc / zb * zzFeL2 ) )201 zzFe2 = MAX( 0., ( ( zkph1 * zzFeL1 + zkph2 * zzFeL2 ) / zkox ) )202 zFe3(ji,jj,jk) = zFe3(ji,jj,jk) + zzFe3* zzstrn2203 zFe2(ji,jj,jk) = zFe2(ji,jj,jk) + zzFe2 * zzstrn2204 zFeL2(ji,jj,jk) = zFeL2(ji,jj,jk) + zzFeL2* zzstrn2205 zFeL1(ji,jj,jk) = zFeL1(ji,jj,jk) + zzFeL1* zzstrn2206 zFeP(ji,jj,jk) = zFeP(ji,jj,jk) + zzFeP * zzstrn2196 ! solve for the other Fe species 197 zzFe3 = MAX( 0., zxs ) 198 zzFep = MAX( 0., ( ks * zzFe3 / kpr ) ) 199 zzFeL1 = MAX( 0., ( zzFe3 * zTL1(ji,jj,jk) ) / ( zkappa1 + zzFe3 ) ) 200 zzFeL2 = (ztfe - za * zzFe3 - zc * zzFeL1 ) / zb 201 zzFe2 = MAX( 0., ( ( ( zkph1 + kth ) * zzFeL1 + zkph2 * zzFeL2 ) / zkox ) ) 202 zzFep = ztfe - zzFe3 - zzFe2 - zzFeL1 - zzFeL2 203 zFe3(ji,jj,jk) = zFe3(ji,jj,jk) + zzFe3 * zzstrn2 204 zFe2(ji,jj,jk) = zFe2(ji,jj,jk) + zzFe2 * zzstrn2 205 zFeL2(ji,jj,jk) = zFeL2(ji,jj,jk) + zzFeL2 * zzstrn2 206 zFeL1(ji,jj,jk) = zFeL1(ji,jj,jk) + zzFeL1 * zzstrn2 207 zFeP(ji,jj,jk) = zFeP(ji,jj,jk) + zzFeP * zzstrn2 208 END DO 207 209 END DO 208 210 END DO 209 END DO210 211 END DO 211 212 ELSE … … 218 219 DO jj = 1, jpj 219 220 DO ji = 1, jpi 220 zTL1(ji,jj,jk) = ztotlig(ji,jj,jk)221 zkeq = fekeq(ji,jj,jk)222 zfesatur = zTL1(ji,jj,jk) * 1E-9223 ztfe = trb(ji,jj,jk,jpfer)221 zTL1(ji,jj,jk) = ztotlig(ji,jj,jk) 222 zkeq = fekeq(ji,jj,jk) 223 zfesatur = zTL1(ji,jj,jk) * 1E-9 224 ztfe = trb(ji,jj,jk,jpfer) 224 225 ! Fe' is the root of a 2nd order polynom 225 226 zFe3 (ji,jj,jk) = ( -( 1. + zfesatur * zkeq - zkeq * ztfe ) & 226 & + SQRT( ( 1. + zfesatur * zkeq - zkeq * ztfe )**2 &227 & 227 & + SQRT( ( 1. + zfesatur * zkeq - zkeq * ztfe )**2 & 228 & + 4. * ztfe * zkeq) ) / ( 2. * zkeq ) 228 229 zFe3 (ji,jj,jk) = zFe3(ji,jj,jk) * 1E9 229 230 zFeL1(ji,jj,jk) = MAX( 0., trb(ji,jj,jk,jpfer) * 1E9 - zFe3(ji,jj,jk) ) … … 242 243 ! Scavenging onto dust is also included as evidenced from the DUNE experiments. 243 244 ! -------------------------------------------------------------------------------------- 245 zhplus = max( rtrn, hi(ji,jj,jk) ) 246 fe3sol = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2 & 247 & + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4) & 248 & + fesol(ji,jj,jk,5) / zhplus ) 244 249 IF( ln_fechem ) THEN 245 250 zfeequi = ( zFe3(ji,jj,jk) + zFe2(ji,jj,jk) + zFeP(ji,jj,jk) ) * 1E-9 246 251 zfecoll = ( 0.3 * zFeL1(ji,jj,jk) + 0.5 * zFeL2(ji,jj,jk) ) * 1E-9 252 precip(ji,jj,jk) = 0.0 247 253 ELSE 248 254 zfeequi = zFe3(ji,jj,jk) * 1E-9 249 IF (ln_fecolloid) THEN 250 zhplus = max( rtrn, hi(ji,jj,jk) ) 251 fe3sol = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2 & 252 & + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4) & 253 & + fesol(ji,jj,jk,5) / zhplus ) 254 zfecoll = max( ( 0.1 * zFeL1(ji,jj,jk) * 1E-9 ), ( zFeL1(ji,jj,jk) * 1E-9 -fe3sol ) ) 255 ELSE 256 zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9 257 fe3sol = 0. 258 ENDIF 255 zhplus = max( rtrn, hi(ji,jj,jk) ) 256 fe3sol = fesol(ji,jj,jk,1) * ( zhplus**3 + fesol(ji,jj,jk,2) * zhplus**2 & 257 & + fesol(ji,jj,jk,3) * zhplus + fesol(ji,jj,jk,4) & 258 & + fesol(ji,jj,jk,5) / zhplus ) 259 zfecoll = 0.5 * zFeL1(ji,jj,jk) * 1E-9 260 ! precipitation of Fe3+, creation of nanoparticles 261 precip(ji,jj,jk) = MAX( 0., ( zFe3(ji,jj,jk) * 1E-9 - fe3sol ) ) * kfep * xstep 259 262 ENDIF 260 263 ! 261 264 ztrc = ( trb(ji,jj,jk,jppoc) + trb(ji,jj,jk,jpgoc) + trb(ji,jj,jk,jpcal) + trb(ji,jj,jk,jpgsi) ) * 1.e6 262 IF( ln_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) ! dust in kg/m2/s 263 zlam1b = 3.e-5 + xlamdust * zdust + xlam1 * ztrc 265 IF( ln_dust ) zdust = dust(ji,jj) / ( wdust / rday ) * tmask(ji,jj,jk) & 266 & * EXP( -gdept_n(ji,jj,jk) / 540. ) 267 IF (ln_ligand) THEN 268 zxlam = xlam1 * MAX( 1.E-3, EXP(-2 * etot(ji,jj,jk) / 10. ) * (1. - EXP(-2 * trb(ji,jj,jk,jpoxy) / 100.E-6 ) )) 269 ELSE 270 zxlam = xlam1 * 1.0 271 ENDIF 272 zlam1b = 3.e-5 + xlamdust * zdust + zxlam * ztrc 264 273 zscave = zfeequi * zlam1b * xstep 265 274 … … 267 276 ! to later allocate scavenged iron to the different organic pools 268 277 ! --------------------------------------------------------- 269 zdenom1 = xlam1* trb(ji,jj,jk,jppoc) / zlam1b270 zdenom2 = xlam1* trb(ji,jj,jk,jpgoc) / zlam1b278 zdenom1 = zxlam * trb(ji,jj,jk,jppoc) / zlam1b 279 zdenom2 = zxlam * trb(ji,jj,jk,jpgoc) / zlam1b 271 280 272 281 ! Increased scavenging for very high iron concentrations found near the coasts … … 276 285 zlamfac = MIN( 1. , zlamfac ) 277 286 zdep = MIN( 1., 1000. / gdept_n(ji,jj,jk) ) 278 zlam1b = xlam1 * MAX( 0.e0, ( trb(ji,jj,jk,jpfer) * 1.e9 - ztotlig(ji,jj,jk) ) ) 279 zcoag = zfeequi * zlam1b * xstep + 1E-4 * ( 1. - zlamfac ) * zdep * xstep * trb(ji,jj,jk,jpfer) 287 zcoag = 1E-4 * ( 1. - zlamfac ) * zdep * xstep * trb(ji,jj,jk,jpfer) 280 288 281 289 ! Compute the coagulation of colloidal iron. This parameterization … … 283 291 ! It requires certainly some more work as it is very poorly constrained. 284 292 ! ---------------------------------------------------------------- 285 zlam1a = ( 0.369 * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4 * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk) &286 & + ( 114. * 0.3 * trb(ji,jj,jk,jpdoc) )293 zlam1a = ( 0.369 * 0.3 * trb(ji,jj,jk,jpdoc) + 102.4 * trb(ji,jj,jk,jppoc) ) * xdiss(ji,jj,jk) & 294 & + ( 114. * 0.3 * trb(ji,jj,jk,jpdoc) ) 287 295 zaggdfea = zlam1a * xstep * zfecoll 288 296 ! 289 zlam1b = 3.53E3 *trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk)297 zlam1b = 3.53E3 * trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 290 298 zaggdfeb = zlam1b * xstep * zfecoll 291 !292 ! precipitation of Fe3+, creation of nanoparticles293 precip(ji,jj,jk) = MAX( 0., ( zfeequi - fe3sol ) ) * kfep * xstep294 299 ! 295 300 tra(ji,jj,jk,jpfer) = tra(ji,jj,jk,jpfer) - zscave - zaggdfea - zaggdfeb & … … 297 302 tra(ji,jj,jk,jpsfe) = tra(ji,jj,jk,jpsfe) + zscave * zdenom1 + zaggdfea 298 303 tra(ji,jj,jk,jpbfe) = tra(ji,jj,jk,jpbfe) + zscave * zdenom2 + zaggdfeb 304 zscav3d(ji,jj,jk) = zscave 305 zcoll3d(ji,jj,jk) = zaggdfea + zaggdfeb 299 306 ! 300 307 END DO … … 317 324 ! 318 325 zlam1b = 3.53E3 * trb(ji,jj,jk,jpgoc) * xdiss(ji,jj,jk) 319 zligco = MAX( ( 0.1 * trb(ji,jj,jk,jplgw) ), ( trb(ji,jj,jk,jplgw) - fe3sol ))326 zligco = 0.5 * trn(ji,jj,jk,jplgw) 320 327 zaggliga = zlam1a * xstep * zligco 321 328 zaggligb = zlam1b * xstep * zligco 322 329 tra(ji,jj,jk,jpfep) = tra(ji,jj,jk,jpfep) + precip(ji,jj,jk) 323 330 tra(ji,jj,jk,jplgw) = tra(ji,jj,jk,jplgw) - zaggliga - zaggligb 331 zlcoll3d(ji,jj,jk) = zaggliga + zaggligb 324 332 END DO 325 333 END DO … … 328 336 IF( .NOT.ln_fechem) THEN 329 337 plig(:,:,:) = MAX( 0., ( ( zFeL1(:,:,:) * 1E-9 ) / ( trb(:,:,:,jpfer) +rtrn ) ) ) 330 plig(:,:,:) = MAX( 0. , plig(:,:,:) )331 338 ENDIF 332 339 ! … … 336 343 IF( lk_iomput ) THEN 337 344 IF( knt == nrdttrc ) THEN 345 zrfact2 = 1.e3 * rfact2r ! conversion from mol/L/timestep into mol/m3/s 338 346 IF( iom_use("Fe3") ) CALL iom_put("Fe3" , zFe3 (:,:,:) * tmask(:,:,:) ) ! Fe3+ 339 347 IF( iom_use("FeL1") ) CALL iom_put("FeL1" , zFeL1 (:,:,:) * tmask(:,:,:) ) ! FeL1 340 348 IF( iom_use("TL1") ) CALL iom_put("TL1" , zTL1 (:,:,:) * tmask(:,:,:) ) ! TL1 341 349 IF( iom_use("Totlig") ) CALL iom_put("Totlig" , ztotlig(:,:,:) * tmask(:,:,:) ) ! TL 342 IF( iom_use("Biron") ) CALL iom_put("Biron" , biron (:,:,:) * 1e9 * tmask(:,:,:) ) ! biron 350 IF( iom_use("Biron") ) CALL iom_put("Biron" , biron (:,:,:) * 1e9 * tmask(:,:,:) ) ! biron 351 IF( iom_use("FESCAV") ) CALL iom_put("FESCAV" , zscav3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 352 IF( iom_use("FECOLL") ) CALL iom_put("FECOLL" , zcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 353 IF( iom_use("LGWCOLL")) CALL iom_put("LGWCOLL", zlcoll3d(:,:,:) * 1e9 * tmask(:,:,:) * zrfact2 ) 343 354 IF( ln_fechem ) THEN 344 355 IF( iom_use("Fe2") ) CALL iom_put("Fe2" , zFe2 (:,:,:) * tmask(:,:,:) ) ! Fe2+ … … 380 391 INTEGER :: ios ! Local integer 381 392 !! 382 NAMELIST/nampisfer/ ln_fechem, ln_ligvar, ln_fecolloid,xlam1, xlamdust, ligand, kfep393 NAMELIST/nampisfer/ ln_fechem, ln_ligvar, xlam1, xlamdust, ligand, kfep 383 394 !!---------------------------------------------------------------------- 384 395 ! … … 401 412 WRITE(numout,*) ' enable complex iron chemistry scheme ln_fechem =', ln_fechem 402 413 WRITE(numout,*) ' variable concentration of ligand ln_ligvar =', ln_ligvar 403 WRITE(numout,*) ' Variable colloidal fraction of Fe3+ ln_fecolloid =', ln_fecolloid404 414 WRITE(numout,*) ' scavenging rate of Iron xlam1 =', xlam1 405 415 WRITE(numout,*) ' scavenging rate of Iron by dust xlamdust =', xlamdust … … 407 417 WRITE(numout,*) ' rate constant for nanoparticle formation kfep =', kfep 408 418 ENDIF 419 ! 420 IF (ln_ligand .AND. ln_fechem) CALL ctl_stop( 'STOP', 'p4z_fechem_init: ln_ligand and ln_fechem are incompatible') 409 421 ! 410 422 IF( ln_fechem ) THEN ! set some constants used by the complexe chemistry scheme
Note: See TracChangeset
for help on using the changeset viewer.