# This is a library of RATES blocks for PHREEQC in BASIC scripts # A total of about 100 mineral phases are included in this library # Please cite Zhang et al. (2019) Computer & Geoscience. # Kindly send comments or corrections to Professor Chen Zhu (supcrt@indiana.edu) # More info and updates may be available at https://www.indiana.edu/~hydrogeo/ # To use this kinetic database, you can copy the relevant RATES script to the input file or database # Two parameters are needed for rate calculation (defined in -parms command) # Also, the stoichiometry and logK value of the relevant PHASES are also needed. You can find the relevant phases in the compnaion phases.txt file. # The applicable temperature and pH (and other conditions) range for each phases are commented in each RATES block # In addition, a KINETIC block is also needed to perform any kinetic calculations # An example of the KINETIC block can look as follows ########### # KINETICS 1 # Quartz # -m 1 # moles of solid per kg of water # -parms 10 1 # total surface area per kg of water (m2/kgw) and the scaling factor # -steps 100 200 300 day # define time steps ########### # see https://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/phreeqc3-html/phreeqc3-24.htm#50528257_55637 for more options in KINETICS BLOCK RATES ############ #SiO2(a) ############ SiO2(a) # from Palandri and Kharaka 2004 # experimental condition range T=40-250C, pH~5.7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=6.64 22 E2=74526 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("SiO2(a)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #labradorite ############# labradorite # from Palandri and Kharaka 2004 # experimental condition range T=25-250C, pH=0.5-6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=5.01E-01 12 E1=42064 13 n1=0.626 20 rem neutral solution parameters 21 a2=1.00E-03 22 E2=45155 30 rem base solution parameters 31 a3=5.62E-10 32 E3=45988 33 n2=-0.782 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("labradorite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #anorthite ############## anorthite # from Palandri and Kharaka 2004 # experimental condition range T=25-95C, pH=2-10.2 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.58E-01 12 E1=16601 13 n1=1.411 20 rem neutral solution parameters 21 a2=1.00E-06 22 E2=17821 30 rem base solution parameters 31 a3=1.00E-22 32 E3=18150 33 n2=-1.767 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("anorthite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############### #chalcedony ############## chalcedony # from Palandri and Kharaka 2004 # experimental condition range T not specified, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=3.47E-02 22 E2=62800 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("chalcedony") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############### #nepheline ############## nepheline # from Palandri and Kharaka 2004 # experimental condition range T=25-80C, pH=3-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.99E+08 12 E1=62942 13 n1=1.134 20 rem neutral solution parameters 21 a2=7.86E+02 22 E2=65378 30 rem base solution parameters 31 a3=7.10E-05 32 E3=37758 33 n2=-0.200 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("nepheline") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #leucite ############ leucite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=3-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.42E+17 12 E1=132153 13 n1=0.700 20 rem neutral solution parameters 21 a2=1.07E+04 22 E2=75516 30 rem base solution parameters 31 a3=1.82E-01 32 E3=56637 33 n2=-0.200 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("leucite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #forsterite ############ forsterite # from Palandri and Kharaka 2004 # experimental condition range T=25-65C, pH=2-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=8.38E+04 12 E1=67206 13 n1=0.470 20 rem neutral solution parameters 21 a2=1.58E+03 22 E2=79000 30 rem base solution parameters 31 a3=1.00E-07 32 E3=56637 33 n2=-0.600 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("forsterite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #epidote(ordered) #Epidote in Palandri and Kharaka (2004) ########## epidote(ordered) # from Palandri and Kharaka 2004 # experimental condition range T=25-90C, pH=0.2-10.6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.03E+01 12 E1=71052 13 n1=0.338 20 rem neutral solution parameters 21 a2=2.47 22 E2=70671 30 rem base solution parameters 31 a3=3.40E-04 32 E3=79118 33 n2=-0.556 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("epidote(ordered)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #augite ############ augite # from Palandri and Kharaka 2004 # experimental condition range T=8-75C, pH=2.5-7.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.00E+06 12 E1=78000 13 n1=0.7 20 rem neutral solution parameters 21 a2=5.00E+01 22 E2=78000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("augite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #wollastonite ############## wollastonite # from Palandri and Kharaka 2004 # experimental condition range T=25-65C, pH=1.6-12.4 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.60E+04 12 E1=54651 13 n1=0.400 20 rem neutral solution parameters 21 a2=5 22 E2=54651 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("wollastonite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ #hornblende ############### hornblende # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-10.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.70E+06 12 E1=75516 13 n1=0.600 20 rem neutral solution parameters 21 a2=1.73E+06 22 E2=94395 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("hornblende") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #phlogopite ############# phlogopite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=4.82E-08 22 E2=29000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("phlogopite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #smectite ############ smectite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=1-13.92 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.41E-07 12 E1=23584 13 n1=0.340 20 rem neutral solution parameters 21 a2=2.24E-07 22 E2=34993 30 rem base solution parameters 31 a3=6.31E-07 32 E3=58922 33 n2=-0.400 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("smectite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #diopside ############# diopside # from Palandri and Kharaka 2004 # experimental condition range T=8-90C, pH=1-6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.00E+10 12 E1=96100 13 n1=0.710 20 rem neutral solution parameters 21 a2=1.00E-04 22 E2=40600 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("diopside") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #enstatite ########### enstatite # from Palandri and Kharaka 2004 # experimental condition range T=8-72C, pH=1-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.00E+05 12 E1=80000 13 n1=0.600 20 rem neutral solution parameters 21 a2=2.00E+01 22 E2=80000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("enstatite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #chrysotile ############## chrysotile # from Palandri and Kharaka 2004 # experimental condition range T=22-80C, pH=1-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=7.50 22 E2=73500 30 rem base solution parameters 31 a3=2.00E-01 32 E3=73500 33 n2=-0.230 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("chrysotile") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########## #talc ######### talc # from Palandri and Kharaka 2004 # experimental condition range T not specified, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=2.28E-05 22 E2=42000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("talc") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #hematite ########### hematite # from Palandri and Kharaka 2004 # experimental condition range T=25-50C, pH=0-5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=161.6 12 E1=66200 13 n1=01 20 rem neutral solution parameters 21 a2=9.96E-4 22 E2=66210 30 rem basic dependence parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("hematite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########## #brucite ########## brucite # from Palandri and Kharaka 2004 # experimental condition range T=25-75C, pH=1-5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=4.00E+05 12 E1=59000 13 n1=0.500 20 rem neutral solution parameters 21 a2=1.30E-01 22 E2=42000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("brucite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #diaspore ########### diaspore # from Palandri and Kharaka 2004 # experimental condition range T=250-325C, pH=8-10.46 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1.00E-05 22 E2=47529 30 rem base solution parameters 31 a3=5.29E-16 32 E3=47529 33 n2=-1.503 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("diaspore") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #magnesite ########### magnesite # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=0.2-12 # calcite activation energy is assumed # near equilibrium parameters p=4.0 and q=1.0 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.39E-4 12 E1=14400 13 n1=1.000 20 rem neutral solution parameters 21 a2=5.99E-6 22 E2=23500 30 rem CO2 denpendence parameters 31 a3=6.03E+05 32 E3=62800 33 n2=1.000 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("magnesite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*SR("CO2(g)")^n2 #CO2 rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral^4)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #anglesite ########### anglesite # from Palandri and Kharaka 2004 # experimental condition range T=30-60C, pH=2-7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.94E-01 12 E1=31266 13 n1=0.298 20 rem neutral solution parameters 21 a2=9.53E-02 22 E2=31266 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("anglesite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############### #anhydrite ############## anhydrite # from Palandri and Kharaka 2004 # experimental condition range T=25-50C, pH=~7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=2.05E-01 22 E2=14299 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("anhydrite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ #gypsum ############## gypsum # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=7 # No activation energy available. Rate only valid at 25C. -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1.64E-03 22 E2=0 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("gypsum") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #barite ########### barite # from Palandri and Kharaka 2004 # experimental condition range T=40-90C, pH=2-6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.09E-02 12 E1=30780 13 n1=0.220 20 rem neutral solution parameters 21 a2=3.13E-03 22 E2=30780 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("barite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #oligoclase ############# oligoclase # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=2-7 # albite activation energy is assumed -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=5.13E+01 12 E1=64975 13 n1=0.457 20 rem neutral solution parameters 21 a2=2.40 22 E2=69752 30 rem base solution parameters 31 a3=5.01E-05 32 E3=71037 33 n2=-0.572 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("oligoclase") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #pyrite ############ pyrite # from Palandri and Kharaka 2004 # experimental condition range T=20-40C, pH=1-4 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.82E+02 12 E1=56900 13 n1=-0.500 14 n3=0.500 30 rem neutral solution parameters 31 a3=2.64E+05 32 E3=56900 33 n2=0.500 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("pyrite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1*ACT("Fe+3")^n3 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK)*ACT("O2") #neutral rate expression 90 Rate=(Rate1+Rate2)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Almandine ########### Almandine # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-10.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.18E+11 12 E1=94395 13 n1=1 20 rem neutral solution parameters 21 a2=3.1E+07 22 E2=47529 30 rem base solution parameters 31 a3=8E-08 32 E3=37758 33 n2=-0.35 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Almandine") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Andradite ########### Andradite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-6.3 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.18E+11 12 E1=94395 13 n1=1 20 rem neutral solution parameters 21 a2=3.1E+07 22 E2=103835 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Andradite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Anthophyllite ########### Anthophyllite # from Palandri and Kharaka 2004 # experimental condition range T=25-90C, pH=1.2-3.8 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=9.89E-04 12 E1=51000 13 n1=1 20 rem neutral solution parameters 21 a2=4.96E-06 22 E2=51000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Anthophyllite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Cordierite ########### Cordierite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=2-6.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.13E+16 12 E1=113300 13 n1=1 20 rem neutral solution parameters 21 a2=5.73E-07 22 E2=28300 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Cordierite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Dawsonite ########### Dawsonite # from Palandri and Kharaka 2004 # experimental condition range T not specified, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1E+05 22 E2=62800 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Dawsonite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #Dolomite(ordered) ############ Dolomite(ordered) # from Palandri and Kharaka 2004 # experimental condition range T=1.5-65C, pH=0-10 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.34E+03 12 E1=36056 13 n1=0.500 20 rem neutral solution parameters 21 a2=4.05E+01 22 E2=52153 30 rem CO2 solution parameters 31 a3=9.59E+00 32 E3=34769 33 n2=0.500 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("dolomite(ordered)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*SR("CO2(g)")^n2 #CO2 rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Dolomite(disordered) ########### Dolomite(disordered) # from Palandri and Kharaka 2004 # experimental condition range T=1.5-65C, pH=0-10 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.49E+06 12 E1=56700 13 n1=0.5 20 rem neutral solution parameters 21 a2=1.25E+08 22 E2=95300 30 rem CO2 solution parameters 31 a3=4.33E+02 32 E3=45700 33 n2=0.5 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Dolomite(disordered)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*SR("CO2(g)")^n2 #CO2 rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Fayalite ########### Fayalite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=1.3-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=5.48E+11 12 E1=94400 13 n1=0 20 rem neutral solution parameters 21 a2=5.48E+02 22 E2=94400 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Fayalite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Fluorapatite ########### Fluorapatite # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=2.2-2.8 # uncertainty for Ea is large # Hydroxyapatite activation energy is assumed -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.18E+40 12 E1=250000 13 n1=0.613 20 rem neutral solution parameters 21 a2=6.32E+35 22 E2=250000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Fluorapatite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Fluorite ########### Fluorite # from Palandri and Kharaka 2004 # experimental condition range cannot be found -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=4.46E+05 12 E1=73000 13 n1=1 20 rem neutral solution parameters 21 a2=9.99E-02 22 E2=73000 30 rem base solution parameters 31 a3=4.33E+02 32 E3=45700 33 n2=0.5 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Fluorite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Glauconite ########### Glauconite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.24E+10 12 E1=85000 13 n1=0.7 20 rem neutral solution parameters 21 a2=6.2E+05 22 E2=85000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Glauconite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Glaucophane ########### Glaucophane # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=3-7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.96E+09 12 E1=85000 13 n1=0.7 20 rem neutral solution parameters 21 a2=2.78E+06 22 E2=94400 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Glaucophane") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Goethite ########### Goethite # from Palandri and Kharaka 2004 # experimental condition range T=30-50C, pH=0.13 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1.64E+07 22 E2=86500 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Goethite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Grossular ########### Grossular # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-6.3 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=6.09E+09 12 E1=84956 13 n1=1 20 rem neutral solution parameters 21 a2=3.1E+07 22 E2=103835 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Grossular") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Halite ########### Halite # from Palandri and Kharaka 2004 # experimental condition range T=25-80C, pH range not specified, c(NaCl)=5.13mM -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1.23E+01 22 E2=7442 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Halite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Hydroxyapatite ########### Hydroxyapatite # from Palandri and Kharaka 2004 # experimental condition range T=25-28C, pH=2.2-2.8 # uncertainty for Ea is large -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=5.12E-05 12 E1=0 13 n1=0.171 20 rem neutral solution parameters 21 a2=1E-06 22 E2=0 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Hydroxyapatite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Ilmenite ########### Ilmenite # from Palandri and Kharaka 2004 # experimental condition range T=2-65C, pH=1.15-6.01 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.92E-02 12 E1=37873 13 n1=0.421 20 rem neutral solution parameters 21 a2=3E-05 22 E2=37873 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Ilmenite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Jadeite ########### Jadeite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0-10.7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.42E+17 12 E1=132153 13 n1=0.7 20 rem neutral solution parameters 21 a2=8.67E+05 22 E2=94395 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Jadeite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Lizardite ########### Lizardite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=1.5-9 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.39E+07 12 E1=75516 13 n1=0.8 20 rem neutral solution parameters 21 a2=3.33E-03 22 E2=56637 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Lizardite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Magnetite ########### Magnetite # from Palandri and Kharaka 2004 # experimental condition range T=2-65C, pH=1.01-6.67 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=4.66E-06 12 E1=18600 13 n1=0.279 20 rem neutral solution parameters 21 a2=3.01E-08 22 E2=18600 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Magnetite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Paragonite ########### Paragonite # from Palandri and Kharaka 2004 # experimental condition range T not specified, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=7.15E-10 22 E2=22000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Paragonite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Prehnite ########### Prehnite # from Palandri and Kharaka 2004 # experimental condition range T=25-90C, pH=1.29-10.82 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.79E+03 12 E1=80487 13 n1=0.256 20 rem neutral solution parameters 21 a2=1.58E+03 22 E2=93396 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Prehnite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Pyrophyllite ########### Pyrophyllite # from Palandri and Kharaka 2004 # experimental condition range T not specified, pH=4-5.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=4.82E-08 22 E2=29000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Pyrophyllite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Riebeckite ########### Riebeckite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.67E+02 12 E1=56637 13 n1=0.7 20 rem neutral solution parameters 21 a2=1.17E-04 22 E2=47198 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Riebeckite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Mg-Staurolite #Staurolite in Palandri and Kharaka (2004) ########### Mg-Staurolite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.67E-15 12 E1=37785 13 n1=1 20 rem neutral solution parameters 21 a2=5.28E-03 22 E2=56637 30 rem base solution parameters 31 a3=2.36E-07 32 E3=47198 33 n2=-0.556 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Staurolite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Tremolite ########### Tremolite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.1-11 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=8.08E-06 12 E1=18879 13 n1=0.7 20 rem neutral solution parameters 21 a2=8.67E+05 22 E2=94395 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Tremolite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Uraninite ########### Uraninite # from Palandri and Kharaka 2004 # experimental condition range T=2-23C, neutral pH in DI water -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=4.33E-03 22 E2=32070 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Uraninite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Zoisite ########### Zoisite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=1.8-6.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.19E+04 12 E1=66077 13 n1=0.5 20 rem neutral solution parameters 21 a2=1.07E+02 22 E2=75516 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Zoisite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #As2O3(a) ########### As2O3(a) # from Palandri and Kharaka 2004 # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=0 22 E2=0 30 rem base solution parameters 31 a3=1.28E-16 32 E3=5000 33 n2=-1.26 34 n3=0.42 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("As2O3(a)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2*ACT("O2")^n3 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #As2S3(a) ########### As2S3(a) # from Palandri and Kharaka 2004 # experimental condition range T=25-40C, pH=7.3-9.4 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=4.95E-09 22 E2=8700 23 n3=0.180 30 rem base solution parameters 31 a3=1.36E-16 32 E3=8700 33 n2=-1.26 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("As2S3(a)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK)*ACT("O2")^n3 #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Andesine ########### Andesine # from Palandri and Kharaka 2004 # experimental condition range T=22-250C, pH=2-9 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.16E+0 12 E1=53519 13 n1=0.541 20 rem neutral solution parameters 21 a2=3.98E-02 22 E2=57454 30 rem base solution parameters 31 a3=1E-07 32 E3=56637 33 n2=-0.6 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Andesine") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Bronzite ########### Bronzite # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=1-6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=9.31E-01 12 E1=47198 13 n1=0.65 20 rem neutral solution parameters 21 a2=7.53E-01 22 E2=66077 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Bronzite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Bytownite ########### Bytownite # from Palandri and Kharaka 2004 # experimental condition range T=5-35C, pH=2-7.2 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.95E-01 12 E1=29332 13 n1=1.018 20 rem neutral solution parameters 21 a2=5.01E-05 22 E2=31488 30 rem base solution parameters 31 a3=2.51E-16 32 E3=32069 33 n2=-1.274 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Bytownite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Pyrrhotite(Monoclinic) ########### Pyrrhotite(Monoclinic) # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=2-2.75 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.29E+0 12 E1=50800 13 n1=-0.597 14 n3=0.355 20 rem neutral solution parameters 21 a2=0 22 E2=0 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Pyrrhotite(Monoclinic)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1*ACT("Fe+3")^n3 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Pyrrhotite(Hexagonal) ########### Pyrrhotite(Hexagonal) # from Palandri and Kharaka 2004 # experimental condition range T=25C, pH=2-2.75 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.78E+04 12 E1=63000 13 n1=-0.09 20 rem neutral solution parameters 21 a2=0 22 E2=0 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Pyrrhotite(Hexagonal)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1*ACT("Fe+3")^n3 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Spodumene ########### Spodumene # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=3-6.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=8.67E+11 12 E1=94395 13 n1=0.7 20 rem neutral solution parameters 21 a2=1.89E+02 22 E2=66077 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Spodumene") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Tourmaline ########### Tourmaline # from Palandri and Kharaka 2004 # experimental condition range T=8-25C, pH=0.2-10.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=5.38E+06 12 E1=75516 13 n1=1 20 rem neutral solution parameters 21 a2=4.84E+03 22 E2=84956 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Tourmaline") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Annite ################ Annite # from Palandri and Kharaka 2004 # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=4.15E-01 12 E1=49000 13 n1=0.672 20 rem neutral solution parameters 21 a2=9.04E-04 22 E2=49000 30 rem base solution parameters 31 a3=3.50E+01 32 E3=49000 33 n2=-0.786 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Annite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Albite Marty et al 2015 ########### Albite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=5-300C, pH=1-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.45E+0 12 E1=58400 13 n1=0.335 20 rem neutral solution parameters 21 a2=4.97E-10 22 E2=57000 30 rem base solution parameters 31 a3=7.15E-01 32 E3=55500 33 n2=0.317 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Albite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ######## #Calcite marty et al 2015 ######## Calcite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=10-100C, pH not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=6.59E+04 22 E2=66000 30 rem co2 solution parameters 31 a3=1.04E+09 32 E3=67000 33 n2=1.6 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("calcite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("HCO3-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Quartz Marty et al 2015 ########### quartz # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-300C, pH=2-13 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=1.98 22 E2=77000 30 rem base solution parameters 31 a3=1.97E+04 32 E3=80000 33 n2=0.34 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("quartz") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########## #Celestite marty et al 2015 ########## Celestite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-100C, pH=4-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=8.13E-01 12 E1=32900 13 n1=0.105 20 rem neutral solution parameters 21 a2=2.43E-02 22 E2=34500 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Celestite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Kaolinite marty et al 2015 ########### Kaolinite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=22-80C, pH=0.5-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=2.56E-04 12 E1=43000 13 n1=0.51 20 rem neutral solution parameters 21 a2=5.0E-08 22 E2=38000 30 rem base solution parameters 31 a3=2.87E-03 32 E3=46000 33 n2=0.58 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Kaolinite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Microcline marty et al 2015 ########### Microcline # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=4.6E-06 12 E1=31000 13 n1=0.27 20 rem neutral solution parameters 21 a2=2.7E-9 22 E2=31000 30 rem base solution parameters 31 a3=3.8E-5 32 E3=31000 33 n2=0.35 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Microcline") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############## #Cristobalite(High) Marty et al 2015 # Cristobalite in Marty et al 2015 ############# Cristobalite(High) # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=7.85E-02 22 E2=69000 30 rem base solution parameters 31 a3=2.33E+02 32 E3=69000 33 n2=0.34 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Cristobalite(High)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Gibbsite marty et al 2015 ########### Gibbsite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=0 22 E2=0 30 rem base solution parameters 31 a3=7.96E+02 32 E3=48000 33 n2=1 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Gibbsite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # CSH(0.8) Marty et al 2015 ################ CSH(0.8) # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-45C, pH=8-13 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=6.32E-04 12 E1=23000 13 n1=0.275 20 rem neutral solution parameters 21 a2=1.71E-14 22 E2=23000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("CSH(0.8)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############# #dolomite Marty et al 2015 ############ dolomite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-100C, pH=0.5-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.21E+04 12 E1=46000 13 n1=0.500 20 rem neutral solution parameters 21 a2=2.97E-03 22 E2=31000 30 rem CO2 solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("dolomite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("HCO3-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Portlandite marty et al 2015 ########### Portlandite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-80C, pH=5-7 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.10E+10 12 E1=75000 13 n1=0.600 20 rem neutral solution parameters 21 a2=3.04E+05 22 E2=75000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Portlandite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #montmorillonite marty et al 2015 ########### montmorillonite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range not specified -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0.153 12 E1=54000 13 n1=0.690 20 rem neutral solution parameters 21 a2=1.01E-3 22 E2=63000 30 rem base solution parameters 31 a3=0.141 32 E3=61000 33 n2=0.34 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("montmorillonite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #biotite Marty et al 2015 ########### biotite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=19-25C, pH=2-10 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0.423 12 E1=49000 13 n1=0.67 20 rem neutral solution parameters 21 a2=8.84E-4 22 E2=49000 30 rem base solution parameters 31 a3=34.99 32 E3=49000 33 n2=0.79 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("biotite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ########### #Clinochlore(ordered) Marty et al 2015 # Chlorite in Marty et al 2015 ########### Clinochlore(ordered) # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-95C, pH=2-12 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=7.8E-6 12 E1=17000 13 n1=0.28 20 rem neutral solution parameters 21 a2=4.07E-14 22 E2=16000 30 rem base solution parameters 31 a3=4.39E-6 32 E3=16000 33 n2=0.34 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Clinochlore(ordered)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Siderite marty et al 2015 ################ Siderite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-100C, pH=1.5-11.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.82E+04 12 E1=56000 13 n1=0.6 20 rem neutral solution parameters 21 a2=1.36E+01 22 E2=56000 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Siderite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("OH-")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #kyanite (Zhang et al in prep) ########### kyanite # from Marty et al 2015 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=0-25C, pH=3.5-7.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals M0 is the initial moles of minerals 5 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=0 12 E1=0 13 n1=0 20 rem neutral solution parameters 21 a2=3.83 22 E2=73500 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("kyanite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*ACT("H+")^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles= rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Chlorite (Smith and Carroll, 2016) ################ Chlorite_Smith_2016 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=25-275C, pH=3-10 -start 1 rem unit should be mol,m-2 and second-1 2 rem parm(1) is surface area in the unit of m2/g 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1E-04 12 E1=30000 13 n1=0.74 20 rem neutral solution parameters 21 a2=4.7E-11 22 E2=13000 30 rem base solution parameters 31 a3=1.5E-09 32 E3=15000 33 n2=0.43 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Clinochlore(ordered)") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*(ACT("OH-"))^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Lizardite (Daval et al. 2013) ################ Lizardite_Daval_2013 # pre-exponent coefficient A is calculated from logk using equation A=k/exp(-Ea/RT) # experimental condition range T=27-90C, pH=3.2-6.2, pCO2=4-6MPa -start 1 rem unit should be mol,m-2 and second-1 2 rem parm(1) is surface area in the unit of m2/g 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.226E5 12 E1=42000 13 n1=0.53 20 rem neutral solution parameters 21 a2=0 22 E2=0 30 rem base solution parameters 31 a3=0 32 E3=0 33 n2=0 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Lizardite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*(ACT("OH-"))^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Illite (Smith et al., 2017) ################ Illite # experimental condition range T=100-280C, pH=3-9 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=1.00E-02 12 E1=58000 13 n1=0.55 20 rem neutral solution parameters 21 a2=2.00E-05 22 E2=54000 30 rem base solution parameters 31 a3=1.49E-03 32 E3=77000 33 n2=0.35 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("Illite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*(ACT("OH-"))^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ############ #muscovite (Lammers et al., 2017) ############ muscovite # experimental condition range T=25-280C, pH=2-9 -start 1 rem unit should be mol,m-2 and second-1 2 rem parm(1) is surface area in the unit of m2/g 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 rem acid solution parameters 11 a1=3.00E-03 12 E1=44000 13 n1=0.8 20 rem neutral solution parameters 21 a2=9.00E-6 22 E2=45000 30 rem base solution parameters 31 a3=5.00E-1 32 E3=61000 33 n2=0.6 36 rem rate=0 if no minerals and undersaturated 40 SR_mineral=SR("muscovite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 75 Rate1=a1*EXP(-E1/R/TK)*ACT("H+")^n1 #acid rate expression 80 Rate2=a2*EXP(-E2/R/TK) #neutral rate expression 85 Rate3=a3*EXP(-E3/R/TK)*(ACT("OH-"))^n2 #base rate expression 90 Rate=(Rate1+Rate2+Rate3)*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Montmorillonite (Cappelli et al. 2018) ################ Montmorillonite_Cappelli_2018 # experimental condition range T=25-80C, pH=1-14 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 10 R=8.31451 20 k=(10^-10.74*ACT("H+")^0.56+10^-13.32+10^-11.65*ACT("OH-")^0.27)*exp(-73052.64/R*(1/TK-1/298.15)) 30 GRT=ABS(2.303*SI("Montmorillonite")) 40 R_diss=k*(1-exp(-3.8e-4*GRT^2.13)) 50 R_pre=k*(1-SR("Montmorillonite")) 60 if (SR("Montmorillonite")<1) then J=R_diss else J=R_pre 70 if (parm(1)>0) then SA0=parm(1) else SA0=1 80 if (M0<=0) then SA=SA0 else SA=SA0* (M/M0)^0.67 90 SR_mineral=SR("Montmorillonite") 100 if (M<0) then goto 100 110 if (M=0 and SR_mineral<1) then goto 100 120 rate=J*SA*parm(2) 130 moles=rate*Time 140 Save moles -end ################ # Garnierite (Soler et al. 2008) ################ Garnierite # experimental condition range T=25C, pH=2-7 # activation energy not available. Rate only valid at 25C -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 40 SR_mineral=SR("Garnierite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 70 J=8.8E-13*(2.3E5*ACT("H+"))/(1+2.3E5*ACT("H+")) 90 Rate=J*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Smectite (Amram and Ganor, 2005) ################ Smectite_Amram_2005 # experimental condition range T=25-70C, pH=1-4.5 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 40 SR_mineral=SR("Smectite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 70 J=220*exp(-73052.64/R/TK)*(3e-6*exp(44768.8/R/TK)*ACT("H+"))/(1+3e-6*exp(44768.8/R/TK)*ACT("H+")) 90 Rate=J*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Fluorapatite_Harouiya_2007 (Harouiya et al, 2007) ################ Fluorapatite_Harouiya_2007 # experimental condition range T=5-50C, pH=1-6 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 40 SR_mineral=SR("Fluorapatite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 70 J=40*ACT("H+")^0.6*exp(-46024/R/TK)*(1-SR("Apatite")^0.2) 90 Rate=J*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Galena (Acero et al, 2007) ################ Galena # experimental condition range T=25-70C, pH=1-3 -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 40 SR_mineral=SR("Galena") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 70 if (-LA("H+")<2) then J=10^-5.7*exp(-23000/R/TK)*ACT("H+")^0.43 else J=10^-8.5*exp(-15000/R/TK)*ACT("H+")^-0.78*ACT("O2")^0.3 90 Rate=J*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Nontronite (Gainey et al, 2014) ################ Nontronite # experimental condition range T=26C, pH=0.9-3 # activation energy not available. Rate only valid at 25C -start 1 rem unit should be mol,Liter-1 and second-1 2 rem parm(1) is surface area in the unit of m2/L 3 rem calculation of surface area can be found in the note 4 rem M is current moles of minerals 5 rem M0 is the initial moles of minerals 6 rem parm(2) is a scaling factor 40 SR_mineral=SR("Nontronite") 41 if (M<0) then goto 200 42 if (M=0 and SR_mineral<1) then goto 200 43 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 50 if (SA<=0) then SA=1 60 R=8.31451 70 J=10^-12.06*10^(-0.297*-LA("H+")) 90 Rate=J*(1-Sr_mineral)*SA*parm(2) 100 moles=Rate*Time 110 rem do not dissolve more minerals than present 115 if (moles>M) then moles=M 200 save moles -end ################ # Quartz(Na) (rimstidt 2015) ################ Quartz(Na) # experimental condition range T=0-450C, pH=0-14, m(Na)=0-0.6M -start 10 R=8.31451 20 J0=0.646*(10^-(74800/(2.303*R*TK))) 30 Jna=6.64*(10^-(88000/(2.303*R*TK)))*(MOL("Na+")^0.331/ACT("H+")^0.441) 35 if (parm(1)>0) then SA0=parm(1) else SA0=1 40 if (M0<=0) then SA=SA0 else SA=SA0* (M/M0)^0.67 50 SR_mineral=SR("Quartz") 60 if (M<0) then goto 120 70 if (M=0 and SR_mineral<1) then goto 120 80 rate=(J0+Jna)*SA*(1-SR_mineral)*parm(2) 90 moles=rate*Time 100 rem do not dissolve more minerals than present 110 if (moles>M) then moles=M 120 Save moles -end ################ # SiO2(a)(Na) (rimstidt et al 2016) ################ SiO2(a)(Na) # experimental condition range T=0-250C, pH=3-11, m(Na)=0-3M -start 10 R=8.31451 20 J0=46.62*(10^-(77400/(2.303*R*TK))) 30 Jna=8.95*(10^-(77700/(2.303*R*TK)))*(MOL("Na+")^0.490/ACT("H+")^0.377) 35 if (parm(1)>0) then SA0=parm(1) else SA0=1 40 if (M0<=0) then SA=SA0 else SA=SA0* (M/M0)^0.67 50 SR_mineral=SR("SiO2(a)") 60 if (M<0) then goto 120 70 if (M=0 and SR_mineral<1) then goto 120 80 rate=(J0+Jna)*SA*(1-SR_mineral)*parm(2) 90 moles=rate*Time 100 rem do not dissolve more minerals than present 110 if (moles>M) then moles=M 120 Save moles -end ################ # chalcopyrite (Kimball et al 2010) ################ chalcopyrite # experimental condition range T=4-100C, pH=0-5, log C(Fe+++)=-5-0 -start 1 rem assuming Fe(III)>1e-4M is the switch point for Fe-promoted mechanism 10 R=8.31451 20 if TOT("Fe(3)")<=1e-4 then J=(10^-1.52)*EXP(-28200/(R*TK))*ACT("H+")^1.68 else J=(10^1.88)*EXP(-48100/(R*TK))*ACT("H+")^0.8*TOT("Fe(3)")^0.42 30 if (parm(1)>0) then SA0=parm(1) else SA0=1 40 if (M0<=0) then SA=SA0 else SA=SA0* (M/M0)^0.67 70 SR_mineral=SR("Chalcopyrite") 80 if (M<0) then goto 150 90 if (M=0 and SR_mineral<1) then goto 150 100 rate=J*SA*(1-SR_mineral)*parm(2) 120 moles=rate*Time 130 rem do not dissolve more minerals than present 140 if (moles>M) then moles=M 150 Save moles -end ################ # Forsterite(ox) (Olsen and Rimstidt, 2008) ################ Forsterite(ox) # experimental condition range T=25C, pH=0-7, m(oxalate)=0-0.35M -start 1 rem dissolution rate of forsterite (with Oxalate, Don) is in solutions of nitric and oxalic acid solutions 2 rem pH range of 0¨C7 and total oxalate concentrations between 0 and 0.35 m at 25 ¡ãC 10 Jw=10^-7.03*ACT("H+")^0.46 20 Jox=10^-5.44*TOT("oxalate")^0.4*ACT("H+")^0.47 25 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 30 if (SA<=0) then SA=1 40 SR_mineral=SR("Forsterite") 50 if (M<0) then goto 110 60 if (M=0 and SR_mineral<1) then goto 110 70 rate=(Jw+Jox)*SA*(1-SR_mineral)*parm(2) 80 moles=rate*Time 90 rem do not dissolve more minerals than present 100 if (moles>M) then moles=M 110 Save moles -end ################ # Quartz(HF) (Mitra and rimstidt, 2009) ################ Quartz(HF) # experimental condition range 10^-5.13M) then moles=M 120 Save moles -end ################ # SiO2(a)(HF) (Mitra and rimstidt, 2009) ################ SiO2(a)(HF) # experimental condition range 10^-2.37M) then moles=M 120 Save moles -end ################ # Jarosite (madden et al. 2012) ################ Jarosite # experimental condition range T=4-50C, pH=1-10 -start 1 rem the temperature is 296K 10 J=(10^-6.487)*ACT("H+")^0.899+(10^-10.964)*ACT("OH-")^0.392 15 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 20 if (SA<=0) then SA=1 30 SR_mineral=SR("Jarosite") 40 if (M<0) then goto 100 50 if (M=0 and SR_mineral<1) then goto 100 60 rate=J*SA*(1-SR_mineral)*parm(2) 70 moles=rate*Time 80 rem do not dissolve more minerals than present 90 if (moles>M) then moles=M 100 Save moles -end ################ # Scorodite (harvey et al 2006) ################ Scorodite # experimental condition range T=22-50C, pH=2-6 -start 1 rem TC=22-50, pH=2-6 2 R=8.31451 10 J=10^-6.2*ACT("H+")^0.14*exp(-24700/(R*TK)) 15 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 20 if (SA<=0) then SA=1 30 SR_mineral=SR("Scorodite") 40 if (M<0) then goto 100 50 if (M=0 and SR_mineral<1) then goto 100 60 rate=J*SA*(1-SR_mineral)*parm(2) 70 moles=rate*Time 80 rem do not dissolve more minerals than present 90 if (moles>M) then moles=M 100 Save moles -end ################ # Albite (burch et al 1993) ################ Albite(Burch) # experimental condition range T=80C, pH=8.8 -start 1 rem based on T=353.15K, assuming Ea=65kJ/mol 2 rem pH value is 8.8 10 GRT=ABS(2.303*SI("albite")) 15 rem these are k parameters normalized to 25 oC with Ea values noted above 20 k1=5.13E-13 30 k2=4.60E-14 40 k1T=k1*exp(-65000/R*(1/TK-1/298.15)) 50 k2T=k2*exp(-65000/R*(1/TK-1/298.15)) 55 if (SI("albite")>0) then goto 100 60 J1=k1T*(1-exp(-8.4E-17*GRT^15)) 70 J2=k2T*(1-exp(-1*GRT^1.45)) 80 J=J1+J2 90 goto 120 100 J=(k1T+k2T)*(1-SR("albite")) 120 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 130 if (SA<=0) then SA=1 140 if (M<0) then goto 200 150 if (M=0 and SR("albite")<1) then goto 200 160 rate=J*SA*parm(2) 170 moles=rate*Time 180 rem do not dissolve more minerals than present 190 if (moles>M) then moles=M 200 Save moles -end ################ # Albite (hellmann and tisserand 2006) ################ Albite(Hellmann) # experimental condition range T=150C, pH=9.3 -start 1 rem based on T=423.15K, assuming Ea=65kJ/mol 2 rem pH value is 9.3 3 R=8.31451 10 GRT=ABS(2.303*SI("albite")) 20 k1=4.41E-12 30 k2=7.78E-14 40 k1T=k1*exp(-65000/R*(1/TK-1/298.15)) 50 k2T=k2*exp(-65000/R*(1/TK-1/298.15)) 55 if (SI("albite")>0) then goto 100 60 J1=k1T*(1-exp(-7.98E-5*GRT^3.81)) 70 J2=k2T*(1-exp(-1*GRT^1.17)) 80 J=J1+J2 90 goto 120 100 J=(k1T+k2T)*(1-SR("albite")) 120 if (M0<=0) then SA=PARM(1) else SA=PARM(1)*(M/M0)^0.67 130 if (SA<=0) then SA=1 140 if (M<0) then goto 200 150 if (M=0 and SR_mineral<1) then goto 200 160 rate=J*SA*parm(2) 170 moles=rate*Time 180 rem do not dissolve more minerals than present 190 if (moles>M) then moles=M 200 Save moles -end