[CHNOSZ-commits] r242 - in pkg/CHNOSZ: . R demo inst inst/extdata/OBIGT man tests/testthat vignettes

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Wed Oct 4 17:51:39 CEST 2017


Author: jedick
Date: 2017-10-04 17:51:38 +0200 (Wed, 04 Oct 2017)
New Revision: 242

Modified:
   pkg/CHNOSZ/DESCRIPTION
   pkg/CHNOSZ/R/basis.R
   pkg/CHNOSZ/demo/00Index
   pkg/CHNOSZ/inst/NEWS
   pkg/CHNOSZ/inst/extdata/OBIGT/H2O_aq.csv.xz
   pkg/CHNOSZ/man/makeup.Rd
   pkg/CHNOSZ/tests/testthat/test-IAPWS95.R
   pkg/CHNOSZ/tests/testthat/test-berman.R
   pkg/CHNOSZ/tests/testthat/test-makeup.R
   pkg/CHNOSZ/tests/testthat/test-subcrt.R
   pkg/CHNOSZ/vignettes/obigt.Rmd
   pkg/CHNOSZ/vignettes/obigt.bib
Log:
change formula of aqueous electron from "Z0-1" to "(Z-1)"


Modified: pkg/CHNOSZ/DESCRIPTION
===================================================================
--- pkg/CHNOSZ/DESCRIPTION	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/DESCRIPTION	2017-10-04 15:51:38 UTC (rev 242)
@@ -1,6 +1,6 @@
-Date: 2017-10-03
+Date: 2017-10-04
 Package: CHNOSZ
-Version: 1.1.0-40
+Version: 1.1.0-41
 Title: Thermodynamic Calculations for Geobiochemistry
 Author: Jeffrey Dick
 Maintainer: Jeffrey Dick <j3ffdick at gmail.com>

Modified: pkg/CHNOSZ/R/basis.R
===================================================================
--- pkg/CHNOSZ/R/basis.R	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/R/basis.R	2017-10-04 15:51:38 UTC (rev 242)
@@ -104,7 +104,7 @@
   rownames(comp) <- as.character(thermo$obigt$formula[ispecies])
   # FIXME: the electron doesn't look like a chemical formula
   # this is needed for affinity() to understand a 'pe' or 'Eh' variable
-  if("Z0-1" %in% rownames(comp)) rownames(comp)[rownames(comp)=="Z0-1"] <- "e-"
+  if("(Z-1)" %in% rownames(comp)) rownames(comp)[rownames(comp)=="(Z-1)"] <- "e-"
   # now check it for validity of basis species
   # the first test: matrix is square
   if( nrow(comp) > ncol(comp) ) stop("overdetermined system; square stoichiometric matrix needed")

Modified: pkg/CHNOSZ/demo/00Index
===================================================================
--- pkg/CHNOSZ/demo/00Index	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/demo/00Index	2017-10-04 15:51:38 UTC (rev 242)
@@ -21,3 +21,4 @@
 adenine         HKF parameters regressed from heat capacity and volume of aqueous adenine
 DEW             Deep Earth Water (DEW) model for high pressures
 lambda          Effects of lambda transtion on thermodynamic properties of quartz
+berman          Mineral stability diagrams calculated using Berman's equations

Modified: pkg/CHNOSZ/inst/NEWS
===================================================================
--- pkg/CHNOSZ/inst/NEWS	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/inst/NEWS	2017-10-04 15:51:38 UTC (rev 242)
@@ -1,4 +1,4 @@
-CHANGES IN CHNOSZ 1.1.0-40 (2017-10-03)
+CHANGES IN CHNOSZ 1.1.0-41 (2017-10-04)
 ---------------------------------------
 
 MAJOR CHANGES:
@@ -71,6 +71,11 @@
   inconsistent results for metastable steam (Zavarin et al., 2016,
   LLNL-TR-701407, doi: 10.2172/1325873).
 
+- Change the formula of the electron from "Z0-1" (parsed as "zero Z
+  with minus one charge") to the equivalent but nicer-to-read "(Z-1)"
+  (parsed as "minus one Z"; the parentheses cause "-1" to be interpreted
+  as the coefficient on Z instead of the charge in the formula).
+
 OTHER CHANGES:
 
 - Add 'tol' argument to equil.reaction() (convergence tolerance for

Modified: pkg/CHNOSZ/inst/extdata/OBIGT/H2O_aq.csv.xz
===================================================================
--- pkg/CHNOSZ/inst/extdata/OBIGT/H2O_aq.csv.xz	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/inst/extdata/OBIGT/H2O_aq.csv.xz	2017-10-04 15:51:38 UTC (rev 242)
@@ -1 +1 @@
-ý7zXZ  æÖ´F !   t/å£à ¤] 7Iýúb‹¿ñ9²¶Ë¦¨•TB;qý"½qù¦cL;ù"ß“<²ëbï¨gò;ø¥Kä‡¥Šfœ‘1Æw?oz†ÆCþ­aì]IØŽ¨Ý5i‡cÂ.ÔŸò`ê¯ÚjF“Tíö×ÿÃoëh ÆsdáþXž‰b`oR‹[}‘ôÞN±¯=r# sH"=³/ÂÅþ”%ÃåñiÉ?ê!±à gÆ#Õõ\÷ Àž   ¡Æ±±Ägû    YZ
\ No newline at end of file
+ý7zXZ  æÖ´F !   t/å£à ¥] 7Iýúb‹¿ñ9²¶Ë¦¨•TB;qý"½qù¦cL;ù"ß“<²ëbï¨gò;ø¥Kä‡¥Šfœ‘1Æw?oz†ÆCþ­aì]IØŽ¨Ý5i‡cÂ.ÔŸò`ê¯ÚjF“Tíö×ÿÃoëh ÆsdáþXž‰­Ò ÈbŠQTP.GZp‚h˜“ŽÕñGZ¦åJßr²n¶’• dÈÙAhÀ    é´5ñ™ìè ÁŸ  à&±Ägû    YZ
\ No newline at end of file

Modified: pkg/CHNOSZ/man/makeup.Rd
===================================================================
--- pkg/CHNOSZ/man/makeup.Rd	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/man/makeup.Rd	2017-10-04 15:51:38 UTC (rev 242)
@@ -66,8 +66,9 @@
 
 # these all represent a single negative charge, i.e., electron
 makeup("-1")
-makeup("Z0-1")
 makeup("Z-1+0")
+makeup("Z0-1")   # the "old" formula for the electron in thermo$obigt
+makeup("(Z-1)")  # the current formula in thermo$obigt
 
 # hypothetical compounds with negative numbers of elements
 makeup("C-4(O-2)")   # -4 carbon, -2 oxygen
@@ -76,7 +77,7 @@
 
 # the 'sum' argument can be used to check mass and charge
 # balance in a chemical reaction
-formula <- c("H2O", "H+", "Z0-1", "O2")
+formula <- c("H2O", "H+", "(Z-1)", "O2")
 (mf <- makeup(formula, c(-1, 2, 2, 0.5), sum=TRUE))
 stopifnot(all(mf==0))
 }

Modified: pkg/CHNOSZ/tests/testthat/test-IAPWS95.R
===================================================================
--- pkg/CHNOSZ/tests/testthat/test-IAPWS95.R	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/tests/testthat/test-IAPWS95.R	2017-10-04 15:51:38 UTC (rev 242)
@@ -62,9 +62,9 @@
   expect_equal(round(signif(vapor.calc$p, 5), 6), P.ref, tolerance=1e-4)
   # take H to 6 significant digits but not more than 3 decimals
   expect_equal(round(signif(liquid.calc$h, 6), 3), H.liquid.ref, tolerance=1e-5)
-  expect_that(round(signif(vapor.calc$h, 6), 3), equals(H.vapor.ref))  # spot on!
+  expect_equal(round(signif(vapor.calc$h, 6), 3), H.vapor.ref)  # spot on!
   # round S to 4 decimals
-  expect_that(round(liquid.calc$s, 4), equals(S.liquid.ref))  # spot on!
+  expect_equal(round(liquid.calc$s, 4), S.liquid.ref)  # spot on!
   expect_equal(round(vapor.calc$s, 4), S.vapor.ref, tolerance=1e-4)
   # round cv to 4 decimals
   expect_equal(round(liquid.calc$cv, 4), cv.liquid.ref, tolerance=1e-4)
@@ -78,8 +78,8 @@
 test_that("calculations are possible at low temperatures", {
   # the sequences start at the lowest whole-number temperature (K) 
   # where the function returns a value of density at the given pressure
-  expect_that(any(is.na(water.IAPWS95("rho", T=seq(234, 274, 3), P=rep(1, 14)))), is_false())
-  expect_that(any(is.na(water.IAPWS95("rho", T=seq(227, 272, 3), P=rep(1000, 16)))), is_false())
+  expect_false(any(is.na(water.IAPWS95("rho", T=seq(234, 274, 3), P=rep(1, 14)))))
+  expect_false(any(is.na(water.IAPWS95("rho", T=seq(227, 272, 3), P=rep(1000, 16)))))
 })
 
 # reference

Modified: pkg/CHNOSZ/tests/testthat/test-berman.R
===================================================================
--- pkg/CHNOSZ/tests/testthat/test-berman.R	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/tests/testthat/test-berman.R	2017-10-04 15:51:38 UTC (rev 242)
@@ -23,10 +23,6 @@
                  "fluortremolite", all=TRUE)
   # save the results so we can use them in the next tests
   assign("prop_Berman", properties, inherits=TRUE)
-  
-  ## - warnings are produced for 7 minerals with GfPrTr(calc) >= 1000 J/cal different from GfPrTr(table)
-  #expect_warning(Berman <- lapply(mineral, berman),
-  #               "annite|dawsonite|dravite|fluortremolite|greenalite|siderite|Na-Fe-saponite.3W", all=TRUE)
 })
 
 # assemble a data frame for Berman properties
@@ -41,14 +37,11 @@
 # minerals with missing properties are not matched here
 # (i.e. fluorphlogopite, fluortremolite, glaucophane, and pyrope: no G and H in prop_Helgeson data)
 
-test_that("Berman and Helgeson properties have large differences for few minerals", {
+test_that("Berman and Helgeson tabulated properties have large differences for few minerals", {
   # which minerals differ in DGf by more than 4 kcal/mol?
   idiffG <- which(abs(prop_Berman$G - prop_Helgeson$G) > 4000)
   expect_match(mineral[idiffG],
                "paragonite|anthophyllite|antigorite|Ca-Al-pyroxene|lawsonite|margarite|merwinite")
-  ## we find 9 of them, as follow:
-  #expect_match(mineral[idiffG],
-  #             "anthophyllite|antigorite|Ca-Al-pyroxene|cordierite,dry|cordierite,hydrous|lawsonite|margarite|merwinite|paragonite")
 
   # which minerals differ in DHf by more than 4 kcal/mol?
   idiffH <- which(abs(prop_Berman$H - prop_Helgeson$H) > 4000)
@@ -59,17 +52,52 @@
   # which minerals differ in S by more than 4 cal/K/mol?
   idiffS <- which(abs(prop_Berman$S - prop_Helgeson$S) > 4)
   expect_match(mineral[idiffS], "albite|annite|almandine|fluortremolite")
-  #expect_match(mineral[idiffS], "albite|almandine|annite|cordierite,hydrous|fluortremolite")
 
   # which minerals differ in Cp by more than 4 cal/K/mol?
   idiffCp <- which(abs(prop_Berman$Cp - prop_Helgeson$Cp) > 4)
   expect_match(mineral[idiffCp], "antigorite|cristobalite,beta|K-feldspar|fluortremolite")
-  #expect_match(mineral[idiffCp],
-  #             "antigorite|cordierite,hydrous|cristobalite,beta|fluortremolite|glaucophane|greenalite|K-feldspar")
 
   # which minerals differ in V by more than 1 cm^3/mol?
   idiffV <- which(abs(prop_Berman$V - prop_Helgeson$V) > 1)
   expect_match(mineral[idiffV], "anthophyllite|antigorite|chrysotile|merwinite")
-  #expect_match(mineral[idiffV],
-  #             "anthophyllite|antigorite|chrysotile|cordierite,hydrous|glaucophane|greenalite|merwinite")
 })
+
+
+test_that("Berman and Helgeson calculated properties are similar", {
+  # Reference values for G were taken from the spreadsheet Berman_Gibbs_Free_Energies.xlsx
+  #   (http://www.dewcommunity.org/uploads/4/1/7/6/41765907/sunday_afternoon_sessions__1_.zip accessed on 2017-10-03)
+  # The spreadsheet also has values for some minerals using the Helgeson data
+  T <- c(100, 100, 1000, 1000)
+  P <- c(5000, 50000, 5000, 50000)
+
+  ## Start with uncomplicated minerals (no transitions)
+  # Helgeson akermanite
+  Ak_Hel_G <- c(-872485, -772662, -970152, -870328)
+  Ak_Hel <- subcrt("akermanite", T=T, P=P)$out[[1]]
+  expect_equal(Ak_Hel_G, Ak_Hel$G, tol=1e-5)
+  # Berman andalusite
+  And_Ber_G <- c(-579368, -524987, -632421, -576834)
+  And_Ber <- subcrt("andalusite", "cr_Berman", T=T, P=P)$out[[1]]
+  expect_equal(And_Ber_G, And_Ber$G, tol=1e-4)
+
+  ## Now a more complicated case with polymorphic transitions
+  # Helgeson quartz
+  Qz_Hel_G <- c(-202778, -179719, -223906, -199129)
+  Qz_Hel <- subcrt("quartz", T=T, P=P)$out[[1]]
+  # they're very close, but less so at the extremest condition
+  expect_equal(Qz_Hel_G[-4], Qz_Hel$G[-4], tol=1e-5)
+  expect_equal(Qz_Hel_G[4], Qz_Hel$G[4], tol=1e-2)
+  # Berman alpha-quartz
+  aQz_Ber_G <- c(-202800, -179757, -223864, -200109)
+  aQz_Ber <- subcrt("quartz", "cr_Berman", T=T, P=P)$out[[1]]
+  # here, the high-P, low-T point suffers
+  expect_equal(aQz_Ber_G[-2], aQz_Ber$G[-2], tol=1e-5)
+  expect_equal(aQz_Ber_G[2], aQz_Ber$G[2], tol=1e-2)
+
+  ## This one has disordering effects
+  Kfs_Ber_G <- c(-888115, -776324, -988950, -874777)
+  Kfs_Ber <- subcrt("K-feldspar", "cr_Berman", T=T, P=P)$out[[1]]
+  # we lose some accuracy at high T
+  expect_equal(Kfs_Ber_G[1:2], Kfs_Ber$G[1:2], tol=1e-5)
+  expect_equal(Kfs_Ber_G[3:4], Kfs_Ber$G[3:4], tol=1e-2)
+})

Modified: pkg/CHNOSZ/tests/testthat/test-makeup.R
===================================================================
--- pkg/CHNOSZ/tests/testthat/test-makeup.R	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/tests/testthat/test-makeup.R	2017-10-04 15:51:38 UTC (rev 242)
@@ -14,10 +14,11 @@
 test_that("numeric species indices, and coefficients indicating charge can be parsed", {
   # these are all equivalent formulas for the electron
   expect_equal(makeup("-1"), makeup("Z0-1"))
+  expect_equal(makeup("-1"), makeup("(Z-1)")[1])
   expect_equal(makeup("-1"), makeup("Z-1+0"))
   # the species index of the electron in thermo$obigt
   ie <- info("e-")
-  expect_equal(makeup("-1"), makeup(ie))
+  expect_equal(makeup("-1"), makeup(ie)[1])
 })
 
 test_that("signed and fractional coefficients can be parsed", {

Modified: pkg/CHNOSZ/tests/testthat/test-subcrt.R
===================================================================
--- pkg/CHNOSZ/tests/testthat/test-subcrt.R	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/tests/testthat/test-subcrt.R	2017-10-04 15:51:38 UTC (rev 242)
@@ -90,7 +90,7 @@
   oldwat <- water("IAPWS95")
   sb <- subcrt(c("H2O", "Na+"), T=c(-30, -20, 0, 10), P=1)$out
   # the test is not a demanding numerical comparison, more that we got numbers and no error
-  expect_that(all(sb$`Na+`$G < sb$water$G), is_true())
+  expect_true(all(sb$`Na+`$G < sb$water$G))
   # clean up
   water(oldwat)
 })

Modified: pkg/CHNOSZ/vignettes/obigt.Rmd
===================================================================
--- pkg/CHNOSZ/vignettes/obigt.Rmd	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/vignettes/obigt.Rmd	2017-10-04 15:51:38 UTC (rev 242)
@@ -14,7 +14,7 @@
 bibliography: obigt.bib
 # so that these appear in the bibliography
 nocite: | 
-  @SPRONS92, @SLOP98, @SLOP07, @SLOP15, @CHNOSZ
+  @SPRONS92, @SLOP98, @SLOP07, @SLOP15, @CHNOSZ, @JOH92, @WP02, @CWM89, @PRPG97, @TH88, @Kul06
 # 20170212: comment the csl line to build package on R-Forge, to avoid
 # getting an error there (pandoc-citeproc: error while parsing the XML string)
 csl: elementa.csl
@@ -119,8 +119,14 @@
 Symbols show whether the data were present in the earliest of the sprons92.dat (ø), slop98.dat (\*), slop07.dat (†), or slop15.dat (‡) datafiles for the SUPCRT92 package.
 
 Any additional comments are placed at the beginning of the sections.
-Abbreviations used below are: Cp (heat capacity), GHS (standard Gibbs energy, enthalpy, entropy), HKF (Helgeson-Kirkham-Flowers equations), V (volume).
+Abbreviations used below are: Cp (heat capacity), GHS (standard Gibbs energy, enthalpy, entropy), HKF (Helgeson-Kirkham-Flowers equations), *V* (volume), *T* (temperature), *P* (pressure).
 
+# Recent additions (late 2017)
+
+* Mineral data using the [Berman (1988)]() equations are listed under **Solids**.
+
+* Aqueous species data compatible with the [Deep Earth Water](http://www.dewcommunity.org/) model are listed under **Optional Data**.
+
 # Sources of data {.tabset .tabset-fade}
 
 <!-- uncomment for full version -->
@@ -131,7 +137,19 @@
 
 ### `r setfile("H2O_aq.csv")`
 ```{r H2O_aq, results="asis", echo=FALSE}
-cat('This file contains H<sub>2</sub>O, *e*<sup>-</sup>, and H<sup>+</sup>. The properties of H<sub>2</sub>O are listed as NA; CHNOSZ calculates its properties using a Fortran subroutine taken from SUPRCT92 [@JOH92]. The properties of the proton (H<sup>+</sup>) are 0. The properties of the electron (*e*<sup>-</sup>) are 0, except for *S*°, which is the opposite of *S*° for the "element" of charge, Z (see `?thermo`).\n')
+cat('This file contains H<sub>2</sub>O, *e*<sup>-</sup>, and H<sup>+</sup>.\n')
+cat('The properties of H<sub>2</sub>O are listed as NA; CHNOSZ calculates its properties using a Fortran subroutine taken from SUPRCT92 ([Johnson et al., 1992](https://doi.org/10.1016/0098-3004(92)90029-Q)) (default) or using the IAPWS-95 equations ([Wagner and Pruß, 2002](https://doi.org/10.1063/1.1461829)) or the [Deep Earth Water](http://www.dewcommunity.org/) (DEW) model ([Sverjensky et al., 2014](https://doi.org/10.1016/j.gca.2013.12.019)).\n\n')
+cat('By convention, the standard Gibbs energy of formation, entropy, and heat capacity of the aqueous proton (H<sup>+</sup>) are 0 at all *T* and *P* ([e.g. Cox et al., 1989](http://www.worldcat.org/oclc/18559968)).\n')
+cat('The formation reaction of the proton can be expressed as &frac12;H<sub>2,(*g*)</sub> + Z = H<sup>+</sup>, where Z is the "element" of positive charge.\n')
+cat('Because the conventional standard Gibbs energy of this reaction is 0 at all *T*, the standard entropy of the reaction is also constrained to be zero (cf. [Puigdomenech et al., 1997](http://www.oecd-nea.org/dbtdb/pubs/book-pdf/427-494.pdf)).\n')
+cat('Therefore, the "element" of positive charge (Z) has zero thermodynamic properties except for an entropy, *S*°<sub>*T*<sub>r</sub></sub>, that is negative one-half that of H<sub>2,(*g*)</sub>.\n')
+cat('The standard entropy of the aqueous electron, which is a solely a pseudospecies defined by *e*<sup>-</sup> = -Z, is opposite that of Z.<span style="color:red">**</span>\n\n')
+cat('Despite these considerations, the final column of the thermodynamic database (`thermo$obigt`) lists a charge of "0" for both the aqueous proton and electron.\n')
+cat('Data in this this column are used in CHNOSZ only to specify the charge that is input to the "*g*-function" ([Tanger and Helgeson, 1988](https://doi.org/10.2475/ajs.288.1.19); [Shock and Helgeson, 1988](https://doi.org/10.1016/0016-7037(88)90181-0)).\n')
+cat('Setting it to zero prevents activation of the *g*-function, which would result in non-zero contributions to thermodynamic properties, conflicting with the conventions mentioned above.\n')
+cat('All other calculations in CHNOSZ obtain the elemental makeup, including the correct charge for the species, by parsing the chemical formulas stored in the database.<span style="color:red">^^</span>\n\n')
+cat('<span style="color:red">**</span>Likewise, [GEM-Selektor](http://gems.web.psi.ch/) defines "independent components" to be stoichiometric units usually consisting of elements and charge; the latter, [which is named Zz](http://gems.web.psi.ch/tests/TestNaCl-dep.html) and has a standard molal entropy of -65.34 J/mol/K and heat capacity of -14.418 J/mol/K (negative one-half those of gaseous hydrogen), is negated in the formula of the hypothetical "aqueous electron" ([Kulik, 2006](https://doi.org/10.1016/j.chemgeo.2005.08.014)).\n\n')
+cat('<span style="color:red">^^</span> Relatedly, charged amino acid sidechain groups have a charge that is tabulated as zero, because other values would be incompatible with group additivity of cations and anions (for which the *g*-function produces derivatives of the omega parameter (ω) in the revised HKF equations of state that are not opposite each other) to give a neutral species (for which the derivatives of ω are taken to be zero) (cf. [Dick et al., 2006](https://doi.org/10.5194/bg-3-311-2006)).\n')
 ```
 ```{r used, include=FALSE}
 # initialize the list of used species
@@ -147,7 +165,7 @@
 
 ### `r setfile("inorganic_aq.csv")`
 ```{r inorganic_aq, results="asis", echo=FALSE}
-cat("ZnCl4-2 was present in sprons92.dat but not in slop98.dat or later files, and is not included in CHNOSZ.<hr>")
+cat("ZnCl<sub>4</sub><sup>-2</sup> was present in sprons92.dat but not in slop98.dat or later files, and is not included in CHNOSZ.<hr>")
 ```
 
 ```{r reflist, results="asis", echo=FALSE}

Modified: pkg/CHNOSZ/vignettes/obigt.bib
===================================================================
--- pkg/CHNOSZ/vignettes/obigt.bib	2017-10-03 08:41:50 UTC (rev 241)
+++ pkg/CHNOSZ/vignettes/obigt.bib	2017-10-04 15:51:38 UTC (rev 242)
@@ -742,6 +742,17 @@
   doi           = {10.1016/S0016-7037(97)00009-4},
 }
 
+ at Article{TH88,
+  author    = {Tanger, IV, John C. and Helgeson, Harold C.},
+  journal   = {American Journal of Science},
+  title     = {{C}alculation of the thermodynamic and transport properties of aqueous species at high pressures and temperatures: {R}evised equations of state for the standard partial molal properties of ions and electrolytes},
+  year      = {1988},
+  volume    = {288},
+  number    = {1},
+  pages     = {19--98},
+  doi       = {10.2475/ajs.288.1.19},
+}
+
 @Article{TSD97,
   author        = {Tardy, Yves and Schaul, Rapha\`ele and Duplay, Jo\"elle},
   journal       = {Comptes Rendus de l'Academie des Sciences, Serie IIa: Sciences de la Terre et des Planetes},
@@ -764,6 +775,27 @@
   url           = {https://srd.nist.gov/JPCRD/jpcrdS2Vol11.pdf},
 }
 
+ at Article{WP02,
+  author    = {Wagner, W. and Pru{\ss}, A.},
+  journal   = {Journal of Physical and Chemical Reference Data},
+  title     = {{T}he {IAPWS} formulation 1995 for the thermodynamic properties of ordinary water substance for general and scientific use},
+  year      = {2002},
+  volume    = {31},
+  number    = {2},
+  pages     = {387 -- 535},
+  doi       = {10.1063/1.1461829},
+}
+
+ at Book{CWM89,
+  editor    = {Cox, J. D. and Wagman, D. D. and Medvedev, V. A.},
+  publisher = {Hemisphere Publishing Corporation},
+  title     = {{CODATA} {K}ey {V}alues for {T}hermodynamics},
+  year      = {1989},
+  address   = {New York},
+  pages     = {271},
+  url       = {http://www.worldcat.org/oclc/18559968},
+}
+
 @Article{GM09,
   author    = {Grevel, Klaus-Dieter and Majzlan, Juraj},
   journal   = {Geochimica et Cosmochimica Acta},
@@ -950,16 +982,16 @@
 }
 
 @Article{Eva90,
-  author        = {Evans, Bernard W.},
-  journal       = {Lithos},
-  title         = {{P}hase relations of epidote-blueschists},
-  year          = {1990},
-  volume        = {25},
-  number        = {1},
-  pages         = {3--23},
-  note          = {Third International Eclogite Conference},
-  doi           = {10.1016/0024-4937(90)90003-J},
-  issn          = {0024-4937},
+  author    = {Evans, Bernard W.},
+  journal   = {Lithos},
+  title     = {{P}hase relations of epidote-blueschists},
+  year      = {1990},
+  volume    = {25},
+  number    = {1},
+  pages     = {3--23},
+  note      = {Third International Eclogite Conference},
+  doi       = {10.1016/0024-4937(90)90003-J},
+  issn      = {0024-4937},
 }
 
 @Misc{JUN92,
@@ -970,3 +1002,27 @@
   url          = {http://titan.minpet.unibas.ch/minpet/theriak/prog170204/},
 }
 
+ at Incollection{PRPG97,
+  author    = {Puigdomenech, Ignasi and Rard, Joseph A. and Plyasunov, Andrey V. and Grenthe, Ingmar},
+  booktitle = {Modelling in Aquatic Chemistry},
+  publisher = {OECD Nuclear Energy Data Bank},
+  title     = {{T}emperature corrections to thermodynamic data and enthalpy calculations},
+  year      = {1997},
+  editor    = {Grenthe, I. and Puigdomenech, I.},
+  pages     = {427--493},
+  url       = {http://www.oecd-nea.org/dbtdb/pubs/book-pdf/427-494.pdf},
+}
+
+ at Article{Kul06,
+  author        = {Kulik, D. A.},
+  journal       = {Chemical Geology},
+  title         = {{D}ual-thermodynamic estimation of stoichiometry and stability of solid solution end members in aqueous–solid solution systems},
+  year          = {2006},
+  volume        = {225},
+  number        = {3},
+  pages         = {189--212},
+  note          = {Solid solutions: from theory to experiment},
+  doi           = {10.1016/j.chemgeo.2005.08.014},
+  issn          = {0009-2541},
+}
+



More information about the CHNOSZ-commits mailing list