llot95a_mod.f
49 lines · 1 definitions · on GitHub (7be4133)
Python version: llot95a_mod.py, 33 lines, on the right (switch to Python above the code).
Purpose
LLOT95A_MOD holds all the OPAL95 opacity tables as read, with their grids in $\log T$, $\log R$, $X$ and $Z$, shared by 5 routines. It replaces COMMON/LLOT95A/ (MHP via Claude, 10/14/26). The dimensions NUMX = 10, NUMT = 70, NUMD = 19, NUMZ = 13 and NUMXZ = 126 (the number of tables) are PRIVATE.
What its variables hold, who sets them, who reads them.
CAPPA2(NUMXZ,NUMT,NUMD): $\log\kappa$ of every table, read byLL95TBL(missing entries set to 9.999); interpolated in $Z$ byOP95ZTAB, and in all four variables byOP954DandGETOPAL95.TGR(NUMT),R0GR(NUMD): the $\log T$ and $\log R$ grids, read from the tables byLL95TBL; used byGETOPAL95to locate a point.XXG(NUMX),ZZG(NUMZ): the $X$ values (0 to 1) and $Z$ values (0 to 0.10) of the tables;LL95TBLchecks each table's header against them,OP95XTAB,OP95ZTABandGETOPAL95interpolate in them. (For the last $X$, LL95TBL's check uses $1 - Z$ instead ofXXG(NUMX).)NZ(NUMZ): the offset of each $Z$'s tables inCAPPA2's first index (0, 10, … , 118); with nine slots for $Z$ = 0.06 and 0.08, the tablesLL95TBLstores atNZ(IZ)+10overwrite others (a suspected bug, onLL95TBL's page; line 47↗).NUMXM(NUMZ): the number of $X$ tables for each $Z$ (10, but 9, 9 and 8 for the three largest, $Z$ = 0.06, 0.08, 0.1); read nowhere: unused?XXG,ZZG,NZandNUMXMcarry initial values, moved from LL95TBL'sDATAstatements.
Design
A blanket USE LLOT95A_MOD. The module's header says its initializers came from PARMIN's DATA statements and are namelist variables; at rp_1 they were in LL95TBL, and they are in no namelist. At rp_1, main.f declared the block with its own NUMTT (also 70); that declaration is gone.
Definitions
moduleLLOT95A_MOD
Change log
The changes since rp_1
Changed since rp_1. New file: COMMON/LLOT95A/ as a module, with its fixed grids moved from LL95TBL's DATA statements.