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 | |
---|
165 | |
---|
166 | !! * Module variables |
---|
167 | REAL(wp), DIMENSION(jpi,jpj,10) :: & |
---|
168 | chem_data |
---|
169 | |
---|
170 | CONTAINS |
---|
171 | |
---|
172 | SUBROUTINE sed_chem( kt ) |
---|
173 | !!---------------------------------------------------------------------- |
---|
174 | !! *** ROUTINE sed_chem *** |
---|
175 | !! |
---|
176 | !! ** Purpose : set chemical constants |
---|
177 | !! |
---|
178 | !! History : |
---|
179 | !! ! 04-10 (N. Emprin, M. Gehlen ) Original code |
---|
180 | !! ! 06-04 (C. Ethe) Re-organization |
---|
181 | !!---------------------------------------------------------------------- |
---|
182 | !!* Arguments |
---|
183 | INTEGER, INTENT(in) :: & |
---|
184 | kt ! time step |
---|
185 | |
---|
186 | #if ! defined key_sed_off |
---|
187 | INTEGER :: & |
---|
188 | ji, jj, ikt |
---|
189 | |
---|
190 | REAL(wp) :: & |
---|
191 | ztkel, ztc, ztc2, zpres, ztr , & |
---|
192 | zsal, zsal2, zsqrt, zsal15 , & |
---|
193 | zis, zis2, zisqrt , & |
---|
194 | zdens0, zaw, zbw, zcw , & |
---|
195 | zbuf1, zbuf2 , & |
---|
196 | zcpexp, zcpexp2 , & |
---|
197 | zck1p, zck2p, zck3p, zcksi |
---|
198 | |
---|
199 | REAL(wp), DIMENSION(jpi,jpj,6) :: & |
---|
200 | zchem_data |
---|
201 | |
---|
202 | #endif |
---|
203 | !!---------------------------------------------------------------------- |
---|
204 | |
---|
205 | IF( MOD( kt - 1, nfreq ) /= 0 ) RETURN |
---|
206 | |
---|
207 | WRITE(numsed,*) ' Getting Chemical constants from tracer model at time kt = ', kt |
---|
208 | WRITE(numsed,*) ' ' |
---|
209 | |
---|
210 | |
---|
211 | #if defined key_sed_off |
---|
212 | CALL sed_chem_off |
---|
213 | #else |
---|
214 | ! reading variables |
---|
215 | zchem_data(:,:,:) = 0. |
---|
216 | DO jj = 1,jpj |
---|
217 | DO ji = 1, jpi |
---|
218 | ikt = MAX( mbathy(ji,jj)-1, 1 ) |
---|
219 | IF ( tmask(ji,jj,ikt) == 1 ) THEN |
---|
220 | zchem_data(ji,jj,1) = ak13 (ji,jj,ikt) |
---|
221 | zchem_data(ji,jj,2) = ak23 (ji,jj,ikt) |
---|
222 | zchem_data(ji,jj,3) = akb3 (ji,jj,ikt) |
---|
223 | zchem_data(ji,jj,4) = akw3 (ji,jj,ikt) |
---|
224 | zchem_data(ji,jj,5) = aksp (ji,jj,ikt) |
---|
225 | zchem_data(ji,jj,6) = borat(ji,jj,ikt) |
---|
226 | ENDIF |
---|
227 | ENDDO |
---|
228 | ENDDO |
---|
229 | |
---|
230 | CALL pack_arr ( jpoce, ak1s (1:jpoce), zchem_data(1:jpi,1:jpj,1), iarroce(1:jpoce) ) |
---|
231 | CALL pack_arr ( jpoce, ak2s (1:jpoce), zchem_data(1:jpi,1:jpj,2), iarroce(1:jpoce) ) |
---|
232 | CALL pack_arr ( jpoce, akbs (1:jpoce), zchem_data(1:jpi,1:jpj,3), iarroce(1:jpoce) ) |
---|
233 | CALL pack_arr ( jpoce, akws (1:jpoce), zchem_data(1:jpi,1:jpj,4), iarroce(1:jpoce) ) |
---|
234 | CALL pack_arr ( jpoce, aksps (1:jpoce), zchem_data(1:jpi,1:jpj,5), iarroce(1:jpoce) ) |
---|
235 | CALL pack_arr ( jpoce, borats(1:jpoce), zchem_data(1:jpi,1:jpj,6), iarroce(1:jpoce) ) |
---|
236 | |
---|
237 | DO ji = 1, jpoce |
---|
238 | ztkel = temp(ji) + 273.16 |
---|
239 | ztc = temp(ji) |
---|
240 | ztc2 = ztc * ztc |
---|
241 | zpres = press(ji) |
---|
242 | ! zqtt = ztkel * 0.01 |
---|
243 | zsal = salt(ji) |
---|
244 | zsal2 = zsal * zsal |
---|
245 | zsqrt = SQRT( zsal ) |
---|
246 | zsal15 = zsqrt * zsal |
---|
247 | zlogt = LOG( ztkel ) |
---|
248 | ztr = 1./ ztkel |
---|
249 | ! zis=ionic strength (ORNL/CDIAC-74, DOE 94,Dickson and Goyet) |
---|
250 | zis = 19.924 * zsal / ( 1000. - 1.005 * zsal ) |
---|
251 | zis2 = zis * zis |
---|
252 | zisqrt = SQRT( zis ) |
---|
253 | |
---|
254 | ! Density of Sea Water - F(temp,sal) [kg/m3] |
---|
255 | zdens0 = Ddsw(1) + Ddsw(2) * ztc + Ddsw(3) * ztc2 & |
---|
256 | + Ddsw(4) * ztc * ztc2 + Ddsw(5) * ztc2 * ztc2 & |
---|
257 | + Ddsw(6) * ztc * ztc2 * ztc2 |
---|
258 | zaw = Adsw(1) + Adsw(2) * ztc + Adsw(3)* ztc2 + Adsw(4) * ztc * ztc2 & |
---|
259 | + Adsw(5) * ztc2 * ztc2 |
---|
260 | zbw = Bdsw(1) + Bdsw(2) * ztc + Bdsw(3) * ztc2 |
---|
261 | zcw = Cdsw |
---|
262 | densSW(ji) = zdens0 + zaw * zsal + zbw * zsal15 + zcw * zsal * zsal |
---|
263 | densSW(ji) = densSW(ji) * 1E-3 ! to get dens in [kg/l] |
---|
264 | |
---|
265 | ! FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) |
---|
266 | ! (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE IN BROECKER ET AL. (1982) |
---|
267 | ! IS INCORRECT; HERE RGAS IS TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres IN |
---|
268 | ! DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS MULTIPLIED BY LN(10.) |
---|
269 | ! TO ALLOW USE OF EXP-FUNCTION WITH BASIS E IN THE FORMULA FOR AKSPP |
---|
270 | ! (CF. EDMOND AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL FORMULA ON P. 1286 |
---|
271 | ! IS RIGHT AND CONSISTENT WITH THE SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON P. 1285) |
---|
272 | !----------------------------------------------------------------------------------------- |
---|
273 | zcpexp = zpres / ( rgas*ztkel ) |
---|
274 | zcpexp2 = zpres * zcpexp |
---|
275 | |
---|
276 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
277 | !---------------------------------------------- |
---|
278 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
279 | & + ( cp15*ztr + cp16 ) * zsal |
---|
280 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
281 | & + ( cp25*ztr + cp26 ) * zsal |
---|
282 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
283 | & + ( cp34*ztr + cp35 ) * zsal |
---|
284 | |
---|
285 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
286 | !-------------------------------------------------------- |
---|
287 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
288 | & + ( cs15*ztr + cs16 ) * zis & |
---|
289 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
290 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
291 | |
---|
292 | |
---|
293 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
294 | !--------------------------------------------------- |
---|
295 | zak1p = EXP ( zck1p ) |
---|
296 | zak2p = EXP ( zck2p ) |
---|
297 | zak3p = EXP ( zck3p ) |
---|
298 | zaksil = EXP ( zcksi ) |
---|
299 | |
---|
300 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
301 | zbuf2 = 0.5 * ( devk4(3) + devk5(3)*ztc ) |
---|
302 | aksis(ji) = zaksil * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
303 | |
---|
304 | zbuf1 = - ( devk1(6) + devk2(6)*ztc + devk3(6)*ztc2 ) |
---|
305 | zbuf2 = 0.5 * ( devk4(6) + devk5(6)*ztc ) |
---|
306 | ak1ps(ji) = zak1p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
307 | |
---|
308 | zbuf1 = - ( devk1(7) + devk2(7)*ztc + devk3(7)*ztc2 ) |
---|
309 | zbuf2 = 0.5 * ( devk4(7) + devk5(7)*ztc ) |
---|
310 | ak2ps(ji) = zak2p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
311 | |
---|
312 | zbuf1 = - ( devk1(8) + devk2(8)*ztc + devk3(8)*ztc2 ) |
---|
313 | zbuf2 = 0.5 * ( devk4(8) + devk5(8)*ztc ) |
---|
314 | ak3ps(ji) = zak3p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
315 | |
---|
316 | ak12s (ji) = ak1s (ji) * ak2s (ji) |
---|
317 | ak12ps (ji) = ak1ps(ji) * ak2ps(ji) |
---|
318 | ak123ps(ji) = ak1ps(ji) * ak2ps(ji) * ak3ps(ji) |
---|
319 | |
---|
320 | calcon2(ji) = 0.01028 * ( salt(ji) / 35. ) * densSW(ji) |
---|
321 | ENDDO |
---|
322 | #endif |
---|
323 | |
---|
324 | END SUBROUTINE sed_chem |
---|
325 | |
---|
326 | #if defined key_sed_off |
---|
327 | |
---|
328 | SUBROUTINE sed_chem_off |
---|
329 | !!---------------------------------------------------------------------- |
---|
330 | !! *** ROUTINE sed_chem_off *** |
---|
331 | !! |
---|
332 | !! ** Purpose : compute chemical constants |
---|
333 | !! |
---|
334 | !! History : |
---|
335 | !! ! 04-10 (N. Emprin, M. Gehlen ) Original code |
---|
336 | !! ! 06-04 (C. Ethe) Re-organization |
---|
337 | !!---------------------------------------------------------------------- |
---|
338 | !! * Local declarations |
---|
339 | INTEGER :: & |
---|
340 | ji |
---|
341 | |
---|
342 | REAL(wp) :: & |
---|
343 | ztkel, ztc, ztc2, zpres, ztr , & |
---|
344 | zsal, zsal2, zsqrt, zsal15 , & |
---|
345 | zis, zis2, zisqrt , & |
---|
346 | zdens0, zaw, zbw, zcw , & |
---|
347 | zchl, zst, zft, zbuf1, zbuf2 , & |
---|
348 | zcpexp, zcpexp2 , & |
---|
349 | zckb, zck1, zck2, zckw , & |
---|
350 | zck1p, zck2p, zck3p, zcksi , & |
---|
351 | zak1, zak2, zakb, zakw , & |
---|
352 | zaksp0, zksp, zks, zkf |
---|
353 | |
---|
354 | |
---|
355 | ! CHEMICAL CONSTANTS - DEEP OCEAN |
---|
356 | !------------------------------------- |
---|
357 | ! [chem constants]=mol/kg solution (or (mol/kg sol)2 for akws and aksp) |
---|
358 | |
---|
359 | DO ji = 1, jpoce |
---|
360 | ztkel = temp(ji) + 273.16 |
---|
361 | ztc = temp(ji) |
---|
362 | ztc2 = ztc * ztc |
---|
363 | zpres = press(ji) |
---|
364 | ! zqtt = ztkel * 0.01 |
---|
365 | zsal = salt(ji) |
---|
366 | zsal2 = zsal * zsal |
---|
367 | zsqrt = SQRT( zsal ) |
---|
368 | zsal15 = zsqrt * zsal |
---|
369 | zlogt = LOG( ztkel ) |
---|
370 | ztr = 1./ ztkel |
---|
371 | ! zis=ionic strength (ORNL/CDIAC-74, DOE 94,Dickson and Goyet) |
---|
372 | zis = 19.924 * zsal / ( 1000. - 1.005 * zsal ) |
---|
373 | zis2 = zis * zis |
---|
374 | zisqrt = SQRT( zis ) |
---|
375 | |
---|
376 | |
---|
377 | ! Density of Sea Water - F(temp,sal) [kg/m3] |
---|
378 | zdens0 = Ddsw(1) + Ddsw(2) * ztc + Ddsw(3) * ztc2 & |
---|
379 | + Ddsw(4) * ztc * ztc2 + Ddsw(5) * ztc2 * ztc2 & |
---|
380 | + Ddsw(6) * ztc * ztc2 * ztc2 |
---|
381 | zaw = Adsw(1) + Adsw(2) * ztc + Adsw(3)* ztc2 + Adsw(4) * ztc * ztc2 & |
---|
382 | + Adsw(5) * ztc2 * ztc2 |
---|
383 | zbw = Bdsw(1) + Bdsw(2) * ztc + Bdsw(3) * ztc2 |
---|
384 | zcw = Cdsw |
---|
385 | densSW(ji) = zdens0 + zaw * zsal + zbw * zsal15 + zcw * zsal * zsal |
---|
386 | densSW(ji) = densSW(ji) * 1E-3 ! to get dens in [kg/l] |
---|
387 | |
---|
388 | |
---|
389 | ! FORMULA FOR CPEXP AFTER EDMOND AND GIESKES (1970) |
---|
390 | ! (REFERENCE TO CULBERSON AND PYTKOQICZ (1968) AS MADE IN BROECKER ET AL. (1982) |
---|
391 | ! IS INCORRECT; HERE RGAS IS TAKEN TENFOLD TO CORRECT FOR THE NOTATION OF pres IN |
---|
392 | ! DBAR INSTEAD OF BAR AND THE EXPRESSION FOR CPEXP IS MULTIPLIED BY LN(10.) |
---|
393 | ! TO ALLOW USE OF EXP-FUNCTION WITH BASIS E IN THE FORMULA FOR AKSPP |
---|
394 | ! (CF. EDMOND AND GIESKES (1970), P. 1285 AND P. 1286 (THE SMALL FORMULA ON P. 1286 |
---|
395 | ! IS RIGHT AND CONSISTENT WITH THE SIGN IN PARTIAL MOLAR VOLUME CHANGE AS SHOWN ON P. 1285) |
---|
396 | !----------------------------------------------------------------------------------------- |
---|
397 | zcpexp = zpres / ( rgas*ztkel ) |
---|
398 | zcpexp2 = zpres * zcpexp |
---|
399 | |
---|
400 | |
---|
401 | ! chlorinity (WOOSTER ET AL., 1969) |
---|
402 | !--------------------------------------- |
---|
403 | zchl = zsal * salchl |
---|
404 | |
---|
405 | ! total sulfate concentration [mol/kg soln] |
---|
406 | ! -------------------------------------- |
---|
407 | zst = st1 * zchl * st2 |
---|
408 | |
---|
409 | ! total fluoride concentration [mol/kg soln] |
---|
410 | ! -------------------------------------- |
---|
411 | zft = ft1 * zchl * ft2 |
---|
412 | |
---|
413 | ! dissociation constant for carbonate (Mehrback 74 - Dickson & Millero 87) |
---|
414 | !--------------------------------------------------------------------------- |
---|
415 | zck1 = c10*ztr - c11 + c12*zlogt - c13*zsal + c14*zsal2 |
---|
416 | zck2 = c20*ztr + c21 - c22*zlogt - c23*zsal + c24*zsal2 |
---|
417 | |
---|
418 | ! dissociation constant for sulfates (Dickson 1990) |
---|
419 | !-------------------------------------------------- |
---|
420 | zks = EXP( ks0 + ks1*ztr + ks2*zlogt & |
---|
421 | & + ( ks3*ztr + ks4 + ks5*zlogt ) * zisqrt & |
---|
422 | & + ( ks6*ztr + ks7 + ks8*zlogt ) * zis & |
---|
423 | & + ks9*ztr*zis*zisqrt + ks10*ztr*zis2 & |
---|
424 | & + LOG( ks11 + ks12*zsal ) ) |
---|
425 | |
---|
426 | ! dissociation constant for fluorides (Dickson and Riley 79) |
---|
427 | !-------------------------------------------------- |
---|
428 | zkf = EXP( kf0 + kf1*ztr + kf2*zisqrt + LOG( kf3 + kf4*zsal ) ) |
---|
429 | |
---|
430 | ! dissociation constant for borates (Doe 94) |
---|
431 | !-------------------------------------------------- |
---|
432 | zckb = ( cb0 + cb1*zsqrt + cb2*zsal + cb3*zsal15 + cb4*zsal2) * ztr & |
---|
433 | & + ( cb5 + cb6*zsqrt + cb7*zsal) & |
---|
434 | & + ( cb8 + cb9*zsqrt + cb10*zsal) * zlogt & |
---|
435 | & + cb11*zsqrt*ztkel + LOG( ( 1. + zst/zks + zft/zkf ) / ( 1. + zst/zks ) ) |
---|
436 | |
---|
437 | ! PKW (H2O) (DICKSON AND RILEY, 1979) |
---|
438 | !-------------------------------------- |
---|
439 | zckw = cw0*ztr + cw1 + cw2*zlogt & |
---|
440 | & +( cw3*ztr + cw4 + cw5*zlogt )* zsqrt + cw6*zsal |
---|
441 | |
---|
442 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
443 | !---------------------------------------------- |
---|
444 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
445 | & + ( cp15*ztr + cp16 ) * zsal |
---|
446 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
447 | & + ( cp25*ztr + cp26 ) * zsal |
---|
448 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
449 | & + ( cp34*ztr + cp35 ) * zsal |
---|
450 | |
---|
451 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
452 | !-------------------------------------------------------- |
---|
453 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
454 | & + ( cs15*ztr + cs16 ) * zis & |
---|
455 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
456 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
457 | |
---|
458 | ! apparent solublity product K'SP of calcite in seawater |
---|
459 | ! (S=27-43, T=2-25 DEG C) AT pres =0 (INGLE, 1975, EQ. 6) |
---|
460 | ! prob: olivier a log = ln et C. Heize a LOG10(sal) |
---|
461 | ! aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log(sal)+akcc4*tkel*tkel) |
---|
462 | ! aksp0 = 1.E-7*(akcc1+akcc2*sal**(1./3.)+akcc3*log10(sal)+akcc4*tkel*tkel) |
---|
463 | !-------------------------------------------------------------------- |
---|
464 | zaksp0 = akcc1 + akcc2*ztkel + akcc3*ztr + akcc4 * LOG10(ztkel) & |
---|
465 | & + ( akcc5 + akcc6*ztkel+ akcc7*ztr ) * zsqrt & |
---|
466 | & + akcc8*zsal + akcc9*zsal15 |
---|
467 | |
---|
468 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
469 | !--------------------------------------------------- |
---|
470 | zak1 = 10**( -zck1 ) |
---|
471 | zak2 = 10**( -zck2 ) |
---|
472 | zakb = EXP ( zckb ) |
---|
473 | zakw = EXP ( zckw ) |
---|
474 | zksp = 10**( zaksp0 ) |
---|
475 | |
---|
476 | |
---|
477 | |
---|
478 | ! KB of boric acid, K1,K2 of carbonic acid pressure correction |
---|
479 | ! after Culberson and AND Pytkowicz (1968) (CF. BROECKER ET AL., 1982) Millero 95 |
---|
480 | !-------------------------------------------------------------------------------- |
---|
481 | zbuf1 = - ( devk1(1) + devk2(1)*ztc + devk3(1)*ztc2 ) |
---|
482 | zbuf2 = 0.5 * ( devk4(1) + devk5(1)*ztc ) |
---|
483 | ak1s(ji) = zak1 * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
484 | |
---|
485 | zbuf1 = -( devk1(2) + devk2(2)*ztc + devk3(2)*ztc2 ) |
---|
486 | zbuf2 = 0.5 * ( devk4(2) + devk5(2)*ztc ) |
---|
487 | ak2s(ji) = zak2 * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
488 | |
---|
489 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
490 | zbuf2 = 0.5 * ( devk4(3) + devk5(3) * ztc ) |
---|
491 | akbs(ji) = zakb * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
492 | |
---|
493 | zbuf1 = - ( devk1(4) + devk2(4)*ztc + devk3(4)*ztc2 ) |
---|
494 | zbuf2 = 0.5 * ( devk4(4) + devk5(4)*ztc ) |
---|
495 | akws(ji) = zakw * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
496 | |
---|
497 | |
---|
498 | ! APPARENT SOLUBILITY PRODUCT K''SP OF CALCITE (OR ARAGONITE) |
---|
499 | ! AS FUNCTION OF PRESSURE FOLLWING EDMOND AND GIESKES (1970) |
---|
500 | ! (P. 1285) AND BERNER (1976) |
---|
501 | !----------------------------------------------------------------- |
---|
502 | ! aksp(ji) = aksp0*exp(zcpexp*(devks-devkst*tc)) |
---|
503 | ! or following Mucci |
---|
504 | zbuf1 = - ( devk1(5) + devk2(5)*ztc + devk3(5)*ztc2 ) |
---|
505 | zbuf2 = 0.5 *( devk4(5) + devk5(5)*ztc ) |
---|
506 | aksps(ji) = zksp * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
507 | |
---|
508 | ! For Phodphates (phosphoric acid) (DOE 1994) |
---|
509 | !---------------------------------------------- |
---|
510 | zck1p = cp10 + cp11*ztr + cp12*zlogt + ( cp13*ztr + cp14 ) * zsqrt & |
---|
511 | & + ( cp15*ztr + cp16 ) * zsal |
---|
512 | zck2p = cp20 + cp21*ztr + cp22*zlogt + ( cp23*ztr + cp24 ) * zsqrt & |
---|
513 | & + ( cp25*ztr + cp26 ) * zsal |
---|
514 | zck3p = cp30 + cp31*ztr + ( cp32*ztr + cp33 ) * zsqrt & |
---|
515 | & + ( cp34*ztr + cp35 ) * zsal |
---|
516 | |
---|
517 | ! For silicates (DOE 1994) change to mol/kg soln) (OCMIP) |
---|
518 | !-------------------------------------------------------- |
---|
519 | zcksi = cs10 + cs11*ztr + cs12*zlogt + ( cs13*ztr + cs14) * zisqrt & |
---|
520 | & + ( cs15*ztr + cs16 ) * zis & |
---|
521 | & + ( cs17*ztr + cs18 ) * zis2 & |
---|
522 | & + LOG( 1. + cs19*zsal ) + LOG( cs20 + cs21*zsal ) |
---|
523 | |
---|
524 | |
---|
525 | !K1, K2 of carbonic acid, KB of boric acid, KW (H2O) |
---|
526 | !--------------------------------------------------- |
---|
527 | zak1p = EXP ( zck1p ) |
---|
528 | zak2p = EXP ( zck2p ) |
---|
529 | zak3p = EXP ( zck3p ) |
---|
530 | zaksil = EXP ( zcksi ) |
---|
531 | |
---|
532 | zbuf1 = - ( devk1(3) + devk2(3)*ztc + devk3(3)*ztc2 ) |
---|
533 | zbuf2 = 0.5 * ( devk4(3) + devk5(3)*ztc ) |
---|
534 | aksis(ji) = zaksil * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
535 | |
---|
536 | zbuf1 = - ( devk1(6) + devk2(6)*ztc + devk3(6)*ztc2 ) |
---|
537 | zbuf2 = 0.5 * ( devk4(6) + devk5(6)*ztc ) |
---|
538 | ak1ps(ji) = zak1p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
539 | |
---|
540 | zbuf1 = - ( devk1(7) + devk2(7)*ztc + devk3(7)*ztc2 ) |
---|
541 | zbuf2 = 0.5 * ( devk4(7) + devk5(7)*ztc ) |
---|
542 | ak2ps(ji) = zak2p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
543 | |
---|
544 | zbuf1 = - ( devk1(8) + devk2(8)*ztc + devk3(8)*ztc2 ) |
---|
545 | zbuf2 = 0.5 * ( devk4(8) + devk5(8)*ztc ) |
---|
546 | ak3ps(ji) = zak3p * EXP( zbuf1*zcpexp + zbuf2*zcpexp2 ) |
---|
547 | |
---|
548 | ! total borat concentration. [mol/l] |
---|
549 | ! or from Millero 1995 [mol/l] : borat(l) = 0.000416_8*(sal/35._8)*densSW(l) |
---|
550 | ! -------------------------------------------------------------------------- |
---|
551 | borats(ji) = bor1 * zchl * bor2 * densSW(ji) |
---|
552 | |
---|
553 | ak12s (ji) = ak1s (ji) * ak2s (ji) |
---|
554 | ak12ps (ji) = ak1ps(ji) * ak2ps(ji) |
---|
555 | ak123ps(ji) = ak1ps(ji) * ak2ps(ji) * ak3ps(ji) |
---|
556 | |
---|
557 | calcon2(ji) = 0.01028 * ( zsal / 35. ) * densSW(ji) |
---|
558 | |
---|
559 | ENDDO |
---|
560 | |
---|
561 | END SUBROUTINE sed_chem_off |
---|
562 | |
---|
563 | #endif |
---|
564 | |
---|
565 | #else |
---|
566 | !!====================================================================== |
---|
567 | !! MODULE sedchem : Dummy module |
---|
568 | !!====================================================================== |
---|
569 | CONTAINS |
---|
570 | SUBROUTINE sed_chem( kt ) ! Empty routine |
---|
571 | INTEGER, INTENT(in) :: kt |
---|
572 | WRITE(*,*) 'trc_stp: You should not have seen this print! error?', kt |
---|
573 | END SUBROUTINE sed_chem |
---|
574 | |
---|
575 | !!====================================================================== |
---|
576 | |
---|
577 | #endif |
---|
578 | |
---|
579 | END MODULE sedchem |
---|