[3443] | 1 | MODULE sedchem |
---|
| 2 | |
---|
| 3 | #if defined key_sed |
---|
| 4 | !!====================================================================== |
---|
| 5 | !! *** Module sedchem *** |
---|
| 6 | !! sediment : Variable for chemistry of the CO2 cycle |
---|
| 7 | !!====================================================================== |
---|
| 8 | !! modules used |
---|
| 9 | USE sed ! sediment global variable |
---|
| 10 | USE sedarr |
---|
| 11 | |
---|
| 12 | !! * Accessibility |
---|
| 13 | PUBLIC sed_chem |
---|
| 14 | |
---|
| 15 | !! * Module variables |
---|
| 16 | REAL(wp) :: & |
---|
| 17 | salchl = 1./1.80655 , & ! conversion factor for salinity --> chlorinity (Wooster et al. 1969) |
---|
| 18 | calcon = 1.03E-2 ! mean calcite concentration [Ca2+] in sea water [mole/kg solution] |
---|
| 19 | |
---|
| 20 | REAL(wp) :: & ! coeff. for 1. dissoc. of carbonic acid (Millero, 1995) |
---|
| 21 | c10 = 3670.7 , & |
---|
| 22 | c11 = 62.008 , & |
---|
| 23 | c12 = 9.7944 , & |
---|
| 24 | c13 = 0.0118 , & |
---|
| 25 | c14 = 0.000116 |
---|
| 26 | |
---|
| 27 | REAL(wp) :: & ! coeff. for 2. dissoc. of carbonic acid (Millero, 1995) |
---|
| 28 | c20 = 1394.7 , & |
---|
| 29 | c21 = 4.777 , & |
---|
| 30 | c22 = 0. , & |
---|
| 31 | c23 = 0.0184 , & |
---|
| 32 | c24 = 0.000118 |
---|
| 33 | |
---|
| 34 | REAL(wp) :: & ! coeff. for 1. dissoc. of boric acid (Dickson and Goyet, 1994) |
---|
| 35 | cb0 = -8966.90, & |
---|
| 36 | cb1 = -2890.53, & |
---|
| 37 | cb2 = -77.942 , & |
---|
| 38 | cb3 = 1.728 , & |
---|
| 39 | cb4 = -0.0996 , & |
---|
| 40 | cb5 = 148.0248, & |
---|
| 41 | cb6 = 137.1942, & |
---|
| 42 | cb7 = 1.62142 , & |
---|
| 43 | cb8 = -24.4344, & |
---|
| 44 | cb9 = -25.085 , & |
---|
| 45 | cb10 = -0.2474 , & |
---|
| 46 | cb11 = 0.053105 |
---|
| 47 | |
---|
| 48 | REAL(wp) :: & ! borat constants |
---|
| 49 | bor1 = 0.000232, & |
---|
| 50 | bor2 = 1./10.811 |
---|
| 51 | |
---|
| 52 | REAL(wp) :: & ! constants for calculate concentrations |
---|
| 53 | st1 = 0.14 , & ! for sulfate (Morris & Riley 1966) |
---|
| 54 | st2 = 1./96.062, & |
---|
| 55 | ks0 = 141.328 , & |
---|
| 56 | ks1 = -4276.1 , & |
---|
| 57 | ks2 = -23.093 , & |
---|
| 58 | ks3 = -13856. , & |
---|
| 59 | ks4 = 324.57 , & |
---|
| 60 | ks5 = -47.986 , & |
---|
| 61 | ks6 = 35474. , & |
---|
| 62 | ks7 = -771.54 , & |
---|
| 63 | ks8 = 114.723 , & |
---|
| 64 | ks9 = -2698. , & |
---|
| 65 | ks10 = 1776. , & |
---|
| 66 | ks11 = 1. , & |
---|
| 67 | ks12 = -0.001005 |
---|
| 68 | |
---|
| 69 | REAL(wp) :: & ! constants for calculate concentrations |
---|
| 70 | ft1 = 0.000067 , & ! fluorides (Dickson & Riley 1979 ) |
---|
| 71 | ft2 = 1./18.9984 , & |
---|
| 72 | kf0 = -12.641 , & |
---|
| 73 | kf1 = 1590.2 , & |
---|
| 74 | kf2 = 1.525 , & |
---|
| 75 | kf3 = 1.0 , & |
---|
| 76 | kf4 =-0.001005 |
---|
| 77 | |
---|
| 78 | REAL(wp) :: & ! coeff. for dissoc. of water (Dickson and Riley, 1979 ) |
---|
| 79 | cw0 = -13847.26 , & |
---|
| 80 | cw1 = 148.9802 , & |
---|
| 81 | cw2 = -23.6521 , & |
---|
| 82 | cw3 = 118.67 , & |
---|
| 83 | cw4 = -5.977 , & |
---|
| 84 | cw5 = 1.0495 , & |
---|
| 85 | cw6 = -0.01615 |
---|
| 86 | |
---|
| 87 | REAL(wp) :: & ! coeff. for dissoc. of phosphate (Millero (1974) |
---|
| 88 | cp10 = 115.54 , & |
---|
| 89 | cp11 = -4576.752 , & |
---|
| 90 | cp12 = -18.453 , & |
---|
| 91 | cp13 = -106.736 , & |
---|
| 92 | cp14 = 0.69171 , & |
---|
| 93 | cp15 = -0.65643 , & |
---|
| 94 | cp16 = -0.01844 , & |
---|
| 95 | cp20 = 172.1033 , & |
---|
| 96 | cp21 = -8814.715 , & |
---|
| 97 | cp22 = -27.927 , & |
---|
| 98 | cp23 = -160.340 , & |
---|
| 99 | cp24 = 1.3566 , & |
---|
| 100 | cp25 = 0.37335 , & |
---|
| 101 | cp26 = -0.05778 , & |
---|
| 102 | cp30 = -18.126 , & |
---|
| 103 | cp31 = -3070.75 , & |
---|
| 104 | cp32 = 17.27039 , & |
---|
| 105 | cp33 = 2.81197 , & |
---|
| 106 | cp34 = -44.99486 , & |
---|
| 107 | cp35 = -0.09984 |
---|
| 108 | |
---|
| 109 | REAL(wp) :: & ! coeff. for dissoc. of silicates (Millero (1974) |
---|
| 110 | cs10 = 117.40 , & |
---|
| 111 | cs11 = -8904.2 , & |
---|
| 112 | cs12 = -19.334 , & |
---|
| 113 | cs13 = -458.79 , & |
---|
| 114 | cs14 = 3.5913 , & |
---|
| 115 | cs15 = 188.74 , & |
---|
| 116 | cs16 = -1.5998 , & |
---|
| 117 | cs17 = -12.1652 , & |
---|
| 118 | cs18 = 0.07871 , & |
---|
| 119 | cs19 = 0. , & |
---|
| 120 | cs20 = 1. , & |
---|
| 121 | cs21 = -0.001005 |
---|
| 122 | |
---|
| 123 | REAL(wp) :: & ! coeff. for apparent solubility equilibrium |
---|
| 124 | ! akcc1 = -34.452 , & ! of calcite (Ingle,1975, 1800, eq. 6) |
---|
| 125 | ! akcc2 = -39.866 , & |
---|
| 126 | ! akcc3 = 110.21 , & |
---|
| 127 | ! akcc4 = -7.5752E-6 |
---|
| 128 | akcc1 = -171.9065 , & ! Millero et al. 1995 from Mucci 1983 |
---|
| 129 | akcc2 = -0.077993 , & |
---|
| 130 | akcc3 = 2839.319 , & |
---|
| 131 | akcc4 = 71.595 , & |
---|
| 132 | akcc5 = -0.77712 , & |
---|
| 133 | akcc6 = 0.0028426 , & |
---|
| 134 | akcc7 = 178.34 , & |
---|
| 135 | akcc8 = -0.07711 , & |
---|
| 136 | akcc9 = 0.0041249 |
---|
| 137 | |
---|
| 138 | REAL(wp) :: & ! universal gas constant |
---|
| 139 | rgas = 83.145 ! bar.cm3/(mol.K) or R=8.31451 J/(g.mol.K) |
---|
| 140 | |
---|
| 141 | |
---|
| 142 | ! coeff. for seawater pressure correction (millero 95) |
---|
| 143 | REAL(wp), DIMENSION(8) :: & |
---|
| 144 | devk1, devk2, devk3, devk4, devk5 |
---|
| 145 | |
---|
| 146 | DATA devk1/ -25.5 , -15.82 , -29.48 , -25.60 , -48.76 , -14.51 , -23.12 , -26.57 / |
---|
| 147 | DATA devk2/ 0.1271 , -0.0219 , 0.1622 , 0.2324 , -0.5304 , 0.1211 , 0.1758 , 0.2020 / |
---|
| 148 | DATA devk3/ 0. , 0. , 2.608E-3, -3.6246E-3, 0. , -0.321E-3, -2.647E-3, -3.042E-3/ |
---|
| 149 | DATA devk4/-3.08E-3 , 1.13E-3 , -2.84E-3, -5.13E-3 , -11.76E-3 , -2.67E-3 , -5.15E-3 , -4.08E-3 / |
---|
| 150 | DATA devk5/0.0877E-3, -0.1475E-3, 0. , 0.0794E-3 , -0.3692E-3, 0.0427E-3, 0.09E-3 , 0.0714E-3/ |
---|
| 151 | |
---|
| 152 | |
---|
| 153 | ! coeff. for density of sea water (Millero & Poisson 1981) |
---|
| 154 | REAL(wp), DIMENSION(5) :: Adsw |
---|
| 155 | DATA Adsw/8.24493E-1, -4.0899E-3, 7.6438E-5 , -8.246E-7, 5.3875E-9 / |
---|
| 156 | |
---|
| 157 | REAL(wp), DIMENSION(3) :: Bdsw |
---|
| 158 | DATA Bdsw / -5.72466E-3, 1.0227E-4, -1.6546E-6 / |
---|
| 159 | |
---|
| 160 | REAL(wp) :: Cdsw = 4.8314E-4 |
---|
| 161 | |
---|
| 162 | REAL(wp), DIMENSION(6) :: Ddsw |
---|
| 163 | DATA Ddsw / 999.842594 , 6.793952E-2 , -9.095290E-3, 1.001685E-4, -1.120083E-6, 6.536332E-9/ |
---|
| 164 | |
---|
[5215] | 165 | !! $Id$ |
---|
[3443] | 166 | CONTAINS |
---|
| 167 | |
---|
| 168 | SUBROUTINE sed_chem( kt ) |
---|
| 169 | !!---------------------------------------------------------------------- |
---|
| 170 | !! *** ROUTINE sed_chem *** |
---|
| 171 | !! |
---|
| 172 | !! ** Purpose : set chemical constants |
---|
| 173 | !! |
---|
| 174 | !! History : |
---|
| 175 | !! ! 04-10 (N. Emprin, M. Gehlen ) Original code |
---|
| 176 | !! ! 06-04 (C. Ethe) Re-organization |
---|
| 177 | !!---------------------------------------------------------------------- |
---|
| 178 | !!* Arguments |
---|
| 179 | INTEGER, INTENT(in) :: kt ! time step |
---|
| 180 | |
---|
| 181 | #if ! defined key_sed_off |
---|
| 182 | INTEGER :: ji, jj, ikt |
---|
| 183 | REAL(wp) :: ztkel, ztc, ztc2, zpres, ztr |
---|
| 184 | REAL(wp) :: zsal, zsal2, zsqrt, zsal15 |
---|
| 185 | REAL(wp) :: zis, zis2, zisqrt |
---|
| 186 | REAL(wp) :: zdens0, zaw, zbw, zcw |
---|
| 187 | REAL(wp) :: zbuf1, zbuf2 |
---|
| 188 | REAL(wp) :: zcpexp, zcpexp2 |
---|
| 189 | REAL(wp) :: zck1p, zck2p, zck3p, zcksi |
---|
| 190 | REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zchem_data |
---|
| 191 | |
---|
| 192 | #endif |
---|
| 193 | !!---------------------------------------------------------------------- |
---|
| 194 | |
---|
| 195 | IF( MOD( kt - 1, nfreq ) /= 0 ) RETURN |
---|
| 196 | |
---|
| 197 | WRITE(numsed,*) ' Getting Chemical constants from tracer model at time kt = ', kt |
---|
| 198 | WRITE(numsed,*) ' ' |
---|
| 199 | |
---|
| 200 | |
---|
| 201 | #if defined key_sed_off |
---|
| 202 | CALL sed_chem_off |
---|
| 203 | #else |
---|
| 204 | ! reading variables |
---|
| 205 | ALLOCATE( zchem_data(jpi,jpj,6) ) ; zchem_data(:,:,:) = 0. |
---|
| 206 | |
---|
| 207 | DO jj = 1,jpj |
---|
| 208 | DO ji = 1, jpi |
---|
| 209 | ikt = mbkt(ji,jj) |
---|
| 210 | IF ( tmask(ji,jj,ikt) == 1 ) THEN |
---|
| 211 | zchem_data(ji,jj,1) = ak13 (ji,jj,ikt) |
---|
| 212 | zchem_data(ji,jj,2) = ak23 (ji,jj,ikt) |
---|
| 213 | zchem_data(ji,jj,3) = akb3 (ji,jj,ikt) |
---|
| 214 | zchem_data(ji,jj,4) = akw3 (ji,jj,ikt) |
---|
| 215 | zchem_data(ji,jj,5) = aksp (ji,jj,ikt) |
---|
| 216 | zchem_data(ji,jj,6) = borat(ji,jj,ikt) |
---|
| 217 | ENDIF |
---|
| 218 | ENDDO |
---|
| 219 | ENDDO |
---|
| 220 | |
---|
| 221 | CALL pack_arr ( jpoce, ak1s (1:jpoce), zchem_data(1:jpi,1:jpj,1), iarroce(1:jpoce) ) |
---|
| 222 | CALL pack_arr ( jpoce, ak2s (1:jpoce), zchem_data(1:jpi,1:jpj,2), iarroce(1:jpoce) ) |
---|
| 223 | CALL pack_arr ( jpoce, akbs (1:jpoce), zchem_data(1:jpi,1:jpj,3), iarroce(1:jpoce) ) |
---|
| 224 | CALL pack_arr ( jpoce, akws (1:jpoce), zchem_data(1:jpi,1:jpj,4), iarroce(1:jpoce) ) |
---|
| 225 | CALL pack_arr ( jpoce, aksps (1:jpoce), zchem_data(1:jpi,1:jpj,5), iarroce(1:jpoce) ) |
---|
| 226 | CALL pack_arr ( jpoce, borats(1:jpoce), zchem_data(1:jpi,1:jpj,6), iarroce(1:jpoce) ) |
---|
| 227 | |
---|
| 228 | DEALLOCATE( zchem_data ) |
---|
| 229 | |
---|
| 230 | DO ji = 1, jpoce |
---|
| 231 | ztkel = temp(ji) + 273.16 |
---|
| 232 | ztc = temp(ji) |
---|
| 233 | ztc2 = ztc * ztc |
---|
| 234 | zpres = press(ji) |
---|
| 235 | ! zqtt = ztkel * 0.01 |
---|
| 236 | zsal = salt(ji) |
---|
| 237 | zsal2 = zsal * zsal |
---|
| 238 | zsqrt = SQRT( zsal ) |
---|
| 239 | zsal15 = zsqrt * zsal |
---|
| 240 | zlogt = LOG( ztkel ) |
---|
| 241 | ztr = 1./ ztkel |
---|
| 242 | ! zis=ionic strength (ORNL/CDIAC-74, DOE 94,Dickson and Goyet) |
---|
| 243 | zis = 19.924 * zsal / ( 1000. - 1.005 * zsal ) |
---|
| 244 | zis2 = zis * zis |
---|
| 245 | zisqrt = SQRT( zis ) |
---|
| 246 | |
---|
| 247 | ! Density of Sea Water - F(temp,sal) [kg/m3] |
---|
| 248 | zdens0 = Ddsw(1) + Ddsw(2) * ztc + Ddsw(3) * ztc2 & |
---|
| 249 | + Ddsw(4) * ztc * ztc2 + Ddsw(5) * ztc2 * ztc2 & |
---|
| 250 | + Ddsw(6) * ztc * ztc2 * ztc2 |
---|
| 251 | zaw = Adsw(1) + Adsw(2) * ztc + Adsw(3)* ztc2 + Adsw(4) * ztc * ztc2 & |
---|
| 252 | + Adsw(5) * ztc2 * ztc2 |
---|
| 253 | zbw = Bdsw(1) + Bdsw(2) * ztc + Bdsw(3) * ztc2 |
---|
| 254 | zcw = Cdsw |
---|
| 255 | densSW(ji) = zdens0 + zaw * zsal + zbw * zsal15 + zcw * zsal * zsal |
---|
| 256 | densSW(ji) = densSW(ji) * 1E-3 ! to get dens in [kg/l] |
---|
| 257 | |
---|
| 258 | ! FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) |
---|
| 259 | ! (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE IN BROECKER ET AL. (1982) |
---|
| 260 | ! IS INCORRECT; HERE RGAS IS TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres IN |
---|
| 261 | ! DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS MULTIPLIED BY LN(10.) |
---|
| 262 | ! TO ALLOW USE OF EXP-FUNCTION WITH BASIS E IN THE FORMULA FOR AKSPP |
---|
| 263 | ! (CF. EDMOND AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL FORMULA ON P. 1286 |
---|
| 264 | ! IS RIGHT AND CONSISTENT WITH THE SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON P. 1285) |
---|
| 265 | !----------------------------------------------------------------------------------------- |
---|
| 266 | zcpexp = zpres / ( rgas*ztkel ) |
---|
| 267 | zcpexp2 = zpres * zcpexp |
---|
| 268 | |
---|
| 269 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
| 270 | !---------------------------------------------- |
---|
| 271 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
| 272 | & + ( cp15*ztr + cp16 ) * zsal |
---|
| 273 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
| 274 | & + ( cp25*ztr + cp26 ) * zsal |
---|
| 275 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
| 276 | & + ( cp34*ztr + cp35 ) * zsal |
---|
| 277 | |
---|
| 278 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
| 279 | !-------------------------------------------------------- |
---|
| 280 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
| 281 | & + ( cs15*ztr + cs16 ) * zis & |
---|
| 282 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
| 283 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
| 284 | |
---|
| 285 | |
---|
| 286 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
| 287 | !--------------------------------------------------- |
---|
| 288 | zak1p = EXP ( zck1p ) |
---|
| 289 | zak2p = EXP ( zck2p ) |
---|
| 290 | zak3p = EXP ( zck3p ) |
---|
| 291 | zaksil = EXP ( zcksi ) |
---|
| 292 | |
---|
| 293 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
| 294 | zbuf2 = 0.5 * ( devk4(3) + devk5(3)*ztc ) |
---|
| 295 | aksis(ji) = zaksil * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 296 | |
---|
| 297 | zbuf1 = - ( devk1(6) + devk2(6)*ztc + devk3(6)*ztc2 ) |
---|
| 298 | zbuf2 = 0.5 * ( devk4(6) + devk5(6)*ztc ) |
---|
| 299 | ak1ps(ji) = zak1p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 300 | |
---|
| 301 | zbuf1 = - ( devk1(7) + devk2(7)*ztc + devk3(7)*ztc2 ) |
---|
| 302 | zbuf2 = 0.5 * ( devk4(7) + devk5(7)*ztc ) |
---|
| 303 | ak2ps(ji) = zak2p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 304 | |
---|
| 305 | zbuf1 = - ( devk1(8) + devk2(8)*ztc + devk3(8)*ztc2 ) |
---|
| 306 | zbuf2 = 0.5 * ( devk4(8) + devk5(8)*ztc ) |
---|
| 307 | ak3ps(ji) = zak3p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 308 | |
---|
| 309 | ak12s (ji) = ak1s (ji) * ak2s (ji) |
---|
| 310 | ak12ps (ji) = ak1ps(ji) * ak2ps(ji) |
---|
| 311 | ak123ps(ji) = ak1ps(ji) * ak2ps(ji) * ak3ps(ji) |
---|
| 312 | |
---|
| 313 | calcon2(ji) = 0.01028 * ( salt(ji) / 35. ) * densSW(ji) |
---|
| 314 | ENDDO |
---|
| 315 | |
---|
| 316 | |
---|
| 317 | #endif |
---|
| 318 | |
---|
| 319 | END SUBROUTINE sed_chem |
---|
| 320 | |
---|
| 321 | #if defined key_sed_off |
---|
| 322 | |
---|
| 323 | SUBROUTINE sed_chem_off |
---|
| 324 | !!---------------------------------------------------------------------- |
---|
| 325 | !! *** ROUTINE sed_chem_off *** |
---|
| 326 | !! |
---|
| 327 | !! ** Purpose : compute chemical constants |
---|
| 328 | !! |
---|
| 329 | !! History : |
---|
| 330 | !! ! 04-10 (N. Emprin, M. Gehlen ) Original code |
---|
| 331 | !! ! 06-04 (C. Ethe) Re-organization |
---|
| 332 | !!---------------------------------------------------------------------- |
---|
| 333 | !! * Local declarations |
---|
| 334 | INTEGER :: ji |
---|
| 335 | |
---|
| 336 | REAL(wp) :: ztkel, ztc, ztc2, zpres, ztr |
---|
| 337 | REAL(wp) :: zsal, zsal2, zsqrt, zsal15 |
---|
| 338 | REAL(wp) :: zis, zis2, zisqrt |
---|
| 339 | REAL(wp) :: zdens0, zaw, zbw, zcw |
---|
| 340 | REAL(wp) :: zchl, zst, zft, zbuf1, zbuf2 |
---|
| 341 | REAL(wp) :: zcpexp, zcpexp2 |
---|
| 342 | REAL(wp) :: zckb, zck1, zck2, zckw |
---|
| 343 | REAL(wp) :: zck1p, zck2p, zck3p, zcksi |
---|
| 344 | REAL(wp) :: zak1, zak2, zakb, zakw |
---|
| 345 | REAL(wp) :: zaksp0, zksp, zks, zkf |
---|
| 346 | |
---|
| 347 | |
---|
| 348 | ! CHEMICAL CONSTANTS - DEEP OCEAN |
---|
| 349 | !------------------------------------- |
---|
| 350 | ! [chem constants]=mol/kg solution (or (mol/kg sol)2 for akws and aksp) |
---|
| 351 | |
---|
| 352 | DO ji = 1, jpoce |
---|
| 353 | ztkel = temp(ji) + 273.16 |
---|
| 354 | ztc = temp(ji) |
---|
| 355 | ztc2 = ztc * ztc |
---|
| 356 | zpres = press(ji) |
---|
| 357 | ! zqtt = ztkel * 0.01 |
---|
| 358 | zsal = salt(ji) |
---|
| 359 | zsal2 = zsal * zsal |
---|
| 360 | zsqrt = SQRT( zsal ) |
---|
| 361 | zsal15 = zsqrt * zsal |
---|
| 362 | zlogt = LOG( ztkel ) |
---|
| 363 | ztr = 1./ ztkel |
---|
| 364 | ! zis=ionic strength (ORNL/CDIAC-74, DOE 94,Dickson and Goyet) |
---|
| 365 | zis = 19.924 * zsal / ( 1000. - 1.005 * zsal ) |
---|
| 366 | zis2 = zis * zis |
---|
| 367 | zisqrt = SQRT( zis ) |
---|
| 368 | |
---|
| 369 | |
---|
| 370 | ! Density of Sea Water - F(temp,sal) [kg/m3] |
---|
| 371 | zdens0 = Ddsw(1) + Ddsw(2) * ztc + Ddsw(3) * ztc2 & |
---|
| 372 | + Ddsw(4) * ztc * ztc2 + Ddsw(5) * ztc2 * ztc2 & |
---|
| 373 | + Ddsw(6) * ztc * ztc2 * ztc2 |
---|
| 374 | zaw = Adsw(1) + Adsw(2) * ztc + Adsw(3)* ztc2 + Adsw(4) * ztc * ztc2 & |
---|
| 375 | + Adsw(5) * ztc2 * ztc2 |
---|
| 376 | zbw = Bdsw(1) + Bdsw(2) * ztc + Bdsw(3) * ztc2 |
---|
| 377 | zcw = Cdsw |
---|
| 378 | densSW(ji) = zdens0 + zaw * zsal + zbw * zsal15 + zcw * zsal * zsal |
---|
| 379 | densSW(ji) = densSW(ji) * 1E-3 ! to get dens in [kg/l] |
---|
| 380 | |
---|
| 381 | |
---|
| 382 | ! FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) |
---|
| 383 | ! (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE IN BROECKER ET AL. (1982) |
---|
| 384 | ! IS INCORRECT; HERE RGAS IS TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres IN |
---|
| 385 | ! DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS MULTIPLIED BY LN(10.) |
---|
| 386 | ! TO ALLOW USE OF EXP-FUNCTION WITH BASIS E IN THE FORMULA FOR AKSPP |
---|
| 387 | ! (CF. EDMOND AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL FORMULA ON P. 1286 |
---|
| 388 | ! IS RIGHT AND CONSISTENT WITH THE SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON P. 1285) |
---|
| 389 | !----------------------------------------------------------------------------------------- |
---|
| 390 | zcpexp = zpres / ( rgas*ztkel ) |
---|
| 391 | zcpexp2 = zpres * zcpexp |
---|
| 392 | |
---|
| 393 | |
---|
| 394 | ! chlorinity (WOOSTER ET AL., 1969) |
---|
| 395 | !--------------------------------------- |
---|
| 396 | zchl = zsal * salchl |
---|
| 397 | |
---|
| 398 | ! total sulfate concentration [mol/kg soln] |
---|
| 399 | ! -------------------------------------- |
---|
| 400 | zst = st1 * zchl * st2 |
---|
| 401 | |
---|
| 402 | ! total fluoride concentration [mol/kg soln] |
---|
| 403 | ! -------------------------------------- |
---|
| 404 | zft = ft1 * zchl * ft2 |
---|
| 405 | |
---|
| 406 | ! dissociation constant for carbonate (Mehrback 74 - Dickson & Millero 87) |
---|
| 407 | !--------------------------------------------------------------------------- |
---|
| 408 | zck1 = c10*ztr - c11 + c12*zlogt - c13*zsal + c14*zsal2 |
---|
| 409 | zck2 = c20*ztr + c21 - c22*zlogt - c23*zsal + c24*zsal2 |
---|
| 410 | |
---|
| 411 | ! dissociation constant for sulfates (Dickson 1990) |
---|
| 412 | !-------------------------------------------------- |
---|
| 413 | zks = EXP( ks0 + ks1*ztr + ks2*zlogt & |
---|
| 414 | & + ( ks3*ztr + ks4 + ks5*zlogt ) * zisqrt & |
---|
| 415 | & + ( ks6*ztr + ks7 + ks8*zlogt ) * zis & |
---|
| 416 | & + ks9*ztr*zis*zisqrt + ks10*ztr*zis2 & |
---|
| 417 | & + LOG( ks11 + ks12*zsal ) ) |
---|
| 418 | |
---|
| 419 | ! dissociation constant for fluorides (Dickson and Riley 79) |
---|
| 420 | !-------------------------------------------------- |
---|
| 421 | zkf = EXP( kf0 + kf1*ztr + kf2*zisqrt + LOG( kf3 + kf4*zsal ) ) |
---|
| 422 | |
---|
| 423 | ! dissociation constant for borates (Doe 94) |
---|
| 424 | !-------------------------------------------------- |
---|
| 425 | zckb = ( cb0 + cb1*zsqrt + cb2*zsal + cb3*zsal15 + cb4*zsal2) * ztr & |
---|
| 426 | & + ( cb5 + cb6*zsqrt + cb7*zsal) & |
---|
| 427 | & + ( cb8 + cb9*zsqrt + cb10*zsal) * zlogt & |
---|
| 428 | & + cb11*zsqrt*ztkel + LOG( ( 1. + zst/zks + zft/zkf ) / ( 1. + zst/zks ) ) |
---|
| 429 | |
---|
| 430 | ! PKW (H2O) (DICKSON AND RILEY, 1979) |
---|
| 431 | !-------------------------------------- |
---|
| 432 | zckw = cw0*ztr + cw1 + cw2*zlogt & |
---|
| 433 | & +( cw3*ztr + cw4 + cw5*zlogt )* zsqrt + cw6*zsal |
---|
| 434 | |
---|
| 435 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
| 436 | !---------------------------------------------- |
---|
| 437 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
| 438 | & + ( cp15*ztr + cp16 ) * zsal |
---|
| 439 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
| 440 | & + ( cp25*ztr + cp26 ) * zsal |
---|
| 441 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
| 442 | & + ( cp34*ztr + cp35 ) * zsal |
---|
| 443 | |
---|
| 444 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
| 445 | !-------------------------------------------------------- |
---|
| 446 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
| 447 | & + ( cs15*ztr + cs16 ) * zis & |
---|
| 448 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
| 449 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
| 450 | |
---|
| 451 | ! apparent solublity product K'SP of calcite in seawater |
---|
| 452 | ! (S=27-43, T=2-25 DEG C) AT pres =0 (INGLE, 1975, EQ. 6) |
---|
| 453 | ! prob: olivier a log = ln et C. Heize a LOG10(sal) |
---|
| 454 | ! aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log(sal)+akcc4*tkel*tkel) |
---|
| 455 | ! aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log10(sal)+akcc4*tkel*tkel) |
---|
| 456 | !-------------------------------------------------------------------- |
---|
| 457 | zaksp0 = akcc1 + akcc2*ztkel + akcc3*ztr + akcc4 * LOG10(ztkel) & |
---|
| 458 | & + ( akcc5 + akcc6*ztkel+ akcc7*ztr ) * zsqrt & |
---|
| 459 | & + akcc8*zsal + akcc9*zsal15 |
---|
| 460 | |
---|
| 461 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
| 462 | !--------------------------------------------------- |
---|
| 463 | zak1 = 10**( -zck1 ) |
---|
| 464 | zak2 = 10**( -zck2 ) |
---|
| 465 | zakb = EXP ( zckb ) |
---|
| 466 | zakw = EXP ( zckw ) |
---|
| 467 | zksp = 10**( zaksp0 ) |
---|
| 468 | |
---|
| 469 | |
---|
| 470 | |
---|
| 471 | ! KB of boric acid, K1,K2 of carbonic acid pressure correction |
---|
| 472 | ! after Culberson and AND Pytkowicz (1968) (CF. BROECKER ET AL., 1982) Millero 95 |
---|
| 473 | !-------------------------------------------------------------------------------- |
---|
| 474 | zbuf1 = - ( devk1(1) + devk2(1)*ztc + devk3(1)*ztc2 ) |
---|
| 475 | zbuf2 = 0.5 * ( devk4(1) + devk5(1)*ztc ) |
---|
| 476 | ak1s(ji) = zak1 * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 477 | |
---|
| 478 | zbuf1 = -( devk1(2) + devk2(2)*ztc + devk3(2)*ztc2 ) |
---|
| 479 | zbuf2 = 0.5 * ( devk4(2) + devk5(2)*ztc ) |
---|
| 480 | ak2s(ji) = zak2 * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 481 | |
---|
| 482 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
| 483 | zbuf2 = 0.5 * ( devk4(3) + devk5(3) * ztc ) |
---|
| 484 | akbs(ji) = zakb * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 485 | |
---|
| 486 | zbuf1 = - ( devk1(4) + devk2(4)*ztc + devk3(4)*ztc2 ) |
---|
| 487 | zbuf2 = 0.5 * ( devk4(4) + devk5(4)*ztc ) |
---|
| 488 | akws(ji) = zakw * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 489 | |
---|
| 490 | |
---|
| 491 | ! APPARENT SOLUBILITY PRODUCT K''SP OF CALCITE (OR ARAGONITE) |
---|
| 492 | ! AS FUNCTION OF PRESSURE FOLLWING EDMOND AND GIESKES (1970) |
---|
| 493 | ! (P. 1285) AND BERNER (1976) |
---|
| 494 | !----------------------------------------------------------------- |
---|
| 495 | ! aksp(ji) = aksp0*exp(zcpexp*(devks-devkst*tc)) |
---|
| 496 | ! or following Mucci |
---|
| 497 | zbuf1 = - ( devk1(5) + devk2(5)*ztc + devk3(5)*ztc2 ) |
---|
| 498 | zbuf2 = 0.5 *( devk4(5) + devk5(5)*ztc ) |
---|
| 499 | aksps(ji) = zksp * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 500 | |
---|
| 501 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
| 502 | !---------------------------------------------- |
---|
| 503 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
| 504 | & + ( cp15*ztr + cp16 ) * zsal |
---|
| 505 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
| 506 | & + ( cp25*ztr + cp26 ) * zsal |
---|
| 507 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
| 508 | & + ( cp34*ztr + cp35 ) * zsal |
---|
| 509 | |
---|
| 510 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
| 511 | !-------------------------------------------------------- |
---|
| 512 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
| 513 | & + ( cs15*ztr + cs16 ) * zis & |
---|
| 514 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
| 515 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
| 516 | |
---|
| 517 | |
---|
| 518 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
| 519 | !--------------------------------------------------- |
---|
| 520 | zak1p = EXP ( zck1p ) |
---|
| 521 | zak2p = EXP ( zck2p ) |
---|
| 522 | zak3p = EXP ( zck3p ) |
---|
| 523 | zaksil = EXP ( zcksi ) |
---|
| 524 | |
---|
| 525 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
| 526 | zbuf2 = 0.5 * ( devk4(3) + devk5(3)*ztc ) |
---|
| 527 | aksis(ji) = zaksil * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 528 | |
---|
| 529 | zbuf1 = - ( devk1(6) + devk2(6)*ztc + devk3(6)*ztc2 ) |
---|
| 530 | zbuf2 = 0.5 * ( devk4(6) + devk5(6)*ztc ) |
---|
| 531 | ak1ps(ji) = zak1p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 532 | |
---|
| 533 | zbuf1 = - ( devk1(7) + devk2(7)*ztc + devk3(7)*ztc2 ) |
---|
| 534 | zbuf2 = 0.5 * ( devk4(7) + devk5(7)*ztc ) |
---|
| 535 | ak2ps(ji) = zak2p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 536 | |
---|
| 537 | zbuf1 = - ( devk1(8) + devk2(8)*ztc + devk3(8)*ztc2 ) |
---|
| 538 | zbuf2 = 0.5 * ( devk4(8) + devk5(8)*ztc ) |
---|
| 539 | ak3ps(ji) = zak3p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
| 540 | |
---|
| 541 | ! total borat concentration. [mol/l] |
---|
| 542 | ! or from Millero 1995 [mol/l] : borat(l) = 0.000416_8*(sal/35._8)*densSW(l) |
---|
| 543 | ! -------------------------------------------------------------------------- |
---|
| 544 | borats(ji) = bor1 * zchl * bor2 * densSW(ji) |
---|
| 545 | |
---|
| 546 | ak12s (ji) = ak1s (ji) * ak2s (ji) |
---|
| 547 | ak12ps (ji) = ak1ps(ji) * ak2ps(ji) |
---|
| 548 | ak123ps(ji) = ak1ps(ji) * ak2ps(ji) * ak3ps(ji) |
---|
| 549 | |
---|
| 550 | calcon2(ji) = 0.01028 * ( zsal / 35. ) * densSW(ji) |
---|
| 551 | |
---|
| 552 | ENDDO |
---|
| 553 | |
---|
| 554 | END SUBROUTINE sed_chem_off |
---|
| 555 | |
---|
| 556 | #endif |
---|
| 557 | |
---|
| 558 | #else |
---|
| 559 | !!====================================================================== |
---|
| 560 | !! MODULE sedchem : Dummy module |
---|
| 561 | !!====================================================================== |
---|
[5215] | 562 | !! $Id$ |
---|
[3443] | 563 | CONTAINS |
---|
| 564 | SUBROUTINE sed_chem( kt ) ! Empty routine |
---|
| 565 | INTEGER, INTENT(in) :: kt |
---|
| 566 | WRITE(*,*) 'trc_stp: You should not have seen this print! error?', kt |
---|
| 567 | END SUBROUTINE sed_chem |
---|
| 568 | |
---|
| 569 | !!====================================================================== |
---|
| 570 | |
---|
| 571 | #endif |
---|
| 572 | |
---|
| 573 | END MODULE sedchem |
---|