nmlbypass_mod.f
118 lines · 1 definitions · on GitHub (7be4133)
Python version: nmlbypass_mod.py, 95 lines, on the right (switch to Python above the code).
Variables on this page (83)
flag_dw, flag_dx, flag_dz, fo, isetiso, isetmix, lenvg, lnewnuc, lnewvars, lstruct_time, lxbe91, lxbe92, lxbe93, lxli6, lxli7, npenv, pmma, pmmb, pmmc, pmmd, pmmjd, pmmm, pmmmd, r14_15, r16_17, s0_1_1, s0_1_12, s0_1_13, s0_1_14, s0_1_15_c12alp, s0_1_15_o16, s0_1_16, s0_1_be7e, s0_1_be7p, s0_3_3, s0_3_4, s0_hep, s0_pep, s0p_1_1, s0p_1_12, s0p_1_13, s0p_1_14, s0p_1_16, s0p_1_be7p, s0p_3_3, s0p_3_4, s0pp_1_12, s0pp_1_13, s0pp_1_16, s0pp_1_be7p, time_core_min, time_dl, time_dp, time_dr, time_dt, time_dw_global, time_dw_mix, time_dx_core_frac, time_dx_core_tot, time_dx_shell, time_dx_total, time_dy_core_frac, time_dy_core_tot, time_dy_shell, time_dy_total, time_max_dt_frac, tol_czbase_fine_width, tol_dl_max, tol_dm_max, tol_dm_min, tol_dp_core_max, tol_dp_czbase_max, tol_dp_env_max, tol_dx_max, tol_dz_max, xb10_ini, xb11_ini, xsbe91, xsbe92, xsbe93, xsli6, xsli7, zxmix
Purpose
NMLBYPASS_MOD holds the 83 namelist variables that serve only to set other quantities, or are kept for later development: none is read by the physics routines. It is used by PARMIN, REMAP and STARIN. It replaces COMMON/NMLBYPASS/ (MHP via Claude, 10/14/26), which had gathered COMMON/NEWPARAM/, /NEWCROSS/ and /XSECT/ and 18 derivation-only members of other blocks (/PMMWIND/, /NEWMX/, /VMULT/, /CCOUT1/, /ENVGEN/, and LNEWNUC of /CROSS/), so that NMLPAR_MOD holds only what the physics reads.
What its variables hold, who sets them, who reads them. All are in PARMIN's PHYSICS namelist, except NPENV, ISETMIX, ISETISO, R14_15, R16_17, ZXMIX, XB10_INI and XB11_INI, which are in CONTROL. All but NPENV carry initial values, moved from PARMIN's DATA statements.
LNEWVARSand the tolerancesTOL_DM_MIN,TOL_DM_MAX,TOL_DL_MAX,TOL_DP_*,TOL_DX_MAX,TOL_DZ_MAX,TOL_CZBASE_FINE_WIDTH,FLAG_DX,FLAG_DZ,FLAG_DW,TIME_*andLSTRUCT_TIME: "more intuitive variable names" for the mesh and time-step tolerances; withLNEWVARS,REMAPcopies them intoHPTTOL,ATIME,LPTIME,DTWINDandDTDIF(inNMLPAR_MOD).LNEWNUCand the S-factorsS0_*, with their first and second derivativesS0P_*,S0PP_*(pp chain, CNO cycle, Be7, hep, and the N15+p branches): withLNEWNUC,REMAPturns them into the rate factorsSSTANDARD(inNMLPAR_MOD) andQS0E,QQS0EE,FC12,FO16(CROSS_MOD).XSLI6,XSLI7,XSBE91–XSBE93with their switchesLXLI6–LXBE93: the light-element cross sections (keV b); PARMIN turns each one switched on into the factorSLI6, …,SBE93relative to the default.ISETMIX,ISETISO,ZXMIX,R14_15,R16_17,XB10_INI,XB11_INI: the heavy-element mixture and isotope ratios that PARMIN applies to the starting model ("MHP 10/24 added heavy element mixture controls"); PARMIN setsZXMIXfrom the chosen mixture.R16_17's default (471.4) looks swapped withR16_18's (starin.f, suspected bug 3).PMMA–PMMM,PMMJD: the exponents and constant of the wind law (reset by PARMIN for the presets ofAWIND), from which PARMIN derives the factors ofNMLPAR_MOD(EXMD,EXW,CONSTFACTOR, …);FO: written to the.shortfile only (parmin.f, lines 1008–1009↗; unused?);NPENV: a print interval, 9999 when not positive.LENVGandPMMMDare read nowhere (line 101↗, line 115↗; unused?).LENVGisKNOWN_ISSUES.md's issue 15 (lines 926–985): Every namelist file has dropped it, and its removal from the code waits for the other developers (settled from the documentation, Nov 9, 2026).
Design
A blanket USE NMLBYPASS_MOD in the three routines; STARIN uses none of the members, and declares the module so that its isotope code can reach them later (the conversion's commit message says so).
From YREC's documentation
Where Namelist Variables Live explains the split by consumer: NMLPAR_MOD holds what the physics routines read, this module what only PARMIN reads to derive something else, so that USE NMLPAR_MOD imports only names a physics routine could use; a new namelist variable goes in one or the other by that test. CONSTANTS_MOD keeps CLSUN, CRSUN beside their logarithms, and INTPAR_MOD keeps the three settings of the one integrator that uses them; the 32 CHARACTER variables are in no module and travel as arguments. The page counts 110 CONTROL, 237 PHYSICS and 36 DERIVED variables, 234 of them in NMLPAR_MOD and 83 here. Two points are out of date at 7be4133 (namelist_modules.md, lines 27 and 49): REMAP and STARIN also use this module (remap.f, line 13↗, starin.f, line 52↗), and NMLPAR_MOD now has 235 members, with L_ZERODT_PREMS (nmlpar_mod.f, lines 29–30↗).
Definitions
moduleNMLBYPASS_MOD
Change log
The changes since rp_1
Changed since rp_1. New file: the derivation-only namelist variables of six COMMON blocks as one module, with their defaults moved from PARMIN's DATA statements.