File indexing completed on 2021-04-08 05:11:40 UTC
view on githubraw file Latest commit ba0b0470 on 2021-04-08 01:06:32 UTC
6d54cf9ca1 Ed H*0001 #include "DIC_OPTIONS.h"
daab022f42 Step*0002
e098791e51 Jean*0003
f52bc56573 Jean*0004
0005
0006
0007
0008
0009
0010
0011
08536d17ba Step*0012
0013
0014
0015
daab022f42 Step*0016 SUBROUTINE CALC_PCO2(
0017 I donewt,inewtonmax,ibrackmax,
0018 I t,s,diclocal,pt,sit,ta,
0019 I k1local,k2local,
0020 I k1plocal,k2plocal,k3plocal,
0021 I kslocal,kblocal,kwlocal,
0022 I ksilocal,kflocal,
d0092a57ac Step*0023 I k0local, fugflocal,
daab022f42 Step*0024 I fflocal,btlocal,stlocal,ftlocal,
5625485478 Jean*0025 U pHlocal,pCO2surfloc,
e098791e51 Jean*0026 I i,j,k,bi,bj,myIter,myThid )
daab022f42 Step*0027
08536d17ba Step*0028
f52bc56573 Jean*0029
0030
0031
08536d17ba Step*0032
d0092a57ac Step*0033
0034
08536d17ba Step*0035
0036 IMPLICIT NONE
daab022f42 Step*0037 #include "SIZE.h"
0038 #include "EEPARAMS.h"
0039 #include "PARAMS.h"
2ef8966791 Davi*0040 #include "DIC_VARS.h"
daab022f42 Step*0041
0042
f52bc56573 Jean*0043
daab022f42 Step*0044
f52bc56573 Jean*0045
0046
0047
daab022f42 Step*0048
ba0b047096 Mart*0049
daab022f42 Step*0050 INTEGER donewt
0051 INTEGER inewtonmax
0052 INTEGER ibrackmax
0053 _RL t, s, pt, sit, ta
0054 _RL pCO2surfloc, diclocal, pHlocal
0055 _RL fflocal, btlocal, stlocal, ftlocal
0056 _RL k1local, k2local
0057 _RL k1plocal, k2plocal, k3plocal
0058 _RL kslocal, kblocal, kwlocal, ksilocal, kflocal
d0092a57ac Step*0059 _RL k0local, fugflocal
e098791e51 Jean*0060 INTEGER i,j,k,bi,bj,myIter
5625485478 Jean*0061 INTEGER myThid
f52bc56573 Jean*0062
daab022f42 Step*0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
f52bc56573 Jean*0075
0076
daab022f42 Step*0077
4e9f2133df Step*0078
daab022f42 Step*0079
f52bc56573 Jean*0080
0081
daab022f42 Step*0082
0083
f52bc56573 Jean*0084
daab022f42 Step*0085 _RL phhi
0086 _RL phlo
0087 _RL c
0088 _RL a
0089 _RL a2
0090 _RL da
0091 _RL b
0092 _RL b2
0093 _RL db
0094 _RL fn
0095 _RL df
0096 _RL deltax
0097 _RL x
0098 _RL x2
0099 _RL x3
0100 _RL xmid
0101 _RL ftest
0102 _RL htotal
0103 _RL htotal2
f52bc56573 Jean*0104 _RL co2star
daab022f42 Step*0105 _RL phguess
d0092a57ac Step*0106 _RL fco2
daab022f42 Step*0107 INTEGER inewton
0108 INTEGER ibrack
0109 INTEGER hstep
0110 _RL fni(3)
0111 _RL xlo
0112 _RL xhi
0113 _RL xguess
0114 _RL k123p
0115 _RL k12p
0116 _RL k12
0117
0118
0119
0120
0121
0122
0123
3daafce20b Jean*0124
f52bc56573 Jean*0125
0126
daab022f42 Step*0127
0128
f52bc56573 Jean*0129
daab022f42 Step*0130 pt=pt*permil
0131 sit=sit*permil
0132 ta=ta*permil
0133 diclocal=diclocal*permil
0134
0135
0136
0137 phguess = phlocal
0138
0139
0140 phhi = 10.0
0141 phlo = 5.0
0142
29ad036528 Step*0143 xguess = 10.0**(-phguess)
0144 xlo = 10.0**(-phhi)
0145 xhi = 10.0**(-phlo)
daab022f42 Step*0146 xmid = (xlo + xhi)*0.5
0147
0148
0149
f52bc56573 Jean*0150
daab022f42 Step*0151
0152
0153
0154
0155
0156
0157 if( donewt .eq. 1)then
0158
0159
0160
0161 x = xguess
0162
0163
0164
720e9330bd Step*0165 do inewton = 1, inewtonmax
daab022f42 Step*0166
0167
0168 x2=x*x
0169 x3=x2*x
0170 k12 = k1local*k2local
0171 k12p = k1plocal*k2plocal
0172 k123p = k12p*k3plocal
0173 c = 1.0 + stlocal/kslocal
0174 a = x3 + k1plocal*x2 + k12p*x + k123p
0175 a2=a*a
0176 da = 3.0*x2 + 2.0*k1plocal*x + k12p
0177 b = x2 + k1local*x + k12
0178 b2=b*b
0179 db = 2.0*x + k1local
0180
3daafce20b Jean*0181
daab022f42 Step*0182
0183
0184 fn = k1local*x*diclocal/b +
0185 & 2.0*diclocal*k12/b +
0186 & btlocal/(1.0 + x/kblocal) +
0187 & kwlocal/x +
0188 & pt*k12p*x/a +
0189 & 2.0*pt*k123p/a +
0190 & sit/(1.0 + x/ksilocal) -
0191 & x/c -
0192 & stlocal/(1.0 + kslocal/x/c) -
0193 & ftlocal/(1.0 + kflocal/x) -
0194 & pt*x3/a -
0195 & ta
0196
0197
0198
0199
0200
0201 df = ((k1local*diclocal*b) - k1local*x*diclocal*db)/b2 -
0202 & 2.0*diclocal*k12*db/b2 -
0203 & btlocal/kblocal/(1.0+x/kblocal)**2. -
0204 & kwlocal/x2 +
0205 & (pt*k12p*(a - x*da))/a2 -
0206 & 2.0*pt*k123p*da/a2 -
0207 & sit/ksilocal/(1.0+x/ksilocal)**2. +
0208 & 1.0/c +
29ad036528 Step*0209 & stlocal*(1.0 + kslocal/x/c)**(-2.0)*(kslocal/c/x2) +
0210 & ftlocal*(1.0 + kflocal/x)**(-2.)*kflocal/x2 -
daab022f42 Step*0211 & pt*x2*(3.0*a-x*da)/a2
0212
0213 deltax = - fn/df
0214
0215 x = x + deltax
0216
0217
0218
0219
0220
0221
720e9330bd Step*0222 end do
daab022f42 Step*0223
0224
f52bc56573 Jean*0225 else
daab022f42 Step*0226
0227
0228
0229
0230
720e9330bd Step*0231 do ibrack = 1, ibrackmax
daab022f42 Step*0232 do hstep = 1,3
0233 if(hstep .eq. 1)x = xhi
f52bc56573 Jean*0234 if(hstep .eq. 2)x = xlo
daab022f42 Step*0235 if(hstep .eq. 3)x = xmid
0236
0237
0238
0239 x2=x*x
0240 x3=x2*x
0241 k12 = k1local*k2local
0242 k12p = k1plocal*k2plocal
0243 k123p = k12p*k3plocal
0244 c = 1.0 + stlocal/kslocal
0245 a = x3 + k1plocal*x2 + k12p*x + k123p
0246 a2=a*a
0247 da = 3.0*x2 + 2.0*k1plocal*x + k12p
0248 b = x2 + k1local*x + k12
0249 b2=b*b
0250 db = 2.0*x + k1local
0251
0252 fn = k1local*x*diclocal/b +
0253 & 2.0*diclocal*k12/b +
0254 & btlocal/(1.0 + x/kblocal) +
0255 & kwlocal/x +
0256 & pt*k12p*x/a +
0257 & 2.0*pt*k123p/a +
0258 & sit/(1.0 + x/ksilocal) -
0259 & x/c -
0260 & stlocal/(1.0 + kslocal/x/c) -
0261 & ftlocal/(1.0 + kflocal/x) -
0262 & pt*x3/a -
0263 & ta
0264 fni(hstep) = fn
0265 end do
0266
0267 ftest = fni(1)/fni(3)
0268 if(ftest .gt. 0.0)then
0269 xhi = xmid
0270 else
0271 xlo = xmid
0272 end if
0273 xmid = (xlo + xhi)*0.5
0274
0275
0276
0277
0278
720e9330bd Step*0279 end do
daab022f42 Step*0280
0281 x = xmid
0282
0283
0284 end if
0285
0286
0287
0288
0289
0290 htotal = x
f52bc56573 Jean*0291
daab022f42 Step*0292
0293 htotal2=htotal*htotal
4e9f2133df Step*0294 co2star=diclocal*htotal2/(htotal2 + k1local*htotal
daab022f42 Step*0295 & + k1local*k2local)
0296 phlocal=-log10(htotal)
0297
0298
0299
0300
0301
d0092a57ac Step*0302 #ifdef WATERVAP_BUG
daab022f42 Step*0303 pCO2surfloc = co2star / fflocal
d0092a57ac Step*0304 #else
0305
0306 fco2 = co2star / k0local
0307 pCO2surfloc = fco2/fugflocal
0308 #endif
daab022f42 Step*0309
0310
0311
0312
0313
0314
0315 pt=pt/permil
0316 sit=sit/permil
0317 ta=ta/permil
0318 diclocal=diclocal/permil
0319
f52bc56573 Jean*0320 RETURN
0321 END
daab022f42 Step*0322
f52bc56573 Jean*0323
0324
0325
0326
0327
0328
daab022f42 Step*0329 SUBROUTINE CALC_PCO2_APPROX(
0330 I t,s,diclocal,pt,sit,ta,
0331 I k1local,k2local,
0332 I k1plocal,k2plocal,k3plocal,
0333 I kslocal,kblocal,kwlocal,
0334 I ksilocal,kflocal,
d0092a57ac Step*0335 I k0local, fugflocal,
daab022f42 Step*0336 I fflocal,btlocal,stlocal,ftlocal,
e6a52874f7 Davi*0337 U pHlocal,pCO2surfloc,co3local,
e098791e51 Jean*0338 I i,j,k,bi,bj,myIter,myThid )
f52bc56573 Jean*0339
0340
0341
daab022f42 Step*0342
f52bc56573 Jean*0343
e6a52874f7 Davi*0344
0345
0346
0347
0348
0349
0350
0351
f52bc56573 Jean*0352
0353
daab022f42 Step*0354 IMPLICIT NONE
0355
0356
0357 #include "SIZE.h"
0358 #include "EEPARAMS.h"
0359 #include "PARAMS.h"
2ef8966791 Davi*0360 #include "DIC_VARS.h"
daab022f42 Step*0361
0362
0363
0364
0365
0366
0367
0368
ba0b047096 Mart*0369
daab022f42 Step*0370 _RL t, s, pt, sit, ta
0371 _RL pCO2surfloc, diclocal, pHlocal
0372 _RL fflocal, btlocal, stlocal, ftlocal
0373 _RL k1local, k2local
0374 _RL k1plocal, k2plocal, k3plocal
0375 _RL kslocal, kblocal, kwlocal, ksilocal, kflocal
d0092a57ac Step*0376 _RL k0local, fugflocal
e6a52874f7 Davi*0377 _RL co3local
e098791e51 Jean*0378 INTEGER i,j,k,bi,bj,myIter
5625485478 Jean*0379 INTEGER myThid
f52bc56573 Jean*0380
daab022f42 Step*0381
0382
0383 _RL phguess
0384 _RL cag
0385 _RL bohg
0386 _RL hguess
0387 _RL stuff
0388 _RL gamm
0389 _RL hnew
0390 _RL co2s
f52bc56573 Jean*0391 _RL h3po4g, h2po4g, hpo4g, po4g
daab022f42 Step*0392 _RL siooh3g
d0092a57ac Step*0393 _RL fco2
daab022f42 Step*0394
0395
0396
0397
3daafce20b Jean*0398
daab022f42 Step*0399
0400
0401
0402
0403 pt=pt*permil
0404 sit=sit*permil
0405 ta=ta*permil
0406 diclocal=diclocal*permil
0407
0408
0409
0410 phguess = phlocal
0411
0412
0413
29ad036528 Step*0414 hguess = 10.0**(-phguess)
daab022f42 Step*0415
0416 bohg = btlocal*kblocal/(hguess+kblocal)
0417
0418
0419
0420 stuff = hguess*hguess*hguess
0421 & + (k1plocal*hguess*hguess)
0422 & + (k1plocal*k2plocal*hguess)
0423 & + (k1plocal*k2plocal*k3plocal)
0424 h3po4g = (pt*hguess*hguess*hguess) / stuff
0425 h2po4g = (pt*k1plocal*hguess*hguess) / stuff
0426 hpo4g = (pt*k1plocal*k2plocal*hguess) / stuff
0427 po4g = (pt*k1plocal*k2plocal*k3plocal) / stuff
0428
0429
0430
0431 siooh3g = sit*ksilocal / (ksilocal + hguess)
0432
0433
0434 cag = ta - bohg - (kwlocal/hguess) + hguess
75e97f1e14 Davi*0435 & - hpo4g - 2.0 _d 0*po4g + h3po4g
daab022f42 Step*0436 & - siooh3g
0437
0438
0439
0440 gamm = diclocal/cag
75e97f1e14 Davi*0441 stuff = (1.0 _d 0-gamm)*(1.0 _d 0-gamm)*k1local*k1local
0442 & - 4.0 _d 0*k1local*k2local*(1.0 _d 0-2.0 _d 0*gamm)
0443 hnew = 0.5 _d 0*( (gamm-1.0 _d 0)*k1local + sqrt(stuff) )
daab022f42 Step*0444
0445 co2s = diclocal/
75e97f1e14 Davi*0446 & (1.0 _d 0 + (k1local/hnew) + (k1local*k2local/(hnew*hnew)))
daab022f42 Step*0447
0448 phlocal = -log10(hnew)
0449
4e9f2133df Step*0450
0451
0452
e6a52874f7 Davi*0453 co3local = k1local*k2local*diclocal /
0454 & (hnew*hnew + k1local*hnew + k1local*k2local)
4e9f2133df Step*0455
daab022f42 Step*0456
0457
d0092a57ac Step*0458 #ifdef WATERVAP_BUG
daab022f42 Step*0459 pCO2surfloc = co2s/fflocal
d0092a57ac Step*0460 #else
0461
0462 fco2 = co2s/k0local
0463 pco2surfloc = fco2/fugflocal
0464 #endif
daab022f42 Step*0465
0466
0467
0468 pt=pt/permil
0469 sit=sit/permil
0470 ta=ta/permil
0471 diclocal=diclocal/permil
0472
f52bc56573 Jean*0473 RETURN
0474 END
0475
0476
0477
0478
0479
0480
daab022f42 Step*0481 SUBROUTINE CARBON_COEFFS(
0482 I ttemp,stemp,
5625485478 Jean*0483 I bi,bj,iMin,iMax,jMin,jMax,myThid)
f52bc56573 Jean*0484
0485
0486
daab022f42 Step*0487
0488
0489
0490
f52bc56573 Jean*0491
0492
daab022f42 Step*0493
f52bc56573 Jean*0494
daab022f42 Step*0495
f52bc56573 Jean*0496
0497
0498
daab022f42 Step*0499
ba0b047096 Mart*0500
daab022f42 Step*0501
0502
f52bc56573 Jean*0503
0504
0505
0506
0507
0508
0509
0510
d0092a57ac Step*0511
0512
daab022f42 Step*0513
f52bc56573 Jean*0514
0515
daab022f42 Step*0516 IMPLICIT NONE
0517
0518 #include "SIZE.h"
0519 #include "EEPARAMS.h"
0520 #include "PARAMS.h"
0521 #include "GRID.h"
2ef8966791 Davi*0522 #include "DIC_VARS.h"
f0dfb321df Jean*0523
daab022f42 Step*0524
0525
0526
0527
0528
8bf2c0e0ad Step*0529 _RL ttemp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0530 _RL stemp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
daab022f42 Step*0531 INTEGER bi,bj,iMin,iMax,jMin,jMax
5625485478 Jean*0532 INTEGER myThid
f52bc56573 Jean*0533
4e9f2133df Step*0534
0535
daab022f42 Step*0536 _RL t
0537 _RL s
0538 _RL tk
0539 _RL tk100
0540 _RL tk1002
0541 _RL dlogtk
0542 _RL sqrtis
0543 _RL sqrts
0544 _RL s15
0545 _RL scl
0546 _RL s2
0547 _RL invtk
0548 _RL is
0549 _RL is2
d0092a57ac Step*0550
0551 _RL P1atm
0552 _RL Rgas
0553 _RL RT
0554 _RL delta
0555 _RL B1
0556 _RL B
425561518f Jona*0557 #ifdef CARBONCHEM_TOTALPHSCALE
0558
0559 _RL total2free
8d230ec051 Jona*0560 _RL free2total
92031a2908 Jean*0561 _RL free2sw
8d230ec051 Jona*0562 _RL sw2free
425561518f Jona*0563 _RL total2sw
8d230ec051 Jona*0564 _RL sw2total
425561518f Jona*0565 #endif
daab022f42 Step*0566 INTEGER i
0567 INTEGER j
0568
0569
0570
0571
4e9f2133df Step*0572
daab022f42 Step*0573
f52bc56573 Jean*0574
0575
0576
0577
daab022f42 Step*0578
0579
51c3bf0077 Step*0580 do i=imin,imax
0581 do j=jmin,jmax
f0dfb321df Jean*0582 IF ( maskC(i,j,1,bi,bj).EQ.oneRS ) THEN
8bf2c0e0ad Step*0583 t = ttemp(i,j)
0584 s = stemp(i,j)
425561518f Jona*0585
0586
75e97f1e14 Davi*0587 tk = 273.15 _d 0 + t
0588 tk100 = tk/100. _d 0
daab022f42 Step*0589 tk1002=tk100*tk100
75e97f1e14 Davi*0590 invtk=1.0 _d 0/tk
daab022f42 Step*0591 dlogtk=log(tk)
425561518f Jona*0592
75e97f1e14 Davi*0593 is=19.924 _d 0*s/(1000. _d 0-1.005 _d 0*s)
daab022f42 Step*0594 is2=is*is
0595 sqrtis=sqrt(is)
425561518f Jona*0596
daab022f42 Step*0597 s2=s*s
0598 sqrts=sqrt(s)
75e97f1e14 Davi*0599 s15=s**1.5 _d 0
0600 scl=s/1.80655 _d 0
d0092a57ac Step*0601
0602
0603
0604
0605
0606 P1atm = 1.01325 _d 0
0607 Rgas = 83.1451 _d 0
0608 RT = Rgas*tk
0609 delta = (57.7 _d 0 - 0.118 _d 0*tk)
0610 B1 = -1636.75 _d 0 + 12.0408 _d 0*tk - 0.0327957 _d 0*tk*tk
0611 B = B1 + 3.16528 _d 0*tk*tk*tk*(0.00001 _d 0)
7122734d29 Davi*0612 fugf(i,j,bi,bj) = exp( (B+2. _d 0*delta) * P1atm / RT)
daab022f42 Step*0613
0614
0615
75e97f1e14 Davi*0616 ff(i,j,bi,bj) = exp(-162.8301 _d 0 + 218.2968 _d 0/tk100 +
0617 & 90.9241 _d 0*log(tk100) - 1.47696 _d 0*tk1002 +
0618 & s * (.025695 _d 0 - .025225 _d 0*tk100 +
0619 & 0.0049867 _d 0*tk1002))
daab022f42 Step*0620
0621
425561518f Jona*0622
75e97f1e14 Davi*0623 ak0(i,j,bi,bj) = exp(93.4517 _d 0/tk100 - 60.2409 _d 0 +
0624 & 23.3585 _d 0 * log(tk100) +
0625 & s * (0.023517 _d 0 - 0.023656 _d 0*tk100 +
0626 & 0.0047036 _d 0*tk1002))
daab022f42 Step*0627
0628
0629
92031a2908 Jean*0630
425561518f Jona*0631
75e97f1e14 Davi*0632 ak1(i,j,bi,bj)=10.**(-1. _d 0*(3670.7 _d 0*invtk -
0633 & 62.008 _d 0 + 9.7944 _d 0*dlogtk -
0634 & 0.0118 _d 0 * s + 0.000116 _d 0*s2))
0635 ak2(i,j,bi,bj)=10.**(-1. _d 0*(1394.7 _d 0*invtk+ 4.777 _d 0-
0636 & 0.0184 _d 0*s + 0.000118 _d 0*s2))
daab022f42 Step*0637
0638
0639
425561518f Jona*0640
75e97f1e14 Davi*0641 akb(i,j,bi,bj)=exp((-8966.90 _d 0- 2890.53 _d 0*sqrts -
0642 & 77.942 _d 0*s + 1.728 _d 0*s15 - 0.0996 _d 0*s2)*invtk +
0643 & (148.0248 _d 0 + 137.1942 _d 0*sqrts + 1.62142 _d 0*s) +
0644 & (-24.4344 _d 0 - 25.085 _d 0*sqrts - 0.2474 _d 0*s) *
0645 & dlogtk + 0.053105 _d 0*sqrts*tk)
daab022f42 Step*0646
0647
0648
92031a2908 Jean*0649
425561518f Jona*0650
0651
75e97f1e14 Davi*0652 ak1p(i,j,bi,bj) = exp(-4576.752 _d 0*invtk + 115.525 _d 0 -
0653 & 18.453 _d 0*dlogtk +
0654 & (-106.736 _d 0*invtk + 0.69171 _d 0)*sqrts +
0655 & (-0.65643 _d 0*invtk - 0.01844 _d 0)*s)
daab022f42 Step*0656
0657
0658
92031a2908 Jean*0659
425561518f Jona*0660
0661
75e97f1e14 Davi*0662 ak2p(i,j,bi,bj) = exp(-8814.715 _d 0*invtk + 172.0883 _d 0 -
0663 & 27.927 _d 0*dlogtk +
0664 & (-160.340 _d 0*invtk + 1.3566 _d 0) * sqrts +
0665 & (0.37335 _d 0*invtk - 0.05778 _d 0) * s)
daab022f42 Step*0666
0667
0668
92031a2908 Jean*0669
425561518f Jona*0670
0671
75e97f1e14 Davi*0672 ak3p(i,j,bi,bj) = exp(-3070.75 _d 0*invtk - 18.141 _d 0 +
0673 & (17.27039 _d 0*invtk + 2.81197 _d 0) *
0674 & sqrts + (-44.99486 _d 0*invtk - 0.09984 _d 0) * s)
daab022f42 Step*0675
0676
0677
92031a2908 Jean*0678
425561518f Jona*0679
0680
80d7ca01bb Jona*0681
75e97f1e14 Davi*0682 aksi(i,j,bi,bj) = exp(-8904.2 _d 0*invtk + 117.385 _d 0 -
0683 & 19.334 _d 0*dlogtk +
0684 & (-458.79 _d 0*invtk + 3.5913 _d 0) * sqrtis +
0685 & (188.74 _d 0*invtk - 1.5998 _d 0) * is +
0686 & (-12.1652 _d 0*invtk + 0.07871 _d 0) * is2 +
0687 & log(1.0 _d 0-0.001005 _d 0*s))
daab022f42 Step*0688
0689
0690
92031a2908 Jean*0691
425561518f Jona*0692
0693
75e97f1e14 Davi*0694 akw(i,j,bi,bj) = exp(-13847.26 _d 0*invtk + 148.9652 _d 0 -
0695 & 23.6521 _d 0*dlogtk +
0696 & (118.67 _d 0*invtk - 5.977 _d 0 + 1.0495 _d 0 * dlogtk)
0697 & * sqrts - 0.01615 _d 0 * s)
daab022f42 Step*0698
0699
0700
425561518f Jona*0701
80d7ca01bb Jona*0702
75e97f1e14 Davi*0703 aks(i,j,bi,bj)=exp(-4276.1 _d 0*invtk + 141.328 _d 0 -
0704 & 23.093 _d 0*dlogtk +
0705 & (-13856. _d 0*invtk + 324.57 _d 0 - 47.986 _d 0*dlogtk)*sqrtis+
0706 & (35474. _d 0*invtk - 771.54 _d 0 + 114.723 _d 0*dlogtk)*is -
e18333c42b Davi*0707 & 2698. _d 0*invtk*is**1.5 _d 0 + 1776. _d 0*invtk*is2 +
75e97f1e14 Davi*0708 & log(1.0 _d 0 - 0.001005 _d 0*s))
daab022f42 Step*0709
0710
425561518f Jona*0711
80d7ca01bb Jona*0712
75e97f1e14 Davi*0713 akf(i,j,bi,bj)=exp(1590.2 _d 0*invtk - 12.641 _d 0 +
f52bc56573 Jean*0714 & 1.525 _d 0*sqrtis + log(1.0 _d 0 - 0.001005 _d 0*s) +
75e97f1e14 Davi*0715 & log(1.0 _d 0 + (0.1400 _d 0/96.062 _d 0)*(scl)/aks(i,j,bi,bj)))
daab022f42 Step*0716
0717
0718
75e97f1e14 Davi*0719 bt(i,j,bi,bj) = 0.000232 _d 0 * scl/10.811 _d 0
daab022f42 Step*0720
75e97f1e14 Davi*0721 st(i,j,bi,bj) = 0.14 _d 0 * scl/96.062 _d 0
daab022f42 Step*0722
75e97f1e14 Davi*0723 ft(i,j,bi,bj) = 0.000067 _d 0 * scl/18.9984 _d 0
daab022f42 Step*0724
425561518f Jona*0725 #ifdef CARBONCHEM_TOTALPHSCALE
0726
0727
0728 total2free = 1. _d 0/
8d230ec051 Jona*0729 & (1. _d 0 + st(i,j,bi,bj)/aks(i,j,bi,bj))
425561518f Jona*0730
92031a2908 Jean*0731 free2total = (1. _d 0 + st(i,j,bi,bj)/aks(i,j,bi,bj))
0732
0733 free2sw = 1. _d 0
0734 & + st(i,j,bi,bj)/ aks(i,j,bi,bj)
0735 & + ft(i,j,bi,bj)/(akf(i,j,bi,bj)*total2free)
0736
8d230ec051 Jona*0737 sw2free = 1. _d 0 / free2sw
92031a2908 Jean*0738
0739 total2sw = total2free * free2sw
0740
8d230ec051 Jona*0741 sw2total = 1. _d 0 / total2sw
425561518f Jona*0742
8d230ec051 Jona*0743 ak1(i,j,bi,bj) = ak1(i,j,bi,bj)*sw2total
0744 ak2(i,j,bi,bj) = ak2(i,j,bi,bj)*sw2total
92031a2908 Jean*0745 aks(i,j,bi,bj) = aks(i,j,bi,bj)*free2total
425561518f Jona*0746 #endif
f0dfb321df Jean*0747 ELSE
d0092a57ac Step*0748
c5830e1a8b Jona*0749 fugf(i,j,bi,bj)=0. _d 0
0750 ff(i,j,bi,bj)=0. _d 0
0751 ak0(i,j,bi,bj)= 0. _d 0
0752 ak1(i,j,bi,bj)= 0. _d 0
0753 ak2(i,j,bi,bj)= 0. _d 0
0754 akb(i,j,bi,bj)= 0. _d 0
0755 ak1p(i,j,bi,bj) = 0. _d 0
0756 ak2p(i,j,bi,bj) = 0. _d 0
0757 ak3p(i,j,bi,bj) = 0. _d 0
0758 aksi(i,j,bi,bj) = 0. _d 0
0759 akw(i,j,bi,bj) = 0. _d 0
0760 aks(i,j,bi,bj)= 0. _d 0
0761 akf(i,j,bi,bj)= 0. _d 0
0762 bt(i,j,bi,bj) = 0. _d 0
0763 st(i,j,bi,bj) = 0. _d 0
0764 ft(i,j,bi,bj) = 0. _d 0
f0dfb321df Jean*0765 ENDIF
0766 enddo
0767 enddo
daab022f42 Step*0768
f52bc56573 Jean*0769 RETURN
0770 END
0771
0772
daab022f42 Step*0773
f52bc56573 Jean*0774
0775
0776
0777
4e9f2133df Step*0778 SUBROUTINE CARBON_COEFFS_PRESSURE_DEP(
0779 I ttemp,stemp,
0780 I bi,bj,iMin,iMax,jMin,jMax,
5625485478 Jean*0781 I Klevel,myThid)
f52bc56573 Jean*0782
0783
0784
4e9f2133df Step*0785
0786
0787
0788
f52bc56573 Jean*0789
0790
0791
0792
4e9f2133df Step*0793
0794
0795
0796
0797
0798
0799
ba0b047096 Mart*0800
4e9f2133df Step*0801
0802
f52bc56573 Jean*0803
0804
0805
0806
0807
0808
0809
0810
0811
0812
0813
0814
0815
4e9f2133df Step*0816
f52bc56573 Jean*0817
0818
4e9f2133df Step*0819 IMPLICIT NONE
0820
0821 #include "SIZE.h"
0822 #include "EEPARAMS.h"
0823 #include "PARAMS.h"
0824 #include "GRID.h"
2ef8966791 Davi*0825 #include "DIC_VARS.h"
f0dfb321df Jean*0826
4e9f2133df Step*0827
0828
0829
0830
0831
8bf2c0e0ad Step*0832 _RL ttemp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0833 _RL stemp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
4e9f2133df Step*0834 INTEGER bi,bj,iMin,iMax,jMin,jMax
f52bc56573 Jean*0835
4e9f2133df Step*0836 INTEGER Klevel
5625485478 Jean*0837 INTEGER myThid
f52bc56573 Jean*0838
4e9f2133df Step*0839
0840
0841 _RL t
0842 _RL s
0843 _RL tk
0844 _RL tk100
0845 _RL tk1002
0846 _RL dlogtk
0847 _RL sqrtis
0848 _RL sqrts
0849 _RL s15
0850 _RL scl
0851 _RL s2
0852 _RL invtk
0853 _RL is
0854 _RL is2
0855 INTEGER i
0856 INTEGER j
0857 INTEGER k
0858 _RL bdepth
0859 _RL cdepth
0860 _RL pressc
0861 _RL Ksp_T_Calc
0862 _RL xvalue
0863 _RL zdum
0864 _RL tmpa1
0865 _RL tmpa2
0866 _RL tmpa3
0867 _RL logKspc
0868 _RL dv
0869 _RL dk
0870 _RL pfactor
0871 _RL bigR
425561518f Jona*0872 #ifdef CARBONCHEM_TOTALPHSCALE
0873
0874 _RL total2free_surf
92031a2908 Jean*0875 _RL free2sw_surf
425561518f Jona*0876 _RL total2sw_surf
0877 _RL total2free
8d230ec051 Jona*0878 _RL free2total
92031a2908 Jean*0879 _RL free2sw
8d230ec051 Jona*0880 _RL sw2free
425561518f Jona*0881 _RL total2sw
8d230ec051 Jona*0882 _RL sw2total
425561518f Jona*0883 #endif
4e9f2133df Step*0884
0885
0886
0887
0888
0889
0890
3daafce20b Jean*0891
0892
4e9f2133df Step*0893
0894
0895
0896
0897
0898
0899
0900
0901
0902
c5830e1a8b Jona*0903 bdepth = 0. _d 0
0904 cdepth = 0. _d 0
0905 pressc = 1. _d 0
4e9f2133df Step*0906 do k = 1,Klevel
c5830e1a8b Jona*0907 cdepth = bdepth + 0.5 _d 0*drF(k)
4e9f2133df Step*0908 bdepth = bdepth + drF(k)
c5830e1a8b Jona*0909 pressc = 1. _d 0 + 0.1 _d 0*cdepth
f0dfb321df Jean*0910 enddo
4e9f2133df Step*0911
0912
0913
0914
51c3bf0077 Step*0915 do i=imin,imax
0916 do j=jmin,jmax
f0dfb321df Jean*0917 IF ( maskC(i,j,Klevel,bi,bj).EQ.oneRS ) THEN
8bf2c0e0ad Step*0918 t = ttemp(i,j)
0919 s = stemp(i,j)
c5830e1a8b Jona*0920
0921
0922 tk = 273.15 _d 0 + t
0923 tk100 = tk/100. _d 0
4e9f2133df Step*0924 tk1002=tk100*tk100
c5830e1a8b Jona*0925 invtk=1.0 _d 0/tk
4e9f2133df Step*0926 dlogtk=log(tk)
c5830e1a8b Jona*0927
0928 is=19.924 _d 0*s/(1000. _d 0-1.005 _d 0*s)
4e9f2133df Step*0929 is2=is*is
0930 sqrtis=sqrt(is)
c5830e1a8b Jona*0931
4e9f2133df Step*0932 s2=s*s
0933 sqrts=sqrt(s)
c5830e1a8b Jona*0934 s15=s**1.5 _d 0
0935 scl=s/1.80655 _d 0
4e9f2133df Step*0936
c5830e1a8b Jona*0937 bigR = 83.14472 _d 0
4e9f2133df Step*0938
0939
c5830e1a8b Jona*0940
0941 ff(i,j,bi,bj) = exp(-162.8301 _d 0 + 218.2968 _d 0/tk100 +
0942 & 90.9241 _d 0*log(tk100) - 1.47696 _d 0*tk1002 +
0943 & s * (.025695 _d 0 - .025225 _d 0*tk100 +
0944 & 0.0049867 _d 0*tk1002))
4e9f2133df Step*0945
0946
425561518f Jona*0947
c5830e1a8b Jona*0948 ak0(i,j,bi,bj) = exp(93.4517 _d 0/tk100 - 60.2409 _d 0 +
0949 & 23.3585 _d 0 * log(tk100) +
0950 & s * (0.023517 _d 0 - 0.023656 _d 0*tk100 +
0951 & 0.0047036 _d 0*tk1002))
4e9f2133df Step*0952
0953
0954
92031a2908 Jean*0955
425561518f Jona*0956
c5830e1a8b Jona*0957 ak1(i,j,bi,bj)=10**(-1 _d 0*(3670.7 _d 0*invtk -
0958 & 62.008 _d 0 + 9.7944 _d 0*dlogtk -
0959 & 0.0118 _d 0 * s + 0.000116 _d 0*s2))
0960 ak2(i,j,bi,bj)=10**(-1*(1394.7 _d 0*invtk + 4.777 _d 0 -
0961 & 0.0184 _d 0*s + 0.000118 _d 0*s2))
4e9f2133df Step*0962
f52bc56573 Jean*0963
4e9f2133df Step*0964
0965
0966 ak1(i,j,bi,bj) = ak1(i,j,bi,bj)*
b5953f02df Jona*0967 & exp( (24.2 _d 0-0.085 _d 0*t)
0968 & *(pressc-1.0 _d 0)/(83.143 _d 0*tk) )
4e9f2133df Step*0969
0970
0971
0972
0973
0974 ak2(i,j,bi,bj) = ak2(i,j,bi,bj)*
b5953f02df Jona*0975 & exp( (16.4 _d 0-0.040 _d 0*t)
0976 & *(pressc-1.0 _d 0)/(83.143 _d 0*tk) )
4e9f2133df Step*0977
0978
0979
425561518f Jona*0980
c5830e1a8b Jona*0981 akb(i,j,bi,bj)=exp((-8966.90 _d 0- 2890.53 _d 0*sqrts -
0982 & 77.942 _d 0*s + 1.728 _d 0*s15 - 0.0996 _d 0*s2)*invtk +
0983 & (148.0248 _d 0 + 137.1942 _d 0*sqrts + 1.62142 _d 0*s) +
0984 & (-24.4344 _d 0 - 25.085 _d 0*sqrts - 0.2474 _d 0*s) *
0985 & dlogtk + 0.053105 _d 0*sqrts*tk)
425561518f Jona*0986 #ifdef CARBONCHEM_TOTALPHSCALE
0987
0988
0989
0990
0991
0992
0993
0994
0995
0996
0997
0998
0999 #else
4e9f2133df Step*1000
1001
f52bc56573 Jean*1002
4e9f2133df Step*1003
c5830e1a8b Jona*1004 bigR = 83.145 _d 0
1005 dv = -29.48 _d 0 + 0.1622 _d 0*t + 2.608 _d -3*t*t
1006 dk = -2.84 _d -3
f52bc56573 Jean*1007 pfactor = - (dv/(bigR*tk))*pressc
c5830e1a8b Jona*1008 & + (0.5 _d 0*dk/(bigR*tk))*pressc*pressc
4e9f2133df Step*1009 akb(i,j,bi,bj) = akb(i,j,bi,bj)*exp(pfactor)
425561518f Jona*1010 #endif
4e9f2133df Step*1011
1012
1013
92031a2908 Jean*1014
425561518f Jona*1015
1016
c5830e1a8b Jona*1017 ak1p(i,j,bi,bj) = exp(-4576.752 _d 0*invtk + 115.525 _d 0 -
1018 & 18.453 _d 0*dlogtk +
1019 & (-106.736 _d 0*invtk + 0.69171 _d 0)*sqrts +
1020 & (-0.65643 _d 0*invtk - 0.01844 _d 0)*s)
4e9f2133df Step*1021
1022
425561518f Jona*1023
92031a2908 Jean*1024
425561518f Jona*1025
1026
c5830e1a8b Jona*1027 ak2p(i,j,bi,bj) = exp(-8814.715 _d 0*invtk + 172.0883 _d 0 -
1028 & 27.927 _d 0*dlogtk +
1029 & (-160.34 _d 00*invtk + 1.3566 _d 0) * sqrts +
1030 & (0.37335 _d 0*invtk - 0.05778 _d 0) * s)
4e9f2133df Step*1031
1032
1033
92031a2908 Jean*1034
425561518f Jona*1035
1036
c5830e1a8b Jona*1037 ak3p(i,j,bi,bj) = exp(-3070.75 _d 0*invtk - 18.141 _d 0 +
1038 & (17.27039 _d 0*invtk + 2.81197 _d 0) *
1039 & sqrts + (-44.99486 _d 0*invtk - 0.09984 _d 0) * s)
4e9f2133df Step*1040
1041
1042
92031a2908 Jean*1043
425561518f Jona*1044
1045
80d7ca01bb Jona*1046
c5830e1a8b Jona*1047 aksi(i,j,bi,bj) = exp(-8904.2 _d 0*invtk + 117.385 _d 0 -
1048 & 19.334 _d 0*dlogtk +
1049 & (-458.79 _d 0*invtk + 3.5913 _d 0) * sqrtis +
1050 & (188.74 _d 0*invtk - 1.5998 _d 0) * is +
1051 & (-12.1652 _d 0*invtk + 0.07871 _d 0) * is2 +
1052 & log(1.0 _d 0-0.001005 _d 0*s))
4e9f2133df Step*1053
1054
1055
92031a2908 Jean*1056
425561518f Jona*1057
1058
c5830e1a8b Jona*1059 akw(i,j,bi,bj) = exp(-13847.26 _d 0*invtk + 148.9652 _d 0 -
b5953f02df Jona*1060 & 23.6521 _d 0*dlogtk + (118.67 _d 0*invtk
1061 & - 5.977 _d 0 + 1.0495 _d 0 * dlogtk) *
c5830e1a8b Jona*1062 & sqrts - 0.01615 _d 0 * s)
4e9f2133df Step*1063
1064
1065
425561518f Jona*1066
80d7ca01bb Jona*1067
c5830e1a8b Jona*1068 aks(i,j,bi,bj)=exp(-4276.1 _d 0*invtk + 141.328 _d 0 -
1069 & 23.093 _d 0*dlogtk +
b5953f02df Jona*1070 & (-13856 _d 0*invtk + 324.57 _d 0 - 47.986 _d 0*dlogtk)
1071 & *sqrtis +
1072 & (35474 _d 0*invtk - 771.54 _d 0 + 114.723 _d 0*dlogtk)
1073 & *is -
c5830e1a8b Jona*1074 & 2698 _d 0*invtk*is**1.5 _d 0 + 1776 _d 0*invtk*is2 +
1075 & log(1.0 _d 0 - 0.001005 _d 0*s))
4e9f2133df Step*1076
1077
425561518f Jona*1078
80d7ca01bb Jona*1079
92031a2908 Jean*1080 akf(i,j,bi,bj)=exp(1590.2 _d 0*invtk - 12.641 _d 0
1081 & + 1.525 _d 0*sqrtis
c5830e1a8b Jona*1082 & + log(1.0 _d 0 - 0.001005 _d 0*s)
b5953f02df Jona*1083 & + log(1.0 _d 0 + (0.1400 _d 0/96.062 _d 0)
1084 & *(scl)/aks(i,j,bi,bj)))
4e9f2133df Step*1085
1086
1087
c5830e1a8b Jona*1088 bt(i,j,bi,bj) = 0.000232 _d 0 * scl/10.811 _d 0
4e9f2133df Step*1089
c5830e1a8b Jona*1090 st(i,j,bi,bj) = 0.14 _d 0 * scl/96.062 _d 0
4e9f2133df Step*1091
c5830e1a8b Jona*1092 ft(i,j,bi,bj) = 0.000067 _d 0 * scl/18.9984 _d 0
4e9f2133df Step*1093
425561518f Jona*1094
1095 #ifdef CARBONCHEM_TOTALPHSCALE
1096
1097
1098
1099
1100
1101
1102
1103
1104
c5830e1a8b Jona*1105 total2free_surf = 1. _d 0/
92031a2908 Jean*1106 & (1. _d 0 + st(i,j,bi,bj)/aks(i,j,bi,bj))
1107
1108 free2sw_surf = 1. _d 0
1109 & + st(i,j,bi,bj)/ aks(i,j,bi,bj)
1110 & + ft(i,j,bi,bj)/(akf(i,j,bi,bj)*total2free_surf)
425561518f Jona*1111
92031a2908 Jean*1112 total2sw_surf = total2free_surf * free2sw_surf
80d7ca01bb Jona*1113
92031a2908 Jean*1114
425561518f Jona*1115
c5830e1a8b Jona*1116 dv=-18.03 _d 0 + 0.0466 _d 0*t + 0.316 _d -3 *t*t
1117 dk=-4.53 _d -3 + 0.09 _d -3 *t
425561518f Jona*1118 pfactor = -(dv/(bigR*tk))*pressc
1119 & +(0.5*dk/(bigR*tk))*pressc*pressc
80d7ca01bb Jona*1120 aks(i,j,bi,bj) = aks(i,j,bi,bj)*exp(pfactor)
425561518f Jona*1121
c5830e1a8b Jona*1122 total2free = 1. _d 0/
92031a2908 Jean*1123 & (1. _d 0 + st(i,j,bi,bj)/aks(i,j,bi,bj))
1124
8d230ec051 Jona*1125 free2total = (1. _d 0 + st(i,j,bi,bj)/aks(i,j,bi,bj))
92031a2908 Jean*1126
1127
1128 free2sw = 1. _d 0
1129 & + st(i,j,bi,bj)/ aks(i,j,bi,bj)
1130
8d230ec051 Jona*1131 aks(i,j,bi,bj) = aks(i,j,bi,bj)*free2total
92031a2908 Jean*1132
425561518f Jona*1133
1134
1135 akf(i,j,bi,bj) = akf(i,j,bi,bj) * total2free_surf
c5830e1a8b Jona*1136 dv = -9.78 _d 0 -0.0090 _d 0 *t -0.942 _d -3 *t*t
1137 dk = -3.91 _d -3 + 0.054 _d -3 *t
425561518f Jona*1138 pfactor = -(dv/(bigR*tk))*pressc
1139 & +(0.5*dk/(bigR*tk))*pressc*pressc
1140 akf(i,j,bi,bj) = akf(i,j,bi,bj) * exp(pfactor)
92031a2908 Jean*1141 akf(i,j,bi,bj) = akf(i,j,bi,bj)*free2total
1142
1143
1144 free2sw = free2sw
1145 & + ft(i,j,bi,bj)/(akf(i,j,bi,bj)*total2free)
b5953f02df Jona*1146
8d230ec051 Jona*1147 sw2free = 1. _d 0 / free2sw
92031a2908 Jean*1148
1149 total2sw = total2free * free2sw
425561518f Jona*1150
8d230ec051 Jona*1151 sw2total = 1. _d 0 / total2sw
92031a2908 Jean*1152
425561518f Jona*1153
1154
8d230ec051 Jona*1155 ak1(i,j,bi,bj) = ak1(i,j,bi,bj)*sw2total
1156 ak2(i,j,bi,bj) = ak2(i,j,bi,bj)*sw2total
425561518f Jona*1157
1158
1159
c5830e1a8b Jona*1160 dv = -29.48 _d 0 + 0.1622 _d 0*t + 2.608 _d -3*t*t
1161 dk = -2.84 _d -3
425561518f Jona*1162 pfactor = - (dv/(bigR*tk))*pressc
1163 & + (0.5*dk/(bigR*tk))*pressc*pressc
1164 akb(i,j,bi,bj) = total2sw_surf*akb(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1165 akb(i,j,bi,bj) = akb(i,j,bi,bj)*sw2total
425561518f Jona*1166
1167
1168
c5830e1a8b Jona*1169 dv = -14.51 _d 0 + 0.1211 _d 0*t -0.321 _d -3*t*t
1170 dk = -2.67 _d -3 + 0.0427 _d -3*t
425561518f Jona*1171 pfactor = - (dv/(bigR*tk))*pressc
1172 & + (0.5*dk/(bigR*tk))*pressc*pressc
1173 ak1p(i,j,bi,bj) = total2sw_surf*ak1p(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1174 ak1p(i,j,bi,bj) = ak1p(i,j,bi,bj)*sw2total
425561518f Jona*1175
1176
1177
c5830e1a8b Jona*1178 dv = -23.12 _d 0 + 0.1758 _d 0*t -2.647 _d -3*t*t
1179 dk = -5.15 _d -3 + 0.09 _d -3*t
425561518f Jona*1180 pfactor = - (dv/(bigR*tk))*pressc
1181 & + (0.5*dk/(bigR*tk))*pressc*pressc
1182 ak2p(i,j,bi,bj) = total2sw_surf*ak2p(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1183 ak2p(i,j,bi,bj) = ak2p(i,j,bi,bj)*sw2total
92031a2908 Jean*1184
425561518f Jona*1185
1186
c5830e1a8b Jona*1187 dv = -26.57 _d 0 + 0.2020 _d 0*t -3.042 _d -3*t*t
1188 dk = -4.08 _d -3 + 0.0714 _d -3*t
425561518f Jona*1189 pfactor = - (dv/(bigR*tk))*pressc
1190 & + (0.5*dk/(bigR*tk))*pressc*pressc
1191 ak3p(i,j,bi,bj) = total2sw_surf*ak3p(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1192 ak3p(i,j,bi,bj) = ak3p(i,j,bi,bj)*sw2total
92031a2908 Jean*1193
425561518f Jona*1194
1195
c5830e1a8b Jona*1196 dv = -20.02 _d 0 + 0.1119 _d 0*t -1.409 _d -3*t*t
1197 dk = -5.13 _d -3 + 0.0794 _d -3 *t
425561518f Jona*1198 pfactor = - (dv/(bigR*tk))*pressc
1199 & + (0.5*dk/(bigR*tk))*pressc*pressc
1200 akw(i,j,bi,bj) = total2sw_surf*akw(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1201 akw(i,j,bi,bj) = akw(i,j,bi,bj)*sw2total
425561518f Jona*1202
1203
1204
1205
c5830e1a8b Jona*1206 dv = -29.48 _d 0 + 0.1622 _d 0*t + 2.608 _d -3*t*t
1207 dk = -2.84 _d -3
425561518f Jona*1208 pfactor = - (dv/(bigR*tk))*pressc
1209 & + (0.5*dk/(bigR*tk))*pressc*pressc
1210 aksi(i,j,bi,bj) = total2sw_surf*aksi(i,j,bi,bj)*exp(pfactor)
8d230ec051 Jona*1211 aksi(i,j,bi,bj) = aksi(i,j,bi,bj)*sw2total
425561518f Jona*1212 #endif
1213
1214
1215
4e9f2133df Step*1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
92031a2908 Jean*1229 tmpa1 = - 171.9065 _d 0 - (0.077993 _d 0*tk)
c5830e1a8b Jona*1230 & + (2839.319 _d 0/tk) + (71.595 _d 0*log10(tk))
92031a2908 Jean*1231 tmpa2 = +(-0.77712 _d 0 + (0.0028426 _d 0*tk)
c5830e1a8b Jona*1232 & + (178.34 _d 0/tk) )*sqrts
1233 tmpa3 = -(0.07711 _d 0*s) + (0.0041249 _d 0*s15)
1234 logKspc = tmpa1 + tmpa2 + tmpa3
1235 Ksp_T_Calc = 10.0 _d 0**logKspc
4e9f2133df Step*1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
c5830e1a8b Jona*1252 zdum = (pressc*10. _d 0 - 10. _d 0)/10. _d 0
1253 xvalue = ( (48.8 _d 0 - 0.53 _d 0*t)*zdum
1254 & + (-0.00588 _d 0 + 0.0001845 _d 0*t)*zdum*zdum)
1255 & / (188.93 _d 0*(t + 273.15 _d 0))
4e9f2133df Step*1256
c5830e1a8b Jona*1257 Ksp_TP_Calc(i,j,bi,bj) = Ksp_T_Calc*10**(xvalue)
4e9f2133df Step*1258
1259
f0dfb321df Jean*1260 ELSE
c5830e1a8b Jona*1261 ff(i,j,bi,bj)=0. _d 0
1262 ak0(i,j,bi,bj)= 0. _d 0
1263 ak1(i,j,bi,bj)= 0. _d 0
1264 ak2(i,j,bi,bj)= 0. _d 0
1265 akb(i,j,bi,bj)= 0. _d 0
1266 ak1p(i,j,bi,bj) = 0. _d 0
1267 ak2p(i,j,bi,bj) = 0. _d 0
1268 ak3p(i,j,bi,bj) = 0. _d 0
1269 aksi(i,j,bi,bj) = 0. _d 0
1270 akw(i,j,bi,bj) = 0. _d 0
1271 aks(i,j,bi,bj)= 0. _d 0
1272 akf(i,j,bi,bj)= 0. _d 0
1273 bt(i,j,bi,bj) = 0. _d 0
1274 st(i,j,bi,bj) = 0. _d 0
1275 ft(i,j,bi,bj) = 0. _d 0
1276 Ksp_TP_Calc(i,j,bi,bj) = 0. _d 0
f0dfb321df Jean*1277 ENDIF
1278 enddo
1279 enddo
4e9f2133df Step*1280
f0dfb321df Jean*1281 RETURN
1282 END