PyREC scaffolding (from YREC development, 7be4133)/ zsulaol.fGlossary

zsulaol.f

51 lines · 1 definitions · on GitHub (7be4133)

Python version: zsulaol.py, 60 lines, on the right (switch to Python above the code).

Variables on this page (9)

numrhoz, numrsz, numtz, zolaol, zorho, zot, zsdorl, zslaoll, zsrhol

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 (formerly COMMON/ZLAOL/: ZOLAOL, the grids ZOT, ZORHO, sizes NUMRHOZ, NUMTZ), filled by RDZLAOL when LPUREZ is set.
  • Who calls it: SETUPOPAC.
  • What it calls: CSPLINE (end slopes $10^{30}$, a natural spline).
  • Outputs: ZSLAOL_MOD (formerly COMMON/ZSLAOL/: $\log\kappa$, $\log\rho$, second derivatives, points per temperature), read by GTPURZ; a temperature with fewer than four nonzero entries gets NUMRSZ = 0, and GTPURZ stops 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. ZOT is 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 by RDZLAOL, 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

lines 6–51 · GitHub

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)
for IT=1, NUMTZ, lines 26–49
if (NUMS .GE. 4), lines 38–45
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.