Subroutines and Data for evaluation of the Fermi-Dirac integrals and their derivatives. Documentation may be found in comments at the beginning of calcdfi.f and in the accompanying paper "Accurate Evaluation of Fermi-Dirac Integrals and Their Derivatives for Arbitrary Degeneracy and Relativity" by Juan Antonio Miralles and Kenneth A. Van Riper accepted for publication in the Astrophysical Journal Supplement. MANIFEST: Makefile makefile for fdstitch, and also to illustrate how to incorporate elements in other makefiles besscheb.f subroutine for evaluating Chebyshev series expansions called by calcdfi and calcfi bessel.tab Table of modified Bessel functions calcdfi.f Subroutine for evaluating Fermi-Dirac integrals and derivatives. calls besscheb, polynomial_int, TwoDpolyint calcfi.f Subroutine for evaluating Fermi-Dirac integrals only, no derivatives. calls besscheb, polynomial_int, TwoDpolyint dfdints.tab Table of Fermi-Dirac and Fermi derivatives fdeos.f Program to calculate Equation of State and Derivatives fdints.tab Table of Fermi-Dirac and Fermi functions fdstitch.f Program and test and illustrate usage of calcdfi and calcfi fermi7h.tab Table of Fermi function of order 7/2 polyint.f subroutines for polynomial interpolation. contains polynomial_int and TwoDpolyint INSTALLATION CONSIDERATIONS These subroutines and program have been tested on several UNIX systems: SGI IRIX, HP-UX, and DOMAIN/OS. HP-UX presented 2 matters that required extra attention: The `readonly` specification in FORTRAN open statements requires different syntax. It was necessary to include the compiler option -R8 to force all numerical constants to double precision. Equivalent options may be necessary on other platforms. FDSTITCH A small program, fdstitch, is provided for illustration of the usage of calcdfi and calcfi, and for verification of the installation. fdstitch is the program we used to compare the difference along each side of treatment boundary (for example, between interpolation in the main table for eta <= 70 and the degenerate formulae for eta > 70). The program prompts for the type of boundary, the value of eta or log beta on the boundary, and a quantity to compare. Some output from a typical run: % fdstitch 1 beta boundary, 2 eta boundary ? 1 LOG 10 beta value ? -6 Value to compare: 1 2 3 4 5 6 f12 f32 f52 df12_eta df32_eta df52_eta 7 8 9 df12_beta df32_beta df52_beta 4 [.............] -30.943 -6.000**2**2 3.22849E-14 3.22849E-14 1.00000000 -30.189 -6.000**2**2 6.86702E-14 6.86702E-14 1.00000000 -29.434 -6.000 5 0 1.46062E-13 1.46051E-13 1.00007881 -28.679 -6.000 5 0 3.10675E-13 3.10635E-13 1.00012902 .... -27.925 -6.000 5 0 6.60809E-13 6.60721E-13 1.00013343 .... [.............] 64.906 -6.000 5 0 8.0556 8.0557 0.99998391 65.660 -6.000 5 0 8.1023 8.1025 0.99998260 66.415 -6.000 5 0 8.1488 8.1489 0.99998032 67.170 -6.000 5 0 8.1950 8.1952 0.99997671 [.............] eta log beta I J f(lb-eps) f(lb+eps) f-/f+ marker Here I and J denote the table or formulae used in the evaluation for f- and f+, f- and f+ are the function at log beta or eta +/- .000001, and the marker field gives a visual flag for relatively large relative errors f+/f- . The comparison ends with a summary of the maximum relative errors found, and a prompt for further action. The maximum relative errors should be comparable to those listed for 6th order interpolation in Table 6 of the accompanying paper. If they are substantially larger, there is a problem.