Quartz |
-start 1 REM Specific rate k from Rimstidt and Barnes, 1980, GCA 44,1683 2 REM k = 10^-13.7 mol/m2/s (25 C), Ea = 90 kJ/mol 3 REM sp. rate * parm(2) due to salts (Dove and Rimstidt, MSA Rev. 29, 259) 4 REM PARM(1) = Specific area of Quartz, m^2/mol Quartz 5 REM PARM(2) = salt correction: (1 + 1.5 * c_Na (mM)), < 35 10 dif_temp = 1/TK - 1/298 20 pk_w = 13.7 + 4700.4 * dif_temp 40 moles = PARM(1) * M0 * PARM(2) * (M/M0)^0.67 * 10^-pk_w * (1 - SR("Quartz")) 50 SAVE moles * TIME -end
|
Phreeqc_default |
Phreeqc |
|
K-feldspar |
-start 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/281) 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, 0.3 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, o_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/281 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 hydrolysis 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 * ACT("OH-")^o_OH 220 REM rate by CO2 230 pk_CO2 = pk_CO2 + e_CO2 * dif_temp 240 rate_CO2 = 10^-pk_CO2 * (SR("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
|
Phreeqc_default |
Phreeqc |
|
Albite |
-start 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/281) 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, 0.3 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, o_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/281 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 hydrolysis 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 * ACT("OH-")^o_OH 220 REM rate by CO2 230 pk_CO2 = pk_CO2 + e_CO2 * dif_temp 240 rate_CO2 = 10^-pk_CO2 * (SR("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
|
Phreeqc_default |
Phreeqc |
|
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 ) 80 IF M0 > 0 THEN area = PARM(1)*M0*(M/M0)^PARM(2) ELSE area = PARM(1)*M 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
|
Phreeqc_default |
Phreeqc |
|
Pyrite |
-start 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
|
Phreeqc_default |
Phreeqc |
|
Organic_C |
-start 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 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 * (M/M0) * TIME 200 SAVE moles -end
|
Phreeqc_default |
Phreeqc |
|
Pyrolusite |
-start 10 if (M <= 0) THEN GOTO 200 20 sr_pl = SR("Pyrolusite") 30 if (sr_pl > 1) THEN GOTO 100 40 REM sr_pl <= 1, undersaturated 50 Fe_t = TOT("Fe(2)") 60 if Fe_t < 1e-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, supersaturated 110 moles = 2e-3 * 6.98e-5 * (1 - sr_pl) * TIME 200 SAVE moles * SOLN_VOL -end
|
Phreeqc_default |
Phreeqc |
|