This site was set up to make available my computer program to the public that computes solid - vapor equilibria in multicomponent systems. The program was originally written in FORTRAN IV for a CDC 6400 computer. I have now converted and updated it to FORTRAN 95 and C++ for modern use using more current thermodynamic data. An executable file generated with Windows XP on a PC is available for use by anyone who does not have access to a FORTRAN 95 or C++ compiler. This file can be excuted from this web page using the sample input files and the thermodynamic data files. These files have to be local on the user's computer. When prompted for the file names, a drop down window will appear which will allow the user to browse for the files. It will be a windows type directory. For each file, the user clicks on File, clicks on Open, browse for the file in its directory, either highlights the file and clicks on open or double clicks on the file, Click on OK, Click on file and Click on exit. The thermodat and/or thermodat_new files will have to be copied from the website to the user's computer. I do not have a ftp directory set up, so the user will have to save the files to their computers by right clicking on the link and clicking on "Save target as". Then find a local directory on your computer and save it. This is easier than trying to copy and paste the files. It will work for the binary files also. The exe file may not work on a MAC. I do not have access to one, so I cannot test it on a MAC.
The thermodynamic data available on this site is data available from various sources. Most of it came from Lewis Research Center and some came from R. A. Robie and D. R. Waldbaum. I have combined the data from the NASA Glenn (formerly Lewis) Research Center NASA database, provided by Bonnie McBride of NASA Lewis, using the old format converted to my format. There is more recent data available at http://www.galcit.caltech.edu/EDL/public/thermo/thermo.inp . It can be reformatted to be used by this program. The original data sent to me by Bonnie McBride had more data for solids and liquids. The data at http://www.galcit.caltech.edu/EDL/public/thermo/nasadat does not have that data. A computer file of most of the original thermodynamic data that I had used got lost and all I had was a greenbar listing. I scanned the pages and converted them to text. I then had to go through and check for errors in the text conversion. Some of the data in the thermodynamic file on this site may have errors in it. I have included scanned copies of the original listing for reference. If the user has problems with any of the systems, they should compare the data in the thermodynamic file against the scanned listings for differences. More thermodynamic data can be found at the Explosion Dynamics Laboratory web site at http://www.galcit.caltech.edu/EDL/public/thermo.html which is maintained by Professor Joe Shepherd. Thus, the final thermodynamic data file consist of data I had originally used, new data created over the years by Dr. John Holloway, and new data from NASA Glenn Research Center.
As of March 31, 2006, I have modified the program to accept the original thermodynamic data as described in the thesis and to accept the more recent data described in the above paragraph. I converted it to a format that can be used by my program and modified the CPHS routine to compute enthalpy and entropy using the new data and the old data. The new data does not have very many condensed species. The input now allows a parameter in column 30 of the NAME parameters which designates which input will be used and which enthalpy and entropy will be used. A value of T will use the new data and a value of F will use the old data. The input file for the themodynamic data no longer has to be thermodat. The user will be prompted for the name of the file and the default will be thermodat (may not be defaulted if executing from this web page). Directory paths may be included in front of the file names (required if executing from this web page). The links below will include the routine that was modified to allow use of the browse option ( source only works with Salford Compiler), the new thermodynamic data file, a sample input file and a sample output file.
There is a link to an executable file that can be used to generate an input file for the program. It is an interactive program and will create a file in the proper format. I have also included a link to an example showing how the program was used to create an input file for SiO2 at various temperatures and pressures.
I run it on an AMD personal computer at home with the same results I got when I originally wrote the program. Over the years, the program was modified to include fugacity data for some gaseous compounds by Dr. John Holloway. The input is still in fixed field format. This web site includes the original thesis, sample input and output files, FORTRAN 95 and C++ source code and the thermodynamic data for the samples. Some of the thesis figures and tables were scanned as photo images to reduce the file sizes. The rest was converted to text. I did not include the original source code because it is outdated. However I have included the FORTRAN IV source with modifications for the fugacity changes and changes to compile on a FORTRAN 77 compiler. The program can be used for geochemical compounds and geological minerals in meteorite and geological studies. The C++ version must use a thermodata file as formated in the file on this site. The coefficient values must have at least a value of zero for blank coefficients. The C++ version will handle the new type of thermodynamic data the same way as the FORTRAN 95 version. It requires a value of TRUE in its input field to use the new data. It will still handle the old version of the thermodynamic data.
The FORTRAN 95 code was compiled and linked using Salfords FORTRAN 95 Compiler. However that compiler has bugs in it and I would also compile the source code using Laheys Online Compiler (http://www.lahey.com/check.htm) to catch the compiler bugs that Salford did not catch. Lahey does not generate an executable, it only compiles. I also compiled it using Intels Compiler, but it still has bugs in it also. Laheys Compiler was the best in my opinion. I had to use Salfords FORTRAN 95 Compiler because it came with a linker. The FORTRAN 95 code has to be compiled in the order that it is in the source file. It uses MODULES which must be defined before the FORTRAN Code. Also the Brits like to do things differently on their side of the pond. Salford does not have a gettim or getdat function for getting the time and date. If you use any other compiler, you may need to remove the subroutines gettim.f90 and getdat.f90 and their modules. The FORTRAN 95 source code has .f90 as the file extension for the FORTRAN files. This was done because Intels FORTRAN 95 compiler did not recognize an extension of .f95. If you use a compiler other than Salford, Lahey or Intel, you may have to change the file extensions.
I have found two free FORTRAN 95 compilers online. They are for your personal use only. GCC has a command line compiler and
will generate an executable if all the routines are in one file. The error messages are not too good and it is clumsy to
use. It can be found at
http://gcc.gnu.org/wiki/GFortranBinariesWindows
Click on "installer" link at the top of the page. It downloads a file that you execute to build the compiler.
Instructions for its use is on that page. I would not recomend using it.
The other is a compiler originated by Salford (Silverfrost) and is easy to use. You can build a project file that can be used to compile
and link separate files. Just keep in mind, that modules must be in the list before the file that uses them. It should be
self explanatory on its use. It also downloads an executable file that will build a directory containing the required files.
It can be found at
http://www.download.com/Silverfrost-FTN95/3000-2069-10491439.html?part=dl-Silverfro&subj=uo&tag=button
Click on "Download Now" link at the top of the page. It downloads a file that you execute to build the compiler. This compiler
may be used to compile and link C++ files. The executable file is Plato3.exe. Just double click on the icon and proceed to
find the file you want to compile and compile it by clicking on Compile in the drop down menu under Build on the top menu
bar.
For those who do not understand FORTRAN 95, there is a FORTRAN 77 compiler available. It is also originated by Salford (Silverfrots) and is easy to use. Follow the same directions for the Salford FTN95 compiler. It can be found att http://www.download.com/Silverfrost-FTN77/3000-2069_4-10537937.html?tag=lst-1
I have provided links to the two Salford's compilers down below. The user can click on a link and compile and link a FORTRAN file that is on their computer. These links are for personal use only and should not be used for commercial use. If you are using the FTN77 (FORTRAN 77 or FTN 77) compiler, then the files should have the extension of "for". If you are using the FTN95 (FORTRAN 95 or FTN 95) compiler, then the files should have the extension of "f90". You can use these links to compile and link your FORTRAN programs. If you have all your source in one file, then just open the file and click on compile to compile the program so you can fix any errors. Then click on run to execute the file. If you have separate modules, then you have to create a project file with the file names in it in the order of dependency.
The FORTRAN 95 code was converted using top down organization. All subroutines have one entrance and one exit. Only one executable statement per line of code. No "Go To's". All IF's and DO blocks have labels at start and end. All keywords are in upper case.
Appendixes A, C, D, H, J, M, N, O, P and Q information has changed but still have some useful information. Appendixes K and L are included on this web site, but he program has changed from the original thesis. The function of each routine is described in the header block of each routine now. The local and global variables are described in the header blocks for the routines and the module files. The sample input and output listings can be accessed from the main page. The current source is also available from the main page.
The input data is either integer, real (float), logical or alpha (ASCII) denoted by I, F, L and A. Integer values shall be right justified in their field otherwise zeros will be added to them. Logical values will be a T or F (upper case only) and will only occupy one space. Alpha characters will occupy the same position in the code as they occupy in the input field. All alpha fields shall be left justified. Real or float values may be anywhere in their field if a decimal point is present. If no decimal point is present and the value has trailing blanks in the field, then zero's will be added. The first digit in the field description is the field width and the digit after the decimal point (if present) is the number of digits after the decimal point. For this program, all real or float values will not have a restriction on the number of values after the decimal point.
There have been changes made to the NAMELIST values on page 58.The user may enter a maximum of 45 temperature (centigrade) and pressure (bars) values each instead of 26. The values will be in F5.0 (anywhere in the field if a decimal point is present, otherwise right justified) format with a maximum of 9 values per line. If the user enters multiple of 9 values, then a blank line must follow the last value. The user shall enter the temperature or pressure values in sequence with no blank fields. If the number of temperatures or pressure values is not a multiple of 9 values, then no blank line shall follow the last value.
Thesis
CLICK ON INKWELL TO E-MAIL AUTHOR
This site built and hosted for free by FreeWebs.com. Click here to get your own free website.