Jump to content
Geochemist's Workbench Support Forum

X1t not picking up SCM


Recommended Posts

I am trying to modify an x1t script that a colleagued used in a paper published in Applied Geochemistry back in 2015. He sent me the script, which I have renamed “Austin_Chalk_As.x1t”. This script is essentially identical to his script except for the new name, which at the moment doesn't represent the Austin Chalk. The script is from Lazareva et al. (2015). I am also including a modified version of the standard thermo.tdat database, which has a new “dummy mineral” called Arsenopyrite2, which is Arsenopyrite written in terms of SO4--/HS- instead of As(OH)4-/AsH3 to define redox dissolution. The FeOH.sdat called in the script is the standard Dzombak and Morel (1990) SCM database that comes with GWB. The FeOH+.sdat database also works.


My question involves my wish to use my modified database “thermo_ThioOxyanion2.tdat”, in which I redefined the arsenic species basis from As(OH)4- to H2AsO3- and so forth, along with my version of the FeOH.sdat database to fit the new arsenic basis and to use the surface complexation constants from Dixit and Morel (2003) that I call “FeOH_Arsenic_HFO.sdat”. I have included these databases along with the script “Austin_Chalk_As_KJ.x1t”. The only difference between the “Austin_Chalk_As.x1t” and the “Austin_Chalk_As_KJ.x1t” scripts is that the later calls my modified aqueous and surface complexation databases. The problem I am having is that when I run the “Austin_Chalk_As_KJ.x1t”, it does not seem to include any of the surface reactions, whereas the “Austin_Chalk_As.x1t” model has no problem picking up the surface reactions.


Do you have any clues as to why “Austin_Chalk_As_KJ.x1t” does not pick up the include any of the SCM reactions? It seems to be loading the surface data. I used both the “thermo_ThioOxyanion2.tdat” along with my modified “FeOH_Arsenic_HFO.sdat” in my paper Johannesson et al., (2019), and that model ran again the other day just fine. I am somewhat perplexed.


Best wishes,



thermo_GKD.tdat thermo_ThioOxyanions2.tdat FeOH_Arsenic_HFO.sdat Austin_Chalk_As.x1t Austin_Chalk_As_KJ.x1t

Link to comment
Share on other sites

Hello Karen,

Thanks for reattaching the files. They worked this time. 

I think the primary issue here is that your input file Austin_Chalk_As_KJ.x1t doesn’t contain a mineral that has sorbing sites defined in your surface dataset. The surface dataset FeOH_Arsenic_HFO.sdat has sorbing sites defined for Hematite, Goethite, and Fe(OH)3(ppd). Since the two-layer surface complexation model calculates sorption by the presence of surface area of a mineral with sorbing sites, your simulation will need to include one of these minerals either initially or the mineral may precipitate during the simulation. Your input file suppresses Goethite and Hematite, and Fe(OH)3(ppd) does not form. I took a quick look at the input file for Johannesson et al., 2019 and see that you swapped in Goethite for Fe3+ in your input file. I am not sure how Austin_Chalk_As.x1t was able to calculate sorption as it also doesn’t have one of the minerals with sorbing sites forming or prescribed in the initial setup. 

I also noticed that your surface dataset uses a legacy format ‘dec99’. A lot of improvements have been made in TEdit to help users identify potential issues with the dataset, especially when customizing the dataset. The newer surface datasets now identify the thermodynamic dataset that it draws its species from and has a Status dialog that will show issues identified in specific entries and the global dataset. You can also use TEdit to update your legacy format to the most current one as well. Even if you continue to work within a text editor, loading your dataset into TEdit might point out errors that might not be obvious. 

Another small thing I noticed is that your input file calls for ‘data = thermo_ThioOxyanion2.tdat’ instead of ‘thermo_ThioOxyanions2.tdat’, with an ‘s’ after ThioOxyanion. Just want to point that out in case you were reading in a different version of your thermodynamic dataset with a similar name. 

Hope this helps,
Jia Wang

Link to comment
Share on other sites

  • 2 weeks later...

Hi Jia,

Thanks again. I will correct these issues and will looking to the use of the "TEdit" program. I guess I learned GWB back when I was using version 7, and I haven't kept up will all the new programs and so forth. I just started using the rxn program to balance equations and calculate equilibrium constants based on the basis. Wow. That really helped speed up some of my old fashioned writing stuff down and balancing them myself. I wish I had looked into the rxn program when I was balancing those gnarly expression for the various "arsenogoethite" dummy minerals I devised for the 2019 paper. 

I noticed that the script from that 2015 paper I was trying to modify did not have any mineral phase to have sorption onto, which confounded me. They used a call that read:

surface_data = "C:\Program Files (x86)\Gwb\Gtdata\FeOH+.dat"

and later in the script that read:

"sorbate include"

I could provide you with the entire script if you are interested.

Best wishes,


Link to comment
Share on other sites

Hi Karen, 

You're welcome. I am glad to hear that you find Rxn useful in your work! With regards to your confusion, I think I have a bit more information to offer. I revisited the Austin_Chalk_As.x1t script and tried to run it again. I ran into an issue where the NO3- concentration in the initial pane wasn't constrained so I used the value of 5.5 mg/l that was commented out. I also changed the balancing ion to HCO3- for the inlet fluid to help with convergence, since there was quite a bit more HCO3- in the fluid than Cl-. I ran this simulation for just several days and saw that Fe(OH)3(ppd) precipitated during the run. Since Fe(OH)3(ppd) is a sorbing mineral, X1t is able to calculate sorption using the two layer model. Can you run the original scripts from Lazareva et al., 2015 to check if one of the sorbing minerals precipitated?  

The command 'sorbate include' tells the program to distribute a component's concentration between solution and mineral surface during speciation. This command does not indicate the presence of a sorbing mineral though. For example, if you have 15 mg/l of Ca++, the initial system would distribute that amount between the fluid and any sorbing mineral surface if present. To see a more detailed explanation and usage for the sorbate command, please see section 5.65 in the GWB Command reference. 


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...