zsulaol.f
51 lines · 1 definitions · on GitHub (7be4133)
Python version: zsulaol.py, 60 lines, on the right (switch to Python above the code).
Purpose
ZSULAOL ("spline pure Z LAOL89") prepares the pure-metal LAOL89 opacity table (DBG 12/95) for interpolation in density, as SULAOL did for the main LAOL89 tables (sulaol.f, removed since rp_1 with those tables): for each temperature, a natural cubic spline of $\log\kappa$ against $\log\rho$, through the nonzero entries, if there are at least four.
How it fits
- Inputs:
ZLAOL_MOD(formerlyCOMMON/ZLAOL/:ZOLAOL, the gridsZOT,ZORHO, sizesNUMRHOZ,NUMTZ), filled by RDZLAOL whenLPUREZis set. - Who calls it: SETUPOPAC.
- What it calls: CSPLINE (end slopes $10^{30}$, a natural spline).
- Outputs:
ZSLAOL_MOD(formerlyCOMMON/ZSLAOL/: $\log\kappa$, $\log\rho$, second derivatives, points per temperature), read by GTPURZ; a temperature with fewer than four nonzero entries getsNUMRSZ= 0, andGTPURZstops the run if it needs that temperature (gtpurz.f, line 75↗, gtpurz.f, lines 106–111↗); the table of the test suite,PURECO.DBGLAOL, has at least 23 at every temperature.ZOTis converted to $\log_{10} T$ in place (lines 23–25↗); this is safe because the routine runs once per job (main program →SETUPS→SETUPOPAC), and its only call follows a fresh read of the table byRDZLAOL, so even a second call would not take the logarithm twice (settled from the code, Nov 9, 2026: setupopac.f, lines 79–81↗).
Definitions
subroutineZSULAOL
Natural cubic splines of $\log\kappa$ against $\log\rho$ for each temperature of the pure-Z LAOL89 table.
Uses modules ZLAOL_MOD, ZSLAOL_MOD
Called by SETUPOPAC
Flowchart of its calls, in order (1)
Compiler warnings (1)
gfortran -Wall -Wextra, compiling only; nothing was run.
- line 32: Inequality comparison for REAL(8) [-Wcompare-reals]
Change log
The changes since rp_1
Changed since rp_1. Declarations only: COMMON/ZLAOL/ and /ZSLAOL/ to ZLAOL_MOD and ZSLAOL_MOD, IMPLICIT NONE; the main LAOL89 tables (SULAOL) are removed, the pure-Z one kept.