slatec4gfortran: a SLATEC distribution for the gfortran compiler == About == The SLATEC Common Mathematical Library is a widely used, authorative collection of general purpose mathematical and statistical routines, written in FORTRAN77. It is in the public domain. For more background, see doc/guide.txt For a listing of user-callable routines, see doc/toc.txt. The official homepage is http://www.netlib.org/slatec. slatec4gfortran is a SLATEC distribution for use with the gfortran compiler, created and published by Joachim Wuttke (Forschungszentrum Juelich GmbH, 2011). The homepage is http://joachimwuttke.de/slatec4gfortran. The makefiles, tests, and other auxiliary software are released into the public domain; this README file is published under the Creative Commons license CC-BY-SA. == Installation == The command $ make creates the static library libslatec.a. The commands $ make tests $ runtests make and run the tests (some of them will fail, see below 'Known Bugs'). The optional command $ make doc creates one man page for each user callable subroutine. Finally, the command $ sudo make install copies the libslatec.a to /usr/local/lib, and copies the man pages to /usr/local/man. == Background: Contents and Sources == This distribution contains the following files and directories: - src: The SLATEC source, downloaded on October 10, 2011 from http://www.netlib.org/slatec/slatec_src.tgz; compressed 2'373'787 bytes (sic: www.netlib.org/slatec has it wrong), uncompressed 10'895'820. This is basically version 4.1 of July 1, 1993, with two minor modifications made in 1994 and 1999 (see src1/changes); therefore our initial release is called 41c. - chk: Test code, downloaded on October 10, 2011 from http://www.netlib.org/slatec/slatec_chk.tgz, compressed 324'049 bytes, uncompressed 2'053'685. - i386: Machine constants for the i386 architecture infered from and by Dr. Nakano (http://surf.ml.seikei.ac.jp/~nakano/linux/FortLib-e.html), with one correction by Joachim Wuttke. Superseded by the machine constant autodetection code in mach/. - mach: Machine constant autodetection code from http://www.netlib.org/blas/d1mach.f &c. - doc: Documentation text files, copied verbatim from http://www.netlib.org/slatec. - makefile: to be used as described in the above section ('Installation'). - runtests: to be used as described in the above section ('Installation'). - makedoc.sed: sed script, replacing the Fortran program sladoc, to automatically generate man pages, obtained from http://www.netlib.org/slatec/slatec4linux.tgz, and slightly modified by Joachim Wuttke. - obj: Empty directory, to receive compiled source modules. - tests: Empty directory, to receive executable test programs. - man: Empty directory, to receive automatically generated man pages. == Known bugs == - There is no shared library libslatec.so. At a few points, the slatec code calls subroutines that must be provided by the library user (fmat, gvec, uivp, uvec, and their double-precision counterparts). Unfortunately, gfortran does not allow to create a shared library if these references are left undefined. - Some tests fail. Tests 17, 27, 28 currently detect problems. As the slatec homepage says: "If some of the quick checks fail on certain machines, it does not necessarily indicate a problem in the source, but possibly in the quick checks themselves, or the machine architecture or the operating system or the compiler or vendor or user supplied software." Any investigation into these problems will be welcome. - The man pages are installed to section 1, not 3. This is a workaround, in order to avoid name clashes with C library calls. == Bug reports == Please send bug reports by mail to j.wuttke@fz-juelich.de. The subject line should start with "slatec4gfortran: ". == Acknowledgments == This distribution has been made possible by - the original authors of SLATEC (grep AUTHOR src?/*.f); - the official maintainers of SLATEC (see doc/guide.txt); - the maintainers of netlib (http://www.netlib.org/editors.html); - Giuseppe Borzi (Univ of Messina, Italy) for makedoc.sed; - Dr. Nakano (Seikei) for determining the i386 machine constants.