PRINT; -reset falsePHASESDawsonite NaAlCO3(OH)2 +3.0000 H+ = + 1.0000 Al+++ + 1.0000 HCO3- + 1.0000 Na+ + 2.0000 H2O log_k 4.3464 -delta_H -76.3549 kJ/mol # Calculated enthalpy of reaction Dawsonite -analytic -1.1393e+002 -2.3487e-002 7.1758e+003 4.0900e+001 1.2189e+002 -Vm 59Smectite Ca.025Na.1K.2Fe.5Fe.2Mg1.15Al1.25Si3.5H2O12 +8.0000 H+ + 2.0000 H2O = + 0.0250 Ca++ + 0.1000 Na+ + 0.2000 Fe+++ + 0.2000 K+ + 0.5000 Fe++ + 1.1500 Mg++ + 1.2500 Al+++ + 3.5000H4SiO4 log_k 17.4200 -delta_H -199.841 kJ/mol # Calculated enthalpy of reaction -analytic -9.6102e+000 1.2551e-003 1.8157e+004 -7.9862e+000 -1.3005e+006 -Vm 140Laumontite CaAl2Si4O12:4H2O +8.0000 H+ = + 1.0000 Ca++ + 2.0000 Al+++ + 4.0000 H4SiO4 #+ 8.0000 H2O log_k 13.6667 -delta_H -184.657 kJ/mol # Calculated enthalpy of reaction Laumontite -analytic 1.1904e+000 8.1763e-003 1.9005e+004 -1.4561e+001 -1.5851e+006 -Vm 207.53 CO2(g) CO2 = CO2 -log_k -1.468 -delta_h -4.776 kcal -analytic 10.5624 -2.3547e-2 -3972.8 0 5.8746e5 1.9194e-5 -T_c 304.2 # critical T, K -P_c 72.86 # critical P, atm -Omega 0.225 # acentric factor ENDRATES Laumontite-start10 SR_mineral=SR("Laumontite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut 100 r = k_rateconst * SA * (1-SR("Laumontite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Anorthite-start10 SR_mineral=SR("anorthite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut 100 r = k_rateconst * SA * (1-SR("Anorthite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endAlbite-start10 SR_mineral=SR("Albite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.92e-11*EXP((-65000/8.3145)*(1/Tk-1/298.15))70 k_neut = 2.75e-13*EXP((-69800/8.3145)*(1/Tk-1/298.15))80 k_base = 2.51e-16*EXP((-71000/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*(act("H+")^(0.457)) + k_neut + k_base*act("H+")^(-0.572)100 r = (k_rateconst) * SA * (1-SR("Albite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endKaolinite-start10 SR_mineral=SR("Kaolinite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 4.9e-12*EXP((-65900/8.3145)*(1/Tk-1/298.15))70 k_neut = 6.92e-14*EXP((-22200/8.3145)*(1/Tk-1/298.15))80 k_base = 8.91e-18*EXP((-17900/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.777 + k_neut + k_base*act("H+")^(-0.472)100 r = k_rateconst * SA * (1-SR("Kaolinite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Illite-start10 SR_mineral=SR("Illite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.05e-11*EXP(-23600/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.34 100 r = k_rateconst * SA * (1-SR("Illite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Smectite-start10 SR_mineral=SR("Smectite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=1100 r = 5.62e-14* SA * (1-SR("Smectite"))*PARM(2)*act("H+")^0.5150 moles = r * TIME200 SAVE moles-end Dawsonite-start10 SR_mineral=SR("Dawsonite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.457e-4*EXP(-36100/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.26e-9*EXP(-62760/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut 100 r = k_rateconst * SA * (1-SR("Dawsonite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endENDSOLUTION 0 -temperature 60 -pH 7-units mol/kgwGAS_PHASE 0 -fixed_pressure -pressure 250 -volume 2.34 -temperature 60 CO2(g) 250SAVE solution 0ENDSOLUTION 1-50 -temperature 60 -pH 7-units mol/kgwAl 6.370e-04Ca 7.924e-04Cl 1.700e+00 chargeFe 5.638e-09K 7.000e-01Mg 9.263e-09Na 9.998e-01Si 1.845e-04KINETICS 1-50Albite -m 1.6 -m0 1.6 -parms 29.23 0.001 -tol 1e-06Anorthite -m 1.75 -m0 1.75 -parms 35 0.001 -tol 1e-06Laumontite -m 3.35 -m0 3.35 -parms 110.45 0.001 -tol 1e-06Smectite -m 21.81 -m0 21.81 -parms 8724 0.001 -tol 1e-06Kaolinite -m 6.71 -m0 6.71 -parms 2008 0.001 -tol 1e-06Dawsonite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06-cvode true-bad_step_max 5000INCREMENTAL_REACTIONS trueEND TRANSPORT-cells 5-shifts 5-time_step 10 yr-flow_direction diffusion_only-boundary_conditions constant constant -diffusion_coefficient 5e-10-lengths 5*1-punch_frequency 1-fix_current 1e-8-multi_D true 1e-9 0.10 0.01 1 true-porosities 5*0.10-implicit true 1-punch 1-5SELECTED_OUTPUT 1 -reset falseUSER_PUNCH 1-headings TIME Cell Porosity pH -start10 PUNCH TOTAL_TIME20 PUNCH CELL_NO30 PUNCH GET_POR(CELL_NO) 40 PUNCH -La("H+")100 REM calculate the porosity110 dv = KIN_DELTA("Anorthite")*PHASE_VM("Anorthite") + KIN_DELTA("Albite")*PHASE_VM("Albite") + KIN_DELTA("Laumontite")*PHASE_VM("Laumontite")+ KIN_DELTA("Kaolinite")*PHASE_VM("Kaolinite") + KIN_DELTA("Smectite")*PHASE_VM("Smectite")+ KIN_DELTA("Dawsonite")*PHASE_VM("Dawsonite")1110 Vtot = 90001120 dPor = dv/Vtot 1130 new_por = GET_POR(CELL_NO) - dPor 1140 CHANGE_POR(new_por,cell_no) -end USER_GRAPH 1 -headings Dis Por -axis_titles "Distance" "Porosity" -initial_solutions false -connect_simulations false -plot_concentration_vs x -start10 GRAPH_X DIST20 GRAPH_Y GET_POR(CELL_NO) -end -active trueEND
#PRINT; -reset falsePHASESDawsonite NaAlCO3(OH)2 +3.0000 H+ = + 1.0000 Al+++ + 1.0000 HCO3- + 1.0000 Na+ + 2.0000 H2O log_k 4.3464 -delta_H -76.3549 kJ/mol # Calculated enthalpy of reaction Dawsonite -analytic -1.1393e+002 -2.3487e-002 7.1758e+003 4.0900e+001 1.2189e+002 -Vm 59Smectite Ca.025Na.1K.2Fe.5Fe.2Mg1.15Al1.25Si3.5H2O12 +8.0000 H+ + 2.0000 H2O = + 0.0250 Ca++ + 0.1000 Na+ + 0.2000 Fe+++ + 0.2000 K+ + 0.5000 Fe++ + 1.1500 Mg++ + 1.2500 Al+++ + 3.5000H4SiO4 log_k 17.4200 -delta_H -199.841 kJ/mol # Calculated enthalpy of reaction -analytic -9.6102e+000 1.2551e-003 1.8157e+004 -7.9862e+000 -1.3005e+006 -Vm 140Laumontite CaAl2Si4O12:4H2O +8.0000 H+ = + 1.0000 Ca++ + 2.0000 Al+++ + 4.0000 H4SiO4 #+ 8.0000 H2O log_k 13.6667 -delta_H -184.657 kJ/mol # Calculated enthalpy of reaction Laumontite -analytic 1.1904e+000 8.1763e-003 1.9005e+004 -1.4561e+001 -1.5851e+006 -Vm 207.53CO2(g) CO2 = CO2 -log_k -1.468 -delta_h -4.776 kcal -analytic 10.5624 -2.3547e-2 -3972.8 0 5.8746e5 1.9194e-5 -T_c 304.2 # critical T, K -P_c 72.86 # critical P, atm -Omega 0.225 # acentric factor ENDRATES Laumontite-start10 SR_mineral=SR("Laumontite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Laumontite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Anorthite-start10 SR_mineral=SR("anorthite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Anorthite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endAlbite-start10 SR_mineral=SR("Albite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.92e-11*EXP((-65000/8.3145)*(1/Tk-1/298.15))70 k_neut = 2.75e-13*EXP((-69800/8.3145)*(1/Tk-1/298.15))80 k_base = 2.51e-16*EXP((-71000/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*(act("H+")^(0.457)) + k_neut + k_base*act("H+")^(-0.572)100 r = (k_rateconst) * SA * (1-SR("Albite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endKaolinite-start10 SR_mineral=SR("Kaolinite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 4.9e-12*EXP((-65900/8.3145)*(1/Tk-1/298.15))70 k_neut = 6.92e-14*EXP((-22200/8.3145)*(1/Tk-1/298.15))80 k_base = 8.91e-18*EXP((-17900/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.777 + k_neut + k_base*act("H+")^(-0.472)100 r = k_rateconst * SA * (1-SR("Kaolinite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Illite-start10 SR_mineral=SR("Illite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.05e-11*EXP(-23600/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.34100 r = k_rateconst * SA * (1-SR("Illite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Smectite-start10 SR_mineral=SR("Smectite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=1100 r = 5.62e-14* SA * (1-SR("Smectite"))*PARM(2)*act("H+")^0.5150 moles = r * TIME200 SAVE moles-end Dawsonite-start10 SR_mineral=SR("Dawsonite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.457e-4*EXP(-36100/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.26e-9*EXP(-62760/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut 100 r = k_rateconst * SA * (1-SR("Dawsonite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endENDSOLUTION 0 -temperature 60 -pH 7-units mol/kgwGAS_PHASE 0 -fixed_pressure -pressure 250 -volume 2.34 -temperature 60 CO2(g) 250SAVE solution 0ENDSOLUTION 1 -temperature 60 -pressure 250-pH 7-units mol/kgwAl 6.370e-04Ca 7.924e-04Cl 1.700e+00 chargeFe 5.638e-09K 7.000e-01Mg 9.263e-09Na 9.998e-01Si 1.845e-04ENDUSE solution 1EQUILIBRIUM_PHASES 101AlbiteAnorthiteLaumontiteSmectiteKaoliniteSAVE solution 1-50ENDKINETICS 1-50Albite -m 1.6 -m0 1.6 -parms 29.23 0.001 -tol 1e-06Anorthite -m 1.75 -m0 1.75 -parms 35 0.001 -tol 1e-06Laumontite -m 3.35 -m0 3.35 -parms 110.45 0.001 -tol 1e-06Smectite -m 21.81 -m0 21.81 -parms 8724 0.001 -tol 1e-06Kaolinite -m 6.71 -m0 6.71 -parms 2008 0.001 -tol 1e-06Dawsonite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06-cvode true-bad_step_max 5000INCREMENTAL_REACTIONS trueEND TRANSPORT-cells 5-shifts 2-time_step 10 yr-flow_direction diffusion_only-boundary_conditions constant constant-diffusion_coefficient 5e-10-lengths 5*1-punch_frequency 1-fix_current 1e-8-multi_D true 1e-9 0.10 0.01 1 true-porosities 5*0.10-implicit true 1-punch_cells 1-5-print_cells 1-5SELECTED_OUTPUT 1 -reset falseUSER_PUNCH 1-headings TIME Cell Porosity pH-start10 PUNCH TOTAL_TIME20 PUNCH CELL_NO30 PUNCH GET_POR(CELL_NO) 40 PUNCH -La("H+")100 REM calculate the porosity110 dv = KIN_DELTA("Anorthite")*PHASE_VM("Anorthite") + KIN_DELTA("Albite")*PHASE_VM("Albite") + KIN_DELTA("Laumontite")*PHASE_VM("Laumontite")+ KIN_DELTA("Kaolinite")*PHASE_VM("Kaolinite") + KIN_DELTA("Smectite")*PHASE_VM("Smectite")+ KIN_DELTA("Dawsonite")*PHASE_VM("Dawsonite")1110 Vtot = 90001120 dPor = dv/Vtot 1130 new_por = GET_POR(CELL_NO) - dPor 1140 CHANGE_POR(new_por,cell_no) -end USER_GRAPH 1 -headings Dis Por -axis_titles "Distance" "Porosity" -initial_solutions false -connect_simulations false -plot_concentration_vs x -start10 GRAPH_X DIST20 GRAPH_Y GET_POR(CELL_NO) -end -active trueEND
#PRINT; -reset falsePHASESDawsonite NaAlCO3(OH)2 +3.0000 H+ = + 1.0000 Al+++ + 1.0000 HCO3- + 1.0000 Na+ + 2.0000 H2O log_k 4.3464 -delta_H -76.3549 kJ/mol # Calculated enthalpy of reaction Dawsonite -analytic -1.1393e+002 -2.3487e-002 7.1758e+003 4.0900e+001 1.2189e+002 -Vm 59Smectite Ca.025Na.1K.2Fe.5Fe.2Mg1.15Al1.25Si3.5H2O12 +8.0000 H+ + 2.0000 H2O = + 0.0250 Ca++ + 0.1000 Na+ + 0.2000 Fe+++ + 0.2000 K+ + 0.5000 Fe++ + 1.1500 Mg++ + 1.2500 Al+++ + 3.5000H4SiO4 log_k 17.4200 -delta_H -199.841 kJ/mol # Calculated enthalpy of reaction -analytic -9.6102e+000 1.2551e-003 1.8157e+004 -7.9862e+000 -1.3005e+006 -Vm 140Laumontite CaAl2Si4O12:4H2O +8.0000 H+ = + 1.0000 Ca++ + 2.0000 Al+++ + 4.0000 H4SiO4 #+ 8.0000 H2O log_k 13.6667 -delta_H -184.657 kJ/mol # Calculated enthalpy of reaction Laumontite -analytic 1.1904e+000 8.1763e-003 1.9005e+004 -1.4561e+001 -1.5851e+006 -Vm 207.53AnkeriteCaMg0.3Fe0.7(CO3)2 + 2H+ = Ca++ + 0.3Mg++ + 0.7Fe++ + 2HCO3- log_k -17.4 delta_h 6.98 kJ-analytic -1.8649e+03 -2.9583e-01 1.0468e+05 6.7554e+02 -6.0514e+06 -Vm 69CO2(g) CO2 = CO2 -log_k -1.468 -delta_h -4.776 kcal -analytic 10.5624 -2.3547e-2 -3972.8 0 5.8746e5 1.9194e-5 -T_c 304.2 # critical T, K -P_c 72.86 # critical P, atm -Omega 0.225 # acentric factor ENDRATES Laumontite-start10 SR_mineral=SR("Laumontite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Laumontite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Anorthite-start10 SR_mineral=SR("anorthite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Anorthite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Ankerite-start10 SR_mineral=SR("Ankerite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.59e-4*EXP((-45000/8.3145)*(1/Tk-1/298.15))70 k_neut = 1.26e-9*EXP((-62800/8.3145)*(1/Tk-1/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = (k_rateconst) * SA * (1-SR("Ankerite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end K-feldspar-start10 SR_mineral=SR("K-feldspar")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 8.71e-11*EXP((-51700/8.3145)*(1/Tk-1/298.15))70 k_neut = 3.89e-13*EXP((-38000/8.3145)*(1/Tk-1/298.15))80 k_base = 6.31e-22*EXP((-94100/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.457 + k_neut + k_base*act("H+")^(-0.823)100 r = k_rateconst * SA * (1-SR("K-Feldspar"))*PARM(2)150 moles = r * TIME200 SAVE moles-endAlbite-start10 SR_mineral=SR("Albite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.92e-11*EXP((-65000/8.3145)*(1/Tk-1/298.15))70 k_neut = 2.75e-13*EXP((-69800/8.3145)*(1/Tk-1/298.15))80 k_base = 2.51e-16*EXP((-71000/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*(act("H+")^(0.457)) + k_neut + k_base*act("H+")^(-0.572)100 r = (k_rateconst) * SA * (1-SR("Albite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endKaolinite-start10 SR_mineral=SR("Kaolinite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 4.9e-12*EXP((-65900/8.3145)*(1/Tk-1/298.15))70 k_neut = 6.92e-14*EXP((-22200/8.3145)*(1/Tk-1/298.15))80 k_base = 8.91e-18*EXP((-17900/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.777 + k_neut + k_base*act("H+")^(-0.472)100 r = k_rateconst * SA * (1-SR("Kaolinite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Illite-start10 SR_mineral=SR("Illite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.05e-11*EXP(-23600/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.34100 r = k_rateconst * SA * (1-SR("Illite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Smectite-start10 SR_mineral=SR("Smectite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=1100 r = 5.62e-14* SA * (1-SR("Smectite"))*PARM(2)*act("H+")^0.5150 moles = r * TIME200 SAVE moles-endSiderite-start10 SR_mineral=SR("Siderite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.59e-4*EXP((-45000/8.3145)*(1/Tk-1/298.15))70 k_neut = 1.26e-9*EXP((-62800/8.3145)*(1/Tk-1/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = (k_rateconst) * SA * (1-SR("Siderite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Chalcedony-start10 SR_mineral=SR("Chalcedony")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=170 k_neut = 1.26e-14*EXP((-87500/8.3145)*(1/TK-1/298.15))90 k_rateconst = k_neut 100 r = k_rateconst * SA * (1-SR("Chalcedony"))*PARM(2)150 moles = r * TIME200 SAVE moles-endCalcite-start10 SR_mineral=SR("Calcite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 5e-1*EXP(-14400/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.55e-6*EXP(-23500/8.314*(1.0/TK-1.0/298.15))80 k_base = 3.31e-4*EXP(-35400/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+") + k_neut + k_base*act("H+")100 r = k_rateconst * SA * (1-SR("Calcite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Pyrite-start10 SR_mineral=SR("Pyrite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=170 k_acid = 4e-11*EXP(-62760/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.5 100 r = k_rateconst * SA * (1-SR("Pyrite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Dawsonite-start10 SR_mineral=SR("Dawsonite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.457e-4*EXP(-36100/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.26e-9*EXP(-62760/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = k_rateconst * SA * (1-SR("Dawsonite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endENDSOLUTION 0 -temperature 60 -pH 7-units mol/kgwGAS_PHASE 0 -fixed_pressure -pressure 250 -volume 2.34 -temperature 60 CO2(g) 250SAVE solution 0ENDSOLUTION 1 -temperature 60 -pressure 250-pH 7-units mol/kgwNa 1.7Cl 1.7 chargeENDUSE solution 1EQUILIBRIUM_PHASES 101Albite#AnorthiteLaumontiteChalcedonyPyrite#IlliteSmectiteKaoliniteCalciteSideriteK-feldsparSAVE solution 1-50ENDKINETICS 1-50Albite -m 1.6 -m0 1.6 -parms 29.23 0.001 -tol 1e-06Anorthite -m 1.75 -m0 1.75 -parms 35 0.001 -tol 1e-06Laumontite -m 3.35 -m0 3.35 -parms 110.45 0.001 -tol 1e-06Chalcedony -m 62.77 -m0 62.77 -parms 258.34 0.001 -tol 1e-06Illite -m 14.44 -m0 14.44 -parms 2628 0.001 -tol 1e-06Pyrite -m 6.09 -m0 6.09 -parms 26.52 0.001 -tol 1e-06Smectite -m 21.81 -m0 21.81 -parms 8724 0.001 -tol 1e-06Calcite -m 1.5 -m0 1.5 -parms 10.5 0.001 -tol 1e-06Siderite -m 9.96 -m0 9.96 -parms 53.24 0.001 -tol 1e-06Kaolinite -m 6.71 -m0 6.71 -parms 2008 0.001 -tol 1e-06K-feldspar -m 0.87 -m0 0.87 -parms 17.19 0.001 -tol 1e-06Dawsonite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06Ankerite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06-cvode true-bad_step_max 5000INCREMENTAL_REACTIONS trueEND TRANSPORT-cells 5-shifts 3-time_step 5 yr-flow_direction diffusion_only-boundary_conditions constant constant-diffusion_coefficient 5e-10-lengths 5*1-punch_frequency 1-fix_current 1e-8-multi_D true 1e-9 0.10 0.01 1 true-porosities 5*0.10-implicit true 1-punch_cells 1-5-print_cells 1-5SELECTED_OUTPUT 1 -reset falseUSER_PUNCH 1-headings TIME Cell Porosity pH-start10 PUNCH TOTAL_TIME20 PUNCH CELL_NO30 PUNCH GET_POR(CELL_NO)40 PUNCH -La("H+")100 REM calculate the porosity110 dv = KIN_DELTA("Ankerite")*PHASE_VM("Ankerite")+ KIN_DELTA("Anorthite")*PHASE_VM("Anorthite") + KIN_DELTA("Siderite")*PHASE_VM("Siderite") + KIN_DELTA("K-feldspar")*PHASE_VM("K-feldspar") + KIN_DELTA("Albite")*PHASE_VM("Albite") + KIN_DELTA("Laumontite")*PHASE_VM("Laumontite")+ KIN_DELTA("Kaolinite")*PHASE_VM("Kaolinite") + KIN_DELTA("Illite")*PHASE_VM("Illite") + KIN_DELTA("Calcite")*PHASE_VM("Calcite") + KIN_DELTA("Pyrite")*PHASE_VM("Pyrite") + KIN_DELTA("Smectite")*PHASE_VM("Smectite")+ KIN_DELTA("Chalcedony")*PHASE_VM("Chalcedony") + KIN_DELTA("Dawsonite")*PHASE_VM("Dawsonite")1110 Vtot = 80001120 dPor = dv/Vtot 1130 new_por = GET_POR(CELL_NO) - dPor 1140 CHANGE_POR(new_por,cell_no) -end USER_GRAPH 1 -headings Dis Por -axis_titles "Distance" "Porosity" -initial_solutions false -connect_simulations false -plot_concentration_vs x -start10 GRAPH_X DIST20 GRAPH_Y GET_POR(CELL_NO) -end -active trueEND
#PRINT; -reset falsePHASESDawsonite NaAlCO3(OH)2 +3.0000 H+ = + 1.0000 Al+++ + 1.0000 HCO3- + 1.0000 Na+ + 2.0000 H2O log_k 4.3464 -delta_H -76.3549 kJ/mol # Calculated enthalpy of reaction Dawsonite -analytic -1.1393e+002 -2.3487e-002 7.1758e+003 4.0900e+001 1.2189e+002 -Vm 59Smectite Ca.025Na.1K.2Fe.5Fe.2Mg1.15Al1.25Si3.5H2O12 +8.0000 H+ + 2.0000 H2O = + 0.0250 Ca++ + 0.1000 Na+ + 0.2000 Fe+++ + 0.2000 K+ + 0.5000 Fe++ + 1.1500 Mg++ + 1.2500 Al+++ + 3.5000H4SiO4 log_k 17.4200 -delta_H -199.841 kJ/mol # Calculated enthalpy of reaction -analytic -9.6102e+000 1.2551e-003 1.8157e+004 -7.9862e+000 -1.3005e+006 -Vm 140Laumontite CaAl2Si4O12:4H2O +8.0000 H+ = + 1.0000 Ca++ + 2.0000 Al+++ + 4.0000 H4SiO4 #+ 8.0000 H2O log_k 13.6667 -delta_H -184.657 kJ/mol # Calculated enthalpy of reaction Laumontite -analytic 1.1904e+000 8.1763e-003 1.9005e+004 -1.4561e+001 -1.5851e+006 -Vm 207.53AnkeriteCaMg0.3Fe0.7(CO3)2 + 2H+ = Ca++ + 0.3Mg++ + 0.7Fe++ + 2HCO3- log_k -17.4 delta_h 6.98 kJ-analytic -1.8649e+03 -2.9583e-01 1.0468e+05 6.7554e+02 -6.0514e+06 -Vm 69CO2(g) CO2 = CO2 -log_k -1.468 -delta_h -4.776 kcal -analytic 10.5624 -2.3547e-2 -3972.8 0 5.8746e5 1.9194e-5 -T_c 304.2 # critical T, K -P_c 72.86 # critical P, atm -Omega 0.225 # acentric factor ENDRATES Laumontite-start10 SR_mineral=SR("Laumontite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Laumontite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Anorthite-start10 SR_mineral=SR("anorthite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 3.16e-4*EXP(-16600/8.314*(1.0/TK-1.0/298.15))70 k_neut = 7.59e-10*EXP(-17821/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^1.411 + k_neut100 r = k_rateconst * SA * (1-SR("Anorthite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Ankerite-start10 SR_mineral=SR("Ankerite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.59e-4*EXP((-45000/8.3145)*(1/Tk-1/298.15))70 k_neut = 1.26e-9*EXP((-62800/8.3145)*(1/Tk-1/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = (k_rateconst) * SA * (1-SR("Ankerite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end K-feldspar-start10 SR_mineral=SR("K-feldspar")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 8.71e-11*EXP((-51700/8.3145)*(1/Tk-1/298.15))70 k_neut = 3.89e-13*EXP((-38000/8.3145)*(1/Tk-1/298.15))80 k_base = 6.31e-22*EXP((-94100/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.457 + k_neut + k_base*act("H+")^(-0.823)100 r = k_rateconst * SA * (1-SR("K-Feldspar"))*PARM(2)150 moles = r * TIME200 SAVE moles-endAlbite-start10 SR_mineral=SR("Albite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.92e-11*EXP((-65000/8.3145)*(1/Tk-1/298.15))70 k_neut = 2.75e-13*EXP((-69800/8.3145)*(1/Tk-1/298.15))80 k_base = 2.51e-16*EXP((-71000/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*(act("H+")^(0.457)) + k_neut + k_base*act("H+")^(-0.572)100 r = (k_rateconst) * SA * (1-SR("Albite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endKaolinite-start10 SR_mineral=SR("Kaolinite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 4.9e-12*EXP((-65900/8.3145)*(1/Tk-1/298.15))70 k_neut = 6.92e-14*EXP((-22200/8.3145)*(1/Tk-1/298.15))80 k_base = 8.91e-18*EXP((-17900/8.3145)*(1/Tk-1/298.15))90 k_rateconst = k_acid*act("H+")^0.777 + k_neut + k_base*act("H+")^(-0.472)100 r = k_rateconst * SA * (1-SR("Kaolinite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Illite-start10 SR_mineral=SR("Illite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.05e-11*EXP(-23600/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.34100 r = k_rateconst * SA * (1-SR("Illite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Smectite-start10 SR_mineral=SR("Smectite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=1100 r = 5.62e-14* SA * (1-SR("Smectite"))*PARM(2)*act("H+")^0.5150 moles = r * TIME200 SAVE moles-endSiderite-start10 SR_mineral=SR("Siderite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 1.59e-4*EXP((-45000/8.3145)*(1/Tk-1/298.15))70 k_neut = 1.26e-9*EXP((-62800/8.3145)*(1/Tk-1/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = (k_rateconst) * SA * (1-SR("Siderite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Chalcedony-start10 SR_mineral=SR("Chalcedony")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=170 k_neut = 1.26e-14*EXP((-87500/8.3145)*(1/TK-1/298.15))90 k_rateconst = k_neut100 r = k_rateconst * SA * (1-SR("Chalcedony"))*PARM(2)150 moles = r * TIME200 SAVE moles-endCalcite-start10 SR_mineral=SR("Calcite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 5e-1*EXP(-14400/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.55e-6*EXP(-23500/8.314*(1.0/TK-1.0/298.15))80 k_base = 3.31e-4*EXP(-35400/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+") + k_neut + k_base*act("H+")100 r = k_rateconst * SA * (1-SR("Calcite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Pyrite-start10 SR_mineral=SR("Pyrite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=170 k_acid = 4e-11*EXP(-62760/8.314*(1.0/TK-1.0/298.15))90 k_rateconst = k_acid*act("H+")^0.5100 r = k_rateconst * SA * (1-SR("Pyrite"))*PARM(2)150 moles = r * TIME200 SAVE moles-end Dawsonite-start10 SR_mineral=SR("Dawsonite")20 if (M<0) then goto 20030 if (M=0 and SR_mineral<1) then goto 20040 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.6750 if (SA<=0) then SA=160 k_acid = 6.457e-4*EXP(-36100/8.314*(1.0/TK-1.0/298.15))70 k_neut = 1.26e-9*EXP(-62760/8.314*(1.0/TK-1.0/298.15))80 k_base = 090 k_rateconst = k_acid*act("H+")^0.5 + k_neut100 r = k_rateconst * SA * (1-SR("Dawsonite"))*PARM(2)150 moles = r * TIME200 SAVE moles-endENDSOLUTION 0 -temperature 60 -pH 7-units mol/kgwGAS_PHASE 0 -fixed_pressure -pressure 250 -volume 2.34 -temperature 60 CO2(g) 250SAVE solution 0ENDSOLUTION 1 -temperature 60 -pressure 250-pH 7-units mol/kgwNa 1.7Cl 1.7 chargeENDUSE solution 1EQUILIBRIUM_PHASES 101AlbiteAnorthiteLaumontite#ChalcedonyPyrite#IlliteSmectiteKaoliniteCalciteSideriteK-feldsparSAVE solution 1-50ENDKINETICS 1-50Albite -m 1.6 -m0 1.6 -parms 29.23 0.001 -tol 1e-06Anorthite -m 1.75 -m0 1.75 -parms 35 0.001 -tol 1e-06C -m 3.35 -m0 3.35 -parms 110.45 0.001 -tol 1e-06Chalcedony -m 62.77 -m0 62.77 -parms 258.34 0.001 -tol 1e-06Illite -m 14.44 -m0 14.44 -parms 2628 0.001 -tol 1e-06Pyrite -m 6.09 -m0 6.09 -parms 26.52 0.001 -tol 1e-06Smectite -m 21.81 -m0 21.81 -parms 8724 0.001 -tol 1e-06Calcite -m 1.5 -m0 1.5 -parms 10.5 0.001 -tol 1e-06Siderite -m 9.96 -m0 9.96 -parms 53.24 0.001 -tol 1e-06Kaolinite -m 6.71 -m0 6.71 -parms 2008 0.001 -tol 1e-06K-feldspar -m 0.87 -m0 0.87 -parms 17.19 0.001 -tol 1e-06Dawsonite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06Ankerite -m 1e-9 -m0 1e-9 -parms 1 1 -tol 1e-06-cvode true-bad_step_max 5000INCREMENTAL_REACTIONS trueEND TRANSPORT-cells 5-shifts 5-time_step 5 yr-flow_direction diffusion_only-boundary_conditions constant constant-diffusion_coefficient 5e-10-lengths 5*1-punch_frequency 1-fix_current 1e-8-multi_D true 1e-9 0.10 0.01 1 true-porosities 5*0.10-implicit true 1-punch_cells 1-5-print_cells 1-5SELECTED_OUTPUT 1 -reset falseUSER_PUNCH 1-headings TIME Cell Porosity pH-start10 PUNCH TOTAL_TIME20 PUNCH CELL_NO30 PUNCH GET_POR(CELL_NO)40 PUNCH -La("H+")100 REM calculate the porosity110 dv = KIN_DELTA("Ankerite")*PHASE_VM("Ankerite")+ KIN_DELTA("Anorthite")*PHASE_VM("Anorthite") + KIN_DELTA("Siderite")*PHASE_VM("Siderite") + KIN_DELTA("K-feldspar")*PHASE_VM("K-feldspar") + KIN_DELTA("Albite")*PHASE_VM("Albite") + KIN_DELTA("Laumontite")*PHASE_VM("Laumontite")+ KIN_DELTA("Kaolinite")*PHASE_VM("Kaolinite") + KIN_DELTA("Illite")*PHASE_VM("Illite") + KIN_DELTA("Calcite")*PHASE_VM("Calcite") + KIN_DELTA("Pyrite")*PHASE_VM("Pyrite") + KIN_DELTA("Smectite")*PHASE_VM("Smectite")+ KIN_DELTA("Chalcedony")*PHASE_VM("Chalcedony") + KIN_DELTA("Dawsonite")*PHASE_VM("Dawsonite")1110 Vtot = 80001120 dPor = dv/Vtot 1130 new_por = GET_POR(CELL_NO) - dPor 1140 CHANGE_POR(new_por,cell_no) -end USER_GRAPH 1 -headings Dis Por -axis_titles "Distance" "Porosity" -initial_solutions false -connect_simulations false -plot_concentration_vs x -start10 GRAPH_X DIST20 GRAPH_Y GET_POR(CELL_NO) -end -active trueEND