The Center for Academic Computing has announced that PSUVM (VM/CMS) will be discontinued as of July 1, 2000. Individuals must move their applications off that platform by December 31, 1999. For further information please see http://cac.psu.edu/news/alerts/psuvm.html.
This article looks at Fortran applications in particular and provides some recommendations and information sources to help you make this transition.
Many information sources for Fortran 77, Fortran 90, and Fortran 95, as well as most of the URLs referenced in this article, may be found at: http://www.personal.psu.edu/hdk/fortran.html .
While not all PSUVM Fortran applications can be ported to PCs, the CAC's experience has been that many of them can. More CPU-intensive applications will of course require stronger PC systems than less CPU-intensive applications. In general, the Fortran compilers available for microcomputers (including Macintosh) are more flexible and have far better debugging facilities than VS Fortran (on PSUVM) or mainframe Fortran subsystems in general. PC compilers offer excellent code optimization but not vectorization or, for the most part, parallelization. Pacific Sierra Research, http://www.psrv.com, does offer its VAST compiler for Unix and Windows NT that includes parallelization. In the near future it is likely that other vendors (reportedly DEC) will offer compilers that run under Linux.
For long-running CPU-intensive applications requiring vectorization and/or parallelization the CAC recommends moving your PSUVM Fortran application to our Unix platform; for more information and contacts, please see: http://cac.psu.edu/beatnic/. By long-running CPU-intensive, we mean a CPU-bound application requiring more than thirty minutes of CPU time running under VS Fortran on PSUVM.
Fortran applications that are not long-running CPU-intensive but which may require up to 500 MB of virtual storage can be (and have been) ported to PCs. In these cases PCs must be configured with a reasonable amount of RAM and have enough free fixed disk space for a paging file. For example, Fortran applications using 100MB of virtual storage, which run to completion in less than thirty minutes of system time on PSUVM, have run quite well under Microsoft Windows 9x/NT on 333MHz to 450MHz PCs with at least 128MB of RAM. For applications requiring large amounts of virtual storage, we recommend using as much RAM on the PC as virtual storage required on PSUVM. PC RAM is now relatively inexpensive, typically $2.50 to $3.00 per MB for parity-checking RAM. We recommend parity-checking RAM or better yet ECC RAM (Error Correcting Code RAM) for scientific computing. Please see: http://www.whatis.com/ecc.htm. Not all PCs support parity-checking/correcting RAM; DELL and IBM PCs do (sold by the Penn State Microcomputer Order Center). For examples, please see: http://moc.cac.psu.edu/. Typically, VS Fortran syntax requires very few changes to be successfully compiled with PC compilers. Run-time environments also typically convert rather easily.
For Macintosh computers, for the most part there is only one Fortran 90/95 compiler, namely Pro Fortran by Absoft Corporation: http://www.absoft.com/. Absoft Pro Fortran also is available for Linux. Pacific Sierra Research, http://www.psrv.com, also offers a high performance compiler for Unix and Linux. We at the CAC have Absoft Pro Fortran running on a Macintosh. If anyone else is running Fortran on a Mac or Linux system, please contact email@example.com to help network others who have this requirement.
For PCs running Microsoft Windows 9x/NT, there are nearly a dozen choices. Out of these, extensive evaluations of five compilers and run-time environments are available at Polyhedron Software: http://www.polyhedron.com/. A report giving compile-time and run-time diagnostic capabilities of three compilers is available at: http://ftp.cac.psu.edu/pub/ger/fortran/test/results.txt .
Where run-time diagnostics are concerned, one compiler
stands out from all of the rest. This is the
Salford Fortran 95 compiler. Please see
http://www.fortran.com/fortran/Salford/frmain.html and click on "FTN95".
In effect, this compiler can either generate optimized code or generate code that diagnoses run-time errors, including uninitialized variables; subscripts and strings out of range; invalid calls to subprograms; etc. None of the other compilers offer run-time diagnostics superior to Salford's Fortran 95 (FTN95). This is a full-featured compiler. It will compile some Fortran 66 syntax, as well as Fortran 77, Fortran 90 and 95 syntax.
But because we are human programmers who are ultimately responsible for the code and computed results that we turn over to others, there is no substitute for good run-time diagnostics.
If you wish to use source code tracing, and trapping while debugging, this compiler comes with an excellent windowed debugger which enables the running of a program to be traced/trapped by source line; values of every variable, including arrays, may also be displayed at any breakpoint. Otherwise, using FTN95 compiler options for debugging, simple run-time error messages with trace-back by source line number are generated in a simple command prompt window; messages in these diagnostic windows may also be copied to the clipboard or printed. If you can afford only one Windows 9x/NT compiler, this author highly recommends Salford FTN95.
If you or your research project can afford more than one
compiler, this author recommends the latest versions of Salford Fortran 95
plus one of either Digital Visual Fortran (Fortran 90/95) or Lahey Fortran
95. Please see
. Both of these compilers are full-featured compiler-linkers and offer many options and development choices. Again, on-line evaluations of all three of these compilers are available at http://ftp.cac.psu.edu/pub/ger/fortran/test/results.txt . Finally, please note that all three of these compilers are available with educational discounts.
Please feel free to contact this author at firstname.lastname@example.org if you have conversion questions or problems. This article is also available on-line, please see: http://ftp.cac.psu.edu/pub/ger/fortran/FortranPSUVM.html