SEE ALSO EXAMPLE #15 AT WWW.PERPLEX.ETHZ.CH/PERPLEX_EXAMPLES.HTML SPECIES is a program for computing isobaric-isothermal COHS fluid speciation and properties as a function of X(O) (i.e., X(O) = n(O)/(n(O)+n(H))). The algorithm for solving fluid speciation is described in the paper: Phase Diagram Methods for Graphitic Rocks and Application to the System C-O-H-FeO-TiO2-SiO2 (1994) JAD Connolly, Contrib Mineral Petrol. and the RK parameters are given in: C-O-H-S Fluid Composition and Oxygen Fugacity in Graphitic Metapelites (1993) Connolly & Cesare, J Met Geol 11:379-388 Information on compiling follows the I/O example. ===================================================================== EXAMPLE the computer prompt here is: ostrich{jamie}1: and i've put my comments in square brackets []: ostrich{jamie}67: species Select fluid equation of state: 0 - Modified Redlich-Kwong (MRK/DeSantis/Holloway) 1 - Kerrick & Jacobs 1981 (HSMRK) 2 - Hybrid MRK/HSMRK 3 - Saxena & Fei 1987 pseudo-virial expansion 4 - Bottinga & Richet 1981 (CO2 RK) 5 - Holland & Powell 1990 (CORK) 6 - Hybrid Haar et al 1979/HSMRK (TRKMRK) 7 - Graphite buffered COH MRK fluid 8 - Graphite buffered COH hybrid-EoS fluid 9 - Max X(H2O) GCOH fluid Cesare & Connolly 1993 10 - X(O) GCOH-fluid hybrid-EoS Connolly & Cesare 1993 11 - X(O) GCOH-fluid MRK Connolly & Cesare 1993 12 - X(O) GCOHS-fluid hybrid-EoS Connolly & Cesare 1993 13 - X(H2) H2-H2O hybrid-EoS 14 - EoS Birch & Feeblebop (1993) 15 - X(H2) low T H2-H2O hybrid-EoS 16 - X(O) H-O HSMRK/MRK hybrid-EoS 17 - X(O) H-O-S HSMRK/MRK hybrid-EoS 18 - Delany/HSMRK/MRK hybrid-EoS, for P > 10 kb 19 - X(O)-X(S) COHS hybrid-EoS Connolly & Cesare 1993 20 - X(O)-X(C) COHS hybrid-EoS Connolly & Cesare 1993 12 [valid choices here are 10, 11, 12, 16, 17, 19, 20 (see README.COHSRK for description), you can easily modify the source (species.f) to permit calculation as a function of f(O2) or f(CO2), i.e., 7 or 8.] Choose a buffer: 1 - Py + Po 2 - Po 3 - f(S2) 2 [if you choose a sulfidic fluid routine, the sulfur fugacity must be specified in some way. Note that you can use sulfidic fluid routines to treat sulfur free fluids by setting log(f(S2)) (option 3) to some absurdly low value (-400).] Enter atomic Fe/S of pyrrhotite: 0.98 Compute f(H2) & f(O2) as the dependent fugacities (do not unless you project through carbon) (Y/N)? n [this question is irrelevant] Reduce graphite activity (Y/N)? n [whatever you want here] p, t, xonc? 2000 873 0.05 [p is the pressure in bars, t the temperature in K, and xonc is the X(O) increment to be used. By default the program computes speciation from X(O) = 0 to 1 (or very nearly so), you can change this by modifying the source. [the console output you get is, on each line, X(O), the species mole fractions, and the log10(f(O2)). The number and identity of the species fractions depends on the fluid routine chosen, you can figure these out by running COHSRK for the same routine, or by looking in the plot file (species.dat). The plot file also contains the atomic fractions for the fluid. In the specific case here, the species fractions are of H2O, CO2, CO, CH4, H2, H2S, SO2, and COS.] 0.100000E-09 0.394171E-09 0.120095E-19 0.544056E-12 0.973599 0.259475E-01 0.453719E-03 0.445993E-30 0.143076E-15 -40.0812 0.500000E-01 0.182572 0.275190E-02 0.243502E-03 0.792032 0.219670E-01 0.433767E-03 0.102318E-12 0.701606E-07 -22.7527 0.100000 0.339511 0.101085E-01 0.431410E-03 0.631257 0.182853E-01 0.406547E-03 0.375714E-12 0.135560E-06 -22.2095 0.150000 0.475056 0.209956E-01 0.566919E-03 0.488136 0.148735E-01 0.371603E-03 0.778540E-12 0.193422E-06 -21.9033 0.200000 0.592046 0.348662E-01 0.655308E-03 0.360390 0.117132E-01 0.328252E-03 0.128633E-11 0.241566E-06 -21.6825 0.250000 0.690700 0.523361E-01 0.708029E-03 0.247164 0.881610E-02 0.275769E-03 0.191414E-11 0.279793E-06 -21.4918 0.300000 0.764074 0.774485E-01 0.756712E-03 0.151222 0.628262E-02 0.215286E-03 0.279916E-11 0.315079E-06 -21.2940 0.350000 0.789741 0.121790 0.880723E-03 0.830028E-01 0.442750E-02 0.156915E-03 0.436600E-11 0.371788E-06 -21.0694 0.400000 0.756304 0.191365 0.113893E-02 0.476357E-01 0.343852E-02 0.116636E-03 0.688627E-11 0.465987E-06 -20.8634 0.450000 0.692745 0.272187 0.147327E-02 0.305778E-01 0.292512E-02 0.919066E-04 0.988855E-11 0.573780E-06 -20.7122 0.500000 0.620753 0.353881 0.183004E-02 0.208843E-01 0.257597E-02 0.748244E-04 0.129801E-10 0.677744E-06 -20.6021 0.550000 0.547832 0.433059 0.218778E-02 0.145774E-01 0.228131E-02 0.616619E-04 0.160157E-10 0.773368E-06 -20.5178 0.600000 0.476463 0.508776 0.253796E-02 0.101655E-01 0.200603E-02 0.508521E-04 0.189461E-10 0.860323E-06 -20.4503 0.650000 0.407524 0.580842 0.287721E-02 0.697473E-02 0.173905E-02 0.416453E-04 0.217554E-10 0.939388E-06 -20.3946 0.700000 0.341317 0.649327 0.320401E-02 0.464096E-02 0.147685E-02 0.336217E-04 0.244402E-10 0.101149E-05 -20.3474 0.750000 0.277906 0.714389 0.351761E-02 0.294148E-02 0.121850E-02 0.265173E-04 0.270026E-10 0.107748E-05 -20.3067 0.800000 0.217247 0.776221 0.381814E-02 0.172869E-02 0.964405E-03 0.201563E-04 0.294473E-10 0.113814E-05 -20.2711 0.850000 0.159246 0.835020 0.410585E-02 0.897348E-03 0.715044E-03 0.144103E-04 0.317797E-10 0.119412E-05 -20.2397 0.900000 0.103788 0.890980 0.438116E-02 0.369580E-03 0.470926E-03 0.918296E-05 0.340059E-10 0.124597E-05 -20.2117 0.950000 0.507481E-01 0.944283 0.464457E-02 0.859277E-04 0.232475E-03 0.439944E-05 0.361318E-10 0.129417E-05 -20.1865 1.00000 0.992878E-10 0.995102 0.489664E-02 0.320658E-21 0.458820E-12 0.844869E-14 0.381633E-10 0.133912E-05 -20.1637 Change EoS, buffer, or graphite activity (y/n)? n [plot information is written to the file species.dat, the first NSP curves are the log10 of the species abundances as a function of X(O), the next curve is the log10 of the oxygen fugacity, and the last 2-4 curves are the log10 of the atomic fractions (in the order C, O, H, S, as appropriate).] ostrich{jamie}68: psvdraw Enter plot file name: species.dat PostScript will be written to file: species.dat.ps Modify the default plot (y/n)? n [the default x-y limits for the plot are 0-1 and -10-0 (log10 units). in general -10 is too low to be useful for atomic and species abundances and too high for log10(f(O2)), thus it's probably wise to modify the default plot limits by answering yes here.] ======================================================================= c NOTES ON COMPILING: c See README.COHSRK for more information on the fluid equations c of state. c The MAIN program SPECIES and a BLOCK DATA are included in species.f, c the subroutines called by SPECIES are in the files flib.f & tlib.f. c The files may be compiled separately and the objects linked together, c or you may concatenate the files. c This program was put together from routines used in PERPLEX (see c below) and for this reason it is not as compact or as flexible c as might be desired. The size of the flib.f may cause problems c for DOS compilers, these can be overcome by splitting the source c into two or three blocks that can then be combined during linking. c Alternatively, routines that are not considered c can be eliminated if the calls to these routines from subprogram c cfluid are also eliminated. c Specifically I would recommend eliminating: c subroutine brmrk c subroutine simps c subroutine qromb c subroutine polint c subroutine trapzd c function brvol c function vdpdv c subroutine hosrk5 c subroutine cohfit c subroutine haar c subroutine psat2 c subroutine aideal c subroutine trkmrk c subroutine saxfei c subroutine hprk c subroutine cohgra c subroutine hh2ork c subroutine lohork c subroutine lomrk c this requires elimination of the calls to: brmrk, cohfit, c trkmrk, saxfei, hprk, cohgra, hh2ork, and lohork from cfluid. c subroutines warn and error can also be eliminated if the c calls to these routines, from subroutines rfluid, brmrk, c cohgra, cohsgr and cohhyb, are replaced by statements that write c an appropriate warning or error message. c----------------------------------------------------------------------