Revised all RATES

git-svn-id: svn://136.177.114.72/svn_GW/phreeqc3/trunk@9413 1feff8c3-07ed-0310-ac33-dd36852eb9cd
This commit is contained in:
David L Parkhurst 2015-03-27 00:16:29 +00:00
parent 0585bb68dc
commit 3599733d46

329
llnl.dat
View File

@ -19030,127 +19030,195 @@ SURFACE_SPECIES
# Added delta H for Goethite.
RATES
###########
#K-feldspar
###########
#
# Sverdrup, H.U., 1990, The kinetics of base cation release due to
# chemical weathering: Lund University Press, Lund, 246 p.
# Sverdrup and Warfvinge, 1995, Estimating field weathering rates
# using laboratory kinetics: Reviews in minreralogy and geochemistry,
# vol. 31, p. 485-541.
#
# As described in:
# Appelo and Postma, 2005, Geochemistry, groundwater
# and pollution, 2nd Edition: A.A. Balkema Publishers,
# p. 162-163 and 395-399.
#
# Assume soil is 10% K-feldspar by mass in 1 mm spheres (radius 0.5 mm)
# Assume density of rock and Kspar is 2600 kg/m^3 = 2.6 kg/L
# GFW Kspar 0.278 kg/mol
#
# Moles of Kspar per liter pore space calculation:
# Mass of rock per liter pore space = 0.7*2.6/0.3 = 6.07 kg rock/L pore space
# Mass of Kspar per liter pore space 6.07x0.1 = 0.607 kg Kspar/L pore space
# Moles of Kspar per liter pore space 0.607/0.278 = 2.18 mol Kspar/L pore space
#
# Specific area calculation:
# Volume of sphere 4/3 x pi x r^3 = 5.24e-13 m^3 Kspar/sphere
# Mass of sphere 2600 x 5.24e-13 = 1.36e-9 kg Kspar/sphere
# Moles of Kspar in sphere 1.36e-9/0.278 = 4.90e-9 mol Kspar/sphere
# Surface area of one sphere 4 x pi x r^2 = 3.14e-8 m^2/sphere
# Specific area of K-feldspar in sphere 3.14e-8/4.90e-9 = 6.41 m^2/mol Kspar
#
#
# Example of KINETICS data block for K-feldspar rate:
# KINETICS 1
# K-feldspar
# -m0 2.16 # 10% K-fsp, 0.1 mm cubes
# -m 1.94
# -parms 1.36e4 0.1
# -m0 2.18 # 10% Kspar, 0.1 mm cubes
# -m 2.18 # Moles per L pore space
# -parms 6.41 0.1 # m^2/mol Kspar, fraction adjusts lab rate to field rate
K-feldspar
-start
1 rem specific rate from Sverdrup, 1990, in kmol/m2/s
2 rem parm(1) = 10 * (A/V, 1/dm) (recalc's sp. rate to mol/kgw)
3 rem parm(2) = corrects for field rate relative to lab rate
4 rem temp corr: from p. 162. E (kJ/mol) / R / 2.303 = H in H*(1/T-1/298)
10 dif_temp = 1/TK - 1/298
20 pk_H = 12.5 + 3134 * dif_temp
30 pk_w = 15.3 + 1838 * dif_temp
40 pk_OH = 14.2 + 3134 * dif_temp
50 pk_CO2 = 14.6 + 1677 * dif_temp
#60 pk_org = 13.9 + 1254 * dif_temp # rate increase with DOC
70 rate = 10^-pk_H * ACT("H+")^0.5 + 10^-pk_w + 10^-pk_OH * ACT("OH-")^0.3
71 rate = rate + 10^-pk_CO2 * (10^SI("CO2(g)"))^0.6
#72 rate = rate + 10^-pk_org * TOT("Doc")^0.4
80 moles = parm(1) * parm(2) * rate * (1 - SR("K-feldspar")) * time
81 rem decrease rate on precipitation
90 if SR("K-feldspar") > 1 then moles = moles * 0.1
100 save moles
1 REM Sverdrup and Warfvinge, 1995, mol m^-2 s^-1
2 REM PARM(1) = Specific area of Kspar m^2/mol Kspar
3 REM PARM(2) = Adjusts lab rate to field rate
4 REM temp corr: from A&P, p. 162. E (kJ/mol) / R / 2.303 = H in H*(1/T-1/298)
5 REM K-Feldspar parameters
10 DATA 11.7, 0.5, 4e-6, 0.4, 500e-6, 0.15, 14.5, 0.14, 0.15, 13.1
20 RESTORE 10
30 READ pK_H, n_H, lim_Al, x_Al, lim_BC, x_BC, pK_H2O, z_Al, z_BC, pK_OH
40 DATA 3500, 2000, 2500, 2000
50 RESTORE 40
60 READ e_H, e_H2O, e_OH, e_CO2
70 pk_CO2 = 13
80 n_CO2 = 0.6
100 REM Generic rate follows
110 dif_temp = 1/TK - 1/271
120 BC = ACT("Na+") + ACT("K+") + ACT("Mg+2") + ACT("Ca+2")
130 REM rate by H+
140 pk_H = pk_H + e_H * dif_temp
150 rate_H = 10^-pk_H * ACT("H+")^n_H / ((1 + ACT("Al+3") / lim_Al)^x_Al * (1 + BC / lim_BC)^x_BC)
160 REM rate by hydrolosis
170 pk_H2O = pk_H2O + e_H2O * dif_temp
180 rate_H2O = 10^-pk_H2O / ((1 + ACT("Al+3") / lim_Al)^z_Al * (1 + BC / lim_BC)^z_BC)
190 REM rate by OH-
200 pk_OH = pk_OH + e_OH * dif_temp
210 rate_OH = 10^-pk_OH
220 REM rate by CO2
230 pk_CO2 = pk_CO2 + e_CO2 * dif_temp
240 rate_CO2 = 10^-pk_CO2 * (10^SI("CO2(g)"))^n_CO2
250 rate = rate_H + rate_H2O + rate_OH + rate_CO2
260 area = PARM(1) * M0 *(M/M0)^0.67
270 rate = PARM(2) * area * rate * (1-SR("K-feldspar"))
280 moles = rate * TIME
290 SAVE moles
-end
###########
#Albite
###########
#
# Sverdrup, H.U., 1990, The kinetics of base cation release due to
# chemical weathering: Lund University Press, Lund, 246 p.
# Sverdrup and Warfvinge, 1995, Estimating field weathering rates
# using laboratory kinetics: Reviews in minreralogy and geochemistry,
# vol. 31, p. 485-541.
#
# As described in:
# Appelo and Postma, 2005, Geochemistry, groundwater
# and pollution, 2nd Edition: A.A. Balkema Publishers,
# p. 162-163 and 395-399.
#
# Example of KINETICS data block for Albite rate:
# KINETICS 1
# Albite
# -m0 0.43 # 2% Albite, 0.1 mm cubes
# -parms 2.72e3 0.1
# -m0 0.46 # 2% Albite, 0.1 mm cubes
# -m 0.46 # Moles per L pore space
# -parms 6.04 0.1 # m^2/mol Albite, fraction adjusts lab rate to field rate
#
# Assume soil is 2% Albite by mass in 1 mm spheres (radius 0.5 mm)
# Assume density of rock and Albite is 2600 kg/m^3 = 2.6 kg/L
# GFW Albite 0.262 kg/mol
#
# Moles of Albite per liter pore space calculation:
# Mass of rock per liter pore space = 0.7*2.6/0.3 = 6.07 kg rock/L pore space
# Mass of Albite per liter pore space 6.07x0.02 = 0.121 kg Albite/L pore space
# Moles of Albite per liter pore space 0.607/0.262 = 0.46 mol Albite/L pore space
#
# Specific area calculation:
# Volume of sphere 4/3 x pi x r^3 = 5.24e-13 m^3 Albite/sphere
# Mass of sphere 2600 x 5.24e-13 = 1.36e-9 kg Albite/sphere
# Moles of Albite in sphere 1.36e-9/0.278 = 5.20e-9 mol Albite/sphere
# Surface area of one sphere 4 x pi x r^2 = 3.14e-8 m^2/sphere
# Specific area of Albite in sphere 3.14e-8/4.90e-9 = 6.04 m^2/mol Albite
Albite
-start
1 rem specific rate from Sverdrup, 1990, in kmol/m2/s
2 rem parm(1) = 10 * (A/V, 1/dm) (recalc's sp. rate to mol/kgw)
3 rem parm(2) = corrects for field rate relative to lab rate
4 rem temp corr: from p. 162. E (kJ/mol) / R / 2.303 = H in H*(1/T-1/298)
10 dif_temp = 1/TK - 1/298
20 pk_H = 12.5 + 3359 * dif_temp
30 pk_w = 14.8 + 2648 * dif_temp
40 pk_OH = 13.7 + 3359 * dif_temp
#41 rem ^12.9 in Sverdrup, but larger than for oligoclase...
50 pk_CO2 = 14.0 + 1677 * dif_temp
#60 pk_org = 12.5 + 1254 * dif_temp # ...rate increase for DOC
70 rate = 10^-pk_H * ACT("H+")^0.5 + 10^-pk_w + 10^-pk_OH * ACT("OH-")^0.3
71 rate = rate + 10^-pk_CO2 * (10^SI("CO2(g)"))^0.6
#72 rate = rate + 10^-pk_org * TOT("Doc")^0.4
80 moles = parm(1) * parm(2) * rate * (1 - SR("Albite")) * time
81 rem decrease rate on precipitation
90 if SR("Albite") > 1 then moles = moles * 0.1
100 save moles
1 REM Sverdrup and Warfvinge, 1995, mol m^-2 s^-1
2 REM PARM(1) = Specific area of Albite m^2/mol Albite
3 REM PARM(2) = Adjusts lab rate to field rate
4 REM temp corr: from A&P, p. 162. E (kJ/mol) / R / 2.303 = H in H*(1/T-1/298)
5 REM Albite parameters
10 DATA 11.5, 0.5, 4e-6, 0.4, 500e-6, 0.2, 13.7, 0.14, 0.15, 11.8
20 RESTORE 10
30 READ pK_H, n_H, lim_Al, x_Al, lim_BC, x_BC, pK_H2O, z_Al, z_BC, pK_OH
40 DATA 3500, 2000, 2500, 2000
50 RESTORE 40
60 READ e_H, e_H2O, e_OH, e_CO2
70 pk_CO2 = 13
80 n_CO2 = 0.6
100 REM Generic rate follows
110 dif_temp = 1/TK - 1/271
120 BC = ACT("Na+") + ACT("K+") + ACT("Mg+2") + ACT("Ca+2")
130 REM rate by H+
140 pk_H = pk_H + e_H * dif_temp
150 rate_H = 10^-pk_H * ACT("H+")^n_H / ((1 + ACT("Al+3") / lim_Al)^x_Al * (1 + BC / lim_BC)^x_BC)
160 REM rate by hydrolosis
170 pk_H2O = pk_H2O + e_H2O * dif_temp
180 rate_H2O = 10^-pk_H2O / ((1 + ACT("Al+3") / lim_Al)^z_Al * (1 + BC / lim_BC)^z_BC)
190 REM rate by OH-
200 pk_OH = pk_OH + e_OH * dif_temp
210 rate_OH = 10^-pk_OH
220 REM rate by CO2
230 pk_CO2 = pk_CO2 + e_CO2 * dif_temp
240 rate_CO2 = 10^-pk_CO2 * (10^SI("CO2(g)"))^n_CO2
250 rate = rate_H + rate_H2O + rate_OH + rate_CO2
260 area = PARM(1) * M0 *(M/M0)^0.67
270 rate = PARM(2) * area * rate * (1-SR("Albite"))
280 moles = rate * TIME
290 SAVE moles
-end
########
#Calcite
########
#
# Plummer, L.N., Wigley, T.M.L., and Parkhurst, D.L., 1978,
# American Journal of Science, v. 278, p. 179-216.
#
# Example of KINETICS data block for calcite rate:
#
# KINETICS 1
# Calcite
# -tol 1e-8
# -m0 3.e-3
# -m 3.e-3
# -parms 5.0 0.6
Calcite
-start
1 rem Modified from Plummer and others, 1978
2 rem parm(1) = A/V, 1/m parm(2) = exponent for m/m0
# Example of KINETICS data block for calcite rate,
# in mmol/cm2/s, Plummer et al., 1978, AJS 278, 179; Appelo et al., AG 13, 257.
# KINETICS 1
# Calcite
# -tol 1e-8
# -m0 3.e-3
# -m 3.e-3
# -parms 1.67e8 0.6 # cm^2/mol calcite, exp factor
# -time 1 day
10 si_cc = si("Calcite")
20 if (m <= 0 and si_cc < 0) then goto 200
30 k1 = 10^(0.198 - 444.0 / (273.16 + tc) )
40 k2 = 10^(2.84 - 2177.0 / (273.16 + tc) )
50 if tc <= 25 then k3 = 10^(-5.86 - 317.0 / (273.16 + tc) )
60 if tc > 25 then k3 = 10^(-1.1 - 1737.0 / (273.16 + tc) )
70 t = 1
80 if m0 > 0 then t = m/m0
90 if t = 0 then t = 1
100 moles = parm(1) * (t)^parm(2)
110 moles = moles * (k1 * act("H+") + k2 * act("CO2") + k3 * act("H2O"))
120 moles = moles * (1 - 10^(2/3*si_cc))
130 moles = moles * time
140 if (moles > m) then moles = m
150 if (moles >= 0) then goto 200
160 temp = tot("Ca")
170 mc = tot("C(4)")
180 if mc < temp then temp = mc
190 if -moles > temp then moles = -temp
200 save moles
-end
Calcite
-start
1 REM PARM(1) = specific surface area of calcite, cm^2/mol calcite
2 REM PARM(2) = exponent for M/M0
10 si_cc = SI("Calcite")
20 IF (M <= 0 and si_cc < 0) THEN GOTO 200
30 k1 = 10^(0.198 - 444.0 / TK )
40 k2 = 10^(2.84 - 2177.0 /TK )
50 IF TC <= 25 THEN k3 = 10^(-5.86 - 317.0 / TK)
60 IF TC > 25 THEN k3 = 10^(-1.1 - 1737.0 / TK )
70 t = 1
80 IF M0 > 0 THEN t = M/M0
90 IF t = 0 THEN t = 1
100 area = PARM(1) * M0 * t^PARM(2)
110 rate = area * (k1 * ACT("H+") + k2 * ACT("CO2") + k3 * ACT("H2O"))
120 rate = rate * (1 - 10^(2/3*si_cc))
130 moles = rate * 0.001 * TIME # convert from mmol to mol
200 SAVE moles
-end
#######
#Pyrite
#######
#
#
# Williamson, M.A. and Rimstidt, J.D., 1994,
# Geochimica et Cosmochimica Acta, v. 58, p. 5443-5454.
# Geochimica et Cosmochimica Acta, v. 58, p. 5443-5454,
# rate equation is mol m^-2 s^-1.
#
# Example of KINETICS data block for pyrite rate:
# KINETICS 1
@ -19158,53 +19226,58 @@ Calcite
# -tol 1e-8
# -m0 5.e-4
# -m 5.e-4
# -parms 2.0 0.67 .5 -0.11
# -parms 3.3 0.67 .5 -0.11
Pyrite
-start
1 rem Williamson and Rimstidt, 1994
2 rem parm(1) = log10(A/V, 1/dm) parm(2) = exp for (m/m0)
3 rem parm(3) = exp for O2 parm(4) = exp for H+
10 if (m <= 0) then goto 200
20 if (si("Pyrite") >= 0) then goto 200
20 rate = -10.19 + parm(1) + parm(3)*lm("O2") + parm(4)*lm("H+") + parm(2)*log10(m/m0)
30 moles = 10^rate * time
40 if (moles > m) then moles = m
200 save moles
1 REM Williamson and Rimstidt, 1994
2 REM PARM(1) = log10(specific area), log10(m^2 per mole pyrite)
3 REM PARM(2) = exp for (M/M0)
4 REM PARM(3) = exp for O2
5 REM PARM(4) = exp for H+
10 REM Dissolution in presence of DO
20 if (M <= 0) THEN GOTO 200
30 if (SI("Pyrite") >= 0) THEN GOTO 200
40 log_rate = -8.19 + PARM(3)*LM("O2") + PARM(4)*LM("H+")
50 log_area = PARM(1) + LOG10(M0) + PARM(2)*LOG10(M/M0)
60 moles = 10^(log_area + log_rate) * TIME
200 SAVE moles
-end
##########
#Organic_C
##########
#
# Example of KINETICS data block for Organic_C rate:
# Example of KINETICS data block for SOC (sediment organic carbon):
# KINETICS 1
# Organic_C
# -tol 1e-8
# # m in mol/kgw
# -m0 5e-3
# -m 5e-3
# -m 5e-3 # SOC in mol
Organic_C
-start
1 rem Additive Monod kinetics
2 rem Electron acceptors: O2, NO3, and SO4
1 REM Additive Monod kinetics for SOC (sediment organic carbon)
2 REM Electron acceptors: O2, NO3, and SO4
10 if (m <= 0) then goto 200
20 mO2 = mol("O2")
30 mNO3 = tot("N(5)")
40 mSO4 = tot("S(6)")
50 rate = 1.57e-9*mO2/(2.94e-4 + mO2) + 1.67e-11*mNO3/(1.55e-4 + mNO3)
60 rate = rate + 1.e-13*mSO4/(1.e-4 + mSO4)
70 moles = rate * m * (m/m0) * time
80 if (moles > m) then moles = m
200 save moles
10 if (M <= 0) THEN GOTO 200
20 mO2 = MOL("O2")
30 mNO3 = TOT("N(5)")
40 mSO4 = TOT("S(6)")
50 k_O2 = 1.57e-9 # 1/sec
60 k_NO3 = 1.67e-11 # 1/sec
70 k_SO4 = 1.e-13 # 1/sec
80 rate = k_O2 * mO2/(2.94e-4 + mO2)
90 rate = rate + k_NO3 * mNO3/(1.55e-4 + mNO3)
100 rate = rate + k_SO4 * mSO4/(1.e-4 + mSO4)
110 moles = rate * M * TIME
200 SAVE moles
-end
###########
#Pyrolusite
###########
#
# Postma, D. and Appelo, C.A.J., 2000, GCA 64, in press
# Postma, D. and Appelo, C.A.J., 2000, GCA, vol. 64, pp. 1237-1247.
# Rate equation given as mol L^-1 s^-1
#
# Example of KINETICS data block for Pyrolusite
# KINETICS 1-12
@ -19214,21 +19287,17 @@ Organic_C
# -m 0.1
Pyrolusite
-start
5 if (m <= 0.0) then goto 200
7 sr_pl = sr("Pyrolusite")
9 if abs(1 - sr_pl) < 0.1 then goto 200
10 if (sr_pl > 1.0) then goto 100
#20 rem initially 1 mol Fe+2 = 0.5 mol pyrolusite. k*A/V = 1/time (3 cells)
#22 rem time (3 cells) = 1.432e4. 1/time = 6.98e-5
30 Fe_t = tot("Fe(2)")
32 if Fe_t < 1.e-8 then goto 200
40 moles = 6.98e-5 * Fe_t * (m/m0)^0.67 * time * (1 - sr_pl)
50 if moles > Fe_t / 2 then moles = Fe_t / 2
70 if moles > m then moles = m
90 goto 200
100 Mn_t = tot("Mn")
110 moles = 2e-3 * 6.98e-5 * (1-sr_pl) * time
120 if moles <= -Mn_t then moles = -Mn_t
200 save moles
10 if (M <= 0.0) THEN GOTO 200
20 sr_pl = SR("Pyrolusite")
30 if (sr_pl > 1.0) THEN GOTO 100
40 REM sr_pl <= 1.0, undersaturated
50 Fe_t = TOT("Fe(2)")
60 if Fe_t < 1.e-8 then goto 200
70 moles = 6.98e-5 * Fe_t * (M/M0)^0.67 * TIME * (1 - sr_pl)
80 GOTO 200
100 REM sr_pl > 1.0, supersaturated
110 Mn_t = TOT("Mn")
120 moles = 2e-3 * 6.98e-5 * (1-sr_pl) * TIME
200 SAVE moles * SOLN_VOL
-end
END