Version: dev

RRTMParameters

Scheme constants of WRF's RRTM longwave radiation (ra_lw_physics = 1, phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997), collected as named parameters so that no literal appears inline in the RRTM components. Physical constants shared with the rest of WRF live in lib/wrf_constants.esm; the values here are the ones RRTM hard-wires for itself, several of which deliberately differ from WRF's (HEATFAC uses g = 9.8066 m/s^2 and cp = 1.004 kJ/(kg K), not WRF's 9.81 and 1004.5). Mounted as subsystem `par` by the RRTM components.

.esm schema
1.2.0
Source
components/atmospheric_radiation/rrtm_lw/rrtm_parameters.esm

Description

Scheme constants of WRF’s RRTM longwave radiation (ra_lw_physics = 1, phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997), collected as named parameters so that no literal appears inline in the RRTM components. Physical constants shared with the rest of WRF live in lib/wrf_constants.esm; the values here are the ones RRTM hard-wires for itself, several of which deliberately differ from WRF’s (HEATFAC uses g = 9.8066 m/s^2 and cp = 1.004 kJ/(kg K), not WRF’s 9.81 and 1004.5). Mounted as subsystem par by the RRTM components.

Reference

  • Mlawer, E. J., S. J. Taubman, P. D. Brown, M. J. Iacono, and S. A. Clough (1997). Radiative transfer for inhomogeneous atmospheres: RRTM, a validated correlated-k model for the longwave. J. Geophys. Res., 102(D14), 16663-16682.
  • WRF 4.8 phys/module_ra_rrtm.F: HEATFAC (DATA, line 971), deltap (line 31), SECANG/WTNUM (lines 6333-6334), MM5ATM cloud absorption coefficients ABCW/ABICE/ABRN/ABSN and the molecular-weight data (lines 3739-3900).

Parameters

NameUnitsDefaultDescription
heatfacK*m^2*hPa/(W*day)8.4391RRTM’s HEATFAC: the factor converting a net-flux difference per pressure interval (W/m^2 per hPa) into a heating rate in K/day, (g)(86400 s/day)(1e-5)/(cp) with g = 9.8066 m/s^2 and cp = 1.004e3 J/(kg K), rounded to the literal 8.4391 (RTRN reads the DATA literal, not the formula; the formula gives 8.43915, 5.5e-6 higher). Kept as the literal so that the heating rate reproduces the Fortran to real32 roundoff.
seconds_per_days/day86400.0Unit conversion between the K/day of HTR and the K/s of the WRF tendency (RRTM: TTEN(K) = HTR/86400.).
pa_per_hpaPa/hPa100.0Unit conversion between WRF’s Pa pressures (p8w) and the hPa (mb) pressures of the RRTM column (PZ = Pw/100 in RRTMLWRAD).
deltaphPa4.0Pressure thickness of each buffer layer that MM5ATM inserts above the model top so that the RRTM column reaches p = 0 (module parameter deltap = 4 mb, line 31): PZ(L) = PZ(L-1) - deltap for L = kte+1 .. NLAYERS-1, PZ(NLAYERS) = 0.
secang11.66Diffusivity-approximation secant of the single quadrature angle used for the flux integration (RTRN SECANG = 1.66, consistent with the NCAR CCM).
wtnum10.5Gaussian weight of that single angle for the radiance-to-flux conversion (RTRN WTNUM = 0.5).
abcwm^2/g0.144Cloud-water longwave mass absorption coefficient (MM5ATM ABCW; TAUCLOUD = ABCW*CLWP + …).
abicem^2/g0.0735Cloud-ice longwave mass absorption coefficient (MM5ATM ABICE).
abrnm^2/g0.00033Rain longwave absorption coefficient applied to the (rho q_r)^0.75 path (MM5ATM ABRN).
absnm^2/g0.00234Snow longwave absorption coefficient applied to the (rho q_s)^0.75 path (MM5ATM ABSN).
amdg/mol28.9644Effective molecular weight of dry air (MM5ATM amd).
amwg/mol18.0154Molecular weight of water vapour (MM5ATM amw).
amdw11.607758Ratio amd/amw converting the water-vapour mass mixing ratio into a volume mixing ratio relative to dry air (MM5ATM amdw; the Fortran carries the rounded literal, not the quotient of amd and amw).
amdo10.603461Ratio amd/amo (ozone) converting the ozone mass mixing ratio into a volume mixing ratio (MM5ATM amdo).
avgdro1/mol6.022e+23Avogadro’s number as RRTM rounds it (MM5ATM avgdro = 6.022E23).
h2ovmr_top15e-06Constant water-vapour volume mixing ratio assigned to the buffer layers above the model top (MM5ATM h2ovmr).
qv_minkg/kg1e-12Floor applied to the model water-vapour mixing ratio before the column amounts are formed (MM5ATM QV(K) = AMAX1(QV(K), 1.E-12)).
col_scale11e-20RRTM’s 1.E-20 scaling of the molecular column amounts (SETCOEF: COLH2O = 1.E-20*WKL(1), …), so that the k-distribution coefficients stay in a comfortable floating-point range.
tau_overcast10.01Cloud optical depth above which MM5ATM forces the layer cloud fraction to 1 (IF(TAUCLOUD(L).GT.0.01) CLDFRC = 1.).
tbound_limitK340.0Upper limit of the Planck-function table; a surface temperature at or above it is reset (MM5ATM: IF(TBOUND .GT. 340.) TBOUND = 339.99; see rrtm_column.esm tbound for why the cap here is inclusive).
tbound_resetK339.99Value the surface temperature is reset to when it reaches tbound_limit.
rho_refkg/m^31.0The implicit unit density of MM5ATM’s rain and snow paths PLWP = (ROQR)**0.75DZ*1000: the 0.75 power is taken of the water content in kg/m^3, so the paths are written ((rho q)/rho_ref)^0.75 rho_ref dz to make the power dimensionless.
g_per_kgg/kg1000.0Unit conversion: MM5ATM forms the condensate paths in g/m^2 (the *1000.) and the dry-air column in g/cm^2.
cm2_per_m2cm^2/m^210000.0Unit conversion m^2 -> cm^2 for the molecular column amounts (molecules per cm^2); together with g_per_kg and pa_per_hpa it is the ‘1.E3/(G*100.)’ of MM5ATM’s COLDRY.
bpade13.597122302158273RRTM’s BPADE = 1/0.278, the inverse Pade constant of the tau-transition function: GASABS maps the diffusivity-weighted gas optical depth to TFF = od/(BPADE + od) and quantises it as ITR = INT(5000 TFF + 0.5); RTRN inverts the quantised TFF back to the table optical depth TAU(ITR) = BPADE (ITR/5000)/(1 - ITR/5000) (RRTMINIT loop 1000).
tau_table_resolution15000.0Number of intervals of RRTM’s TAU/TF/TRANS lookup tables (index 0..5000; RRTMINIT). ITR/5000 is the quantised Pade transition fraction.
tau_saturated110000000000.0TAU(5000) = 1.E10: the optical depth RRTMINIT assigns to the last table entry (transition fraction 1), for which TRANS = 0 and TF = 1.
tf_linear_threshold10.1Optical depth below which RRTMINIT uses the linear-in-tau limit TF = tau/6 for the tau-transition function instead of 1 - 2(1/tau - exp(-tau)/(1 - exp(-tau))) (the code comment says 0.01; the code tests 0.1).
fluxfac162831.853071795864RRTM’s FLUXFAC = 2e4 pi: converts the band-integrated radiance sums (Planck integrals in W/(m^2 sr) per cm^-1 x 1e-4, TOTPLNK table units) into fluxes in W/m^2 after the WTNUM quadrature weight (RRTMINIT).
unit_kelvinK1.0One kelvin: makes the TOTPLNK table argument (T - 159) and its fractional part dimensionless in the Planck interpolation of rtrn_sweep.esm (the table is indexed by the integer kelvin value).
unit_hpahPa1.0One hectopascal: divides a pressure so that its logarithm (SETCOEF PLOG = LOG(PAVEL) with PAVEL in hPa) is dimensionless.
p_stphPa1013.0Standard pressure of the continuum scaling factor (SETCOEF STPFAC = 296/1013: SCALEFAC = PAVEL STPFAC/TAVEL).
t_stpK296.0Standard temperature of the continuum scaling factor (SETCOEF STPFAC = 296/1013).
plog_ref_top16.96ln of the first reference pressure, ln PREF(1) = 6.96 (SETCOEF: JP = INT(36 - 5 (PLOG + 0.04)) is the bin of PLOG on the 0.2-wide ln-pressure grid starting at 6.96).
plog_ref_step10.2Spacing of the reference ln-pressure grid (PREFLOG(k) = 6.96 - 0.2 (k - 1)).
jp_max158.0Largest reference-pressure bin (58 of the 59 reference pressures; SETCOEF clamps JP to 1..58 so that JP + 1 is a valid table row).
dt_refK15.0Spacing of the five reference temperatures TREF - 30 .. TREF + 30 K around TREF(JP) (SETCOEF: JT = INT(3 + (TAVEL - TREF(JP))/15)).
jt_max14.0Largest reference-temperature bin (SETCOEF clamps JT, JT1 to 1..4 so that JT + 1 is a valid row).
t_self_refK188.0Origin of the water-vapour self-continuum temperature grid (SETCOEF FACTOR = (TAVEL - 188)/7.2).
dt_selfK7.2Spacing of the self-continuum temperature grid; row INDSELF = INT(FACTOR) - 7 spans 245.6 .. 310.4 K.
indself_offset17.0Offset between the self-continuum grid index and the SELFREF table row (INDSELF = INT(FACTOR) - 7).
indself_max19.0Largest SELFREF row used as the lower interpolation node (INDSELF clamped to 1..9; row 10 is the upper node).
plog_troposphere14.56ln-pressure bound of the lower-atmosphere k-tables: layers with PLOG > 4.56 (p > 95.6 hPa) count in LAYTROP and use ABSA (SETCOEF).
plog_switch15.76ln-pressure bound of band 8’s lower/upper switch: layers with PLOG > 5.76 (p > 317 hPa) count in LAYSWTCH.
plog_low16.62ln-pressure bound of band 9’s lowest N2O block: layers with PLOG >= 6.62 (p >= 750 hPa) count in LAYLOW.
jp_switch_check16.0SETCOEF’s round-off guard on LAYSWTCH: if JP(LAYSWTCH + 1) <= 6 the switch layer is moved up by one.
co2_reference_vmr10.000355CO2 volume mixing ratio the k-tables were built for (SETCOEF CO2REG = 3.55E-24 COLDRY = 1e-20 coldry * 3.55e-4; CO2MULT scales the excess over it).
co2mult_coef1272.63Prefactor of the CO2 excess weighting CO2MULT = (COLCO2 - CO2REG) 272.63 exp(-1919.4/TAVEL)/(8.7604E-4 TAVEL) (SETCOEF; the E = 1334.2 cm^-1 Boltzmann factor).
co2mult_energyK1919.4Temperature scale of the CO2MULT Boltzmann factor, hc E/k for E = 1334.2 cm^-1.
co2mult_partition1/K0.00087604Partition-function coefficient of CO2MULT.
col_floor11e-32Floor applied to a vanishing scaled column: SETCOEF replaces COLCO2, COLN2O, COLCH4 = 0 by 1E-32 COLDRY.
o3_topkg/kg6.135e-06Ozone mass mixing ratio MM5ATM assigns to the top RRTM layer (O3PROF2(NLAYERS) = 6.135E-6, the top value of the winter climatology).
pp_half_bottomhPa1100.0Lower edge of the first ozone-climatology bin (O3DATA PPWRKH(1) = 1100 hPa).
oneminus10.999999Cap of the species parameter, ONEMINUS = 1 - 1E-6 (module parameter), keeping the mixing-dimension bin below the last node.
spec_bins_lower18.0Number of species-mixing intervals of the lower-atmosphere k-tables (SPECMULT = 8 SPECPARM).
spec_bins_upper14.0Number of species-mixing intervals of the upper-atmosphere two-species k-tables (SPECMULT = 4 SPECPARM, bands 3-5).
corr_table_scale1200.0Resolution of TAUGB2’s CORR1/CORR2 lookup: IFP = INT(200 FP + 0.5), tables at FP = 0.005 IFP (RRTMINIT loop 1200; written here as the closed forms sqrt(FP)/FP and (1 - sqrt(FP))/(1 - FP) at the quantised FP).
h2oparam_scale10.002TAUGB2’s water-vapour parameter H2OPARAM = WATER/(WATER + 0.002).
strrat_b311.19268Band 3 species ratio STRRAT (H2O + STRRAT CO2).
strrat_b4_lower1850.577Band 4 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 CO2).
strrat_b4_upper135.7416Band 4 upper-atmosphere species ratio STRRAT2 (O3 + STRRAT2 CO2).
strrat_b5_lower190.4894Band 5 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 CO2).
strrat_b5_upper10.900502Band 5 upper-atmosphere species ratio STRRAT2 (O3 + STRRAT2 CO2).
strrat_b7182110.4Band 7 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 O3).
strrat_b9121.6282Band 9 lower-atmosphere species ratio STRRAT (H2O + STRRAT CH4).
strrat_b1210.009736757Band 12 species ratio STRRAT1 (H2O + STRRAT1 CO2).
strrat_b13116658.87Band 13 species ratio STRRAT1 (H2O + STRRAT1 N2O).
strrat_b1510.2883201Band 15 species ratio STRRAT1 (N2O + STRRAT1 CO2).
strrat_b161830.411Band 16 species ratio STRRAT1 (H2O + STRRAT1 CH4).
b3_js_split10.9Band 3 lower atmosphere: the last mixing interval (JS = 8) is split at FS = 0.9 into a stretched interval FS/0.9 and a narrow one 10 (FS - 0.9) with JS = 9 (TAUGB3).
b4_fs_split10.0024Band 4 upper atmosphere: the first mixing interval is split at FS = 0.0024 (TAUGB4: JS = 1, FS/0.0024 below; JS = 2, (FS - 0.0024)/0.9976 above; JS + 1 for the other intervals).
b9_fs_split110.68Band 9 lower atmosphere: the JS = 8 interval is split at FS = 0.68 and 0.92 into three (TAUGB9).
b9_fs_split210.92Band 9 lower atmosphere: second split point of the JS = 8 interval.
jp_upper_offset113.0First reference-pressure row of the upper-atmosphere tables ABSB (JP = 13; band 8 uses 7).
jp_upper_offset_b817.0Band 8’s first upper-atmosphere reference-pressure row (LAYSWTCH split at JP = 7).

Raw .esm

Raw .esm JSON (this component)
{
  "variables": {
    "heatfac": {
      "type": "parameter",
      "units": "K*m^2*hPa/(W*day)",
      "default": 8.4391,
      "description": "RRTM's HEATFAC: the factor converting a net-flux difference per pressure interval (W/m^2 per hPa) into a heating rate in K/day, (g)(86400 s/day)(1e-5)/(cp) with g = 9.8066 m/s^2 and cp = 1.004e3 J/(kg K), rounded to the literal 8.4391 (RTRN reads the DATA literal, not the formula; the formula gives 8.43915, 5.5e-6 higher). Kept as the literal so that the heating rate reproduces the Fortran to real32 roundoff."
    },
    "seconds_per_day": {
      "type": "parameter",
      "units": "s/day",
      "default": 86400.0,
      "description": "Unit conversion between the K/day of HTR and the K/s of the WRF tendency (RRTM: TTEN(K) = HTR/86400.)."
    },
    "pa_per_hpa": {
      "type": "parameter",
      "units": "Pa/hPa",
      "default": 100.0,
      "description": "Unit conversion between WRF's Pa pressures (p8w) and the hPa (mb) pressures of the RRTM column (PZ = Pw/100 in RRTMLWRAD)."
    },
    "deltap": {
      "type": "parameter",
      "units": "hPa",
      "default": 4.0,
      "description": "Pressure thickness of each buffer layer that MM5ATM inserts above the model top so that the RRTM column reaches p = 0 (module parameter deltap = 4 mb, line 31): PZ(L) = PZ(L-1) - deltap for L = kte+1 .. NLAYERS-1, PZ(NLAYERS) = 0."
    },
    "secang": {
      "type": "parameter",
      "units": "1",
      "default": 1.66,
      "description": "Diffusivity-approximation secant of the single quadrature angle used for the flux integration (RTRN SECANG = 1.66, consistent with the NCAR CCM)."
    },
    "wtnum": {
      "type": "parameter",
      "units": "1",
      "default": 0.5,
      "description": "Gaussian weight of that single angle for the radiance-to-flux conversion (RTRN WTNUM = 0.5)."
    },
    "abcw": {
      "type": "parameter",
      "units": "m^2/g",
      "default": 0.144,
      "description": "Cloud-water longwave mass absorption coefficient (MM5ATM ABCW; TAUCLOUD = ABCW*CLWP + ...)."
    },
    "abice": {
      "type": "parameter",
      "units": "m^2/g",
      "default": 0.0735,
      "description": "Cloud-ice longwave mass absorption coefficient (MM5ATM ABICE)."
    },
    "abrn": {
      "type": "parameter",
      "units": "m^2/g",
      "default": 0.00033,
      "description": "Rain longwave absorption coefficient applied to the (rho q_r)^0.75 path (MM5ATM ABRN)."
    },
    "absn": {
      "type": "parameter",
      "units": "m^2/g",
      "default": 0.00234,
      "description": "Snow longwave absorption coefficient applied to the (rho q_s)^0.75 path (MM5ATM ABSN)."
    },
    "amd": {
      "type": "parameter",
      "units": "g/mol",
      "default": 28.9644,
      "description": "Effective molecular weight of dry air (MM5ATM amd)."
    },
    "amw": {
      "type": "parameter",
      "units": "g/mol",
      "default": 18.0154,
      "description": "Molecular weight of water vapour (MM5ATM amw)."
    },
    "amdw": {
      "type": "parameter",
      "units": "1",
      "default": 1.607758,
      "description": "Ratio amd/amw converting the water-vapour mass mixing ratio into a volume mixing ratio relative to dry air (MM5ATM amdw; the Fortran carries the rounded literal, not the quotient of amd and amw)."
    },
    "amdo": {
      "type": "parameter",
      "units": "1",
      "default": 0.603461,
      "description": "Ratio amd/amo (ozone) converting the ozone mass mixing ratio into a volume mixing ratio (MM5ATM amdo)."
    },
    "avgdro": {
      "type": "parameter",
      "units": "1/mol",
      "default": 6.022e+23,
      "description": "Avogadro's number as RRTM rounds it (MM5ATM avgdro = 6.022E23)."
    },
    "h2ovmr_top": {
      "type": "parameter",
      "units": "1",
      "default": 5e-06,
      "description": "Constant water-vapour volume mixing ratio assigned to the buffer layers above the model top (MM5ATM h2ovmr)."
    },
    "qv_min": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 1e-12,
      "description": "Floor applied to the model water-vapour mixing ratio before the column amounts are formed (MM5ATM QV(K) = AMAX1(QV(K), 1.E-12))."
    },
    "col_scale": {
      "type": "parameter",
      "units": "1",
      "default": 1e-20,
      "description": "RRTM's 1.E-20 scaling of the molecular column amounts (SETCOEF: COLH2O = 1.E-20*WKL(1), ...), so that the k-distribution coefficients stay in a comfortable floating-point range."
    },
    "tau_overcast": {
      "type": "parameter",
      "units": "1",
      "default": 0.01,
      "description": "Cloud optical depth above which MM5ATM forces the layer cloud fraction to 1 (IF(TAUCLOUD(L).GT.0.01) CLDFRC = 1.)."
    },
    "tbound_limit": {
      "type": "parameter",
      "units": "K",
      "default": 340.0,
      "description": "Upper limit of the Planck-function table; a surface temperature at or above it is reset (MM5ATM: IF(TBOUND .GT. 340.) TBOUND = 339.99; see rrtm_column.esm tbound for why the cap here is inclusive)."
    },
    "tbound_reset": {
      "type": "parameter",
      "units": "K",
      "default": 339.99,
      "description": "Value the surface temperature is reset to when it reaches tbound_limit."
    },
    "rho_ref": {
      "type": "parameter",
      "units": "kg/m^3",
      "default": 1.0,
      "description": "The implicit unit density of MM5ATM's rain and snow paths PLWP = (RO*QR)**0.75*DZ*1000: the 0.75 power is taken of the water content in kg/m^3, so the paths are written ((rho q)/rho_ref)^0.75 rho_ref dz to make the power dimensionless."
    },
    "g_per_kg": {
      "type": "parameter",
      "units": "g/kg",
      "default": 1000.0,
      "description": "Unit conversion: MM5ATM forms the condensate paths in g/m^2 (the *1000.) and the dry-air column in g/cm^2."
    },
    "cm2_per_m2": {
      "type": "parameter",
      "units": "cm^2/m^2",
      "default": 10000.0,
      "description": "Unit conversion m^2 -> cm^2 for the molecular column amounts (molecules per cm^2); together with g_per_kg and pa_per_hpa it is the '1.E3/(G*100.)' of MM5ATM's COLDRY."
    },
    "bpade": {
      "type": "parameter",
      "units": "1",
      "default": 3.597122302158273,
      "description": "RRTM's BPADE = 1/0.278, the inverse Pade constant of the tau-transition function: GASABS maps the diffusivity-weighted gas optical depth to TFF = od/(BPADE + od) and quantises it as ITR = INT(5000 TFF + 0.5); RTRN inverts the quantised TFF back to the table optical depth TAU(ITR) = BPADE (ITR/5000)/(1 - ITR/5000) (RRTMINIT loop 1000)."
    },
    "tau_table_resolution": {
      "type": "parameter",
      "units": "1",
      "default": 5000.0,
      "description": "Number of intervals of RRTM's TAU/TF/TRANS lookup tables (index 0..5000; RRTMINIT). ITR/5000 is the quantised Pade transition fraction."
    },
    "tau_saturated": {
      "type": "parameter",
      "units": "1",
      "default": 10000000000.0,
      "description": "TAU(5000) = 1.E10: the optical depth RRTMINIT assigns to the last table entry (transition fraction 1), for which TRANS = 0 and TF = 1."
    },
    "tf_linear_threshold": {
      "type": "parameter",
      "units": "1",
      "default": 0.1,
      "description": "Optical depth below which RRTMINIT uses the linear-in-tau limit TF = tau/6 for the tau-transition function instead of 1 - 2(1/tau - exp(-tau)/(1 - exp(-tau))) (the code comment says 0.01; the code tests 0.1)."
    },
    "fluxfac": {
      "type": "parameter",
      "units": "1",
      "default": 62831.853071795864,
      "description": "RRTM's FLUXFAC = 2e4 pi: converts the band-integrated radiance sums (Planck integrals in W/(m^2 sr) per cm^-1 x 1e-4, TOTPLNK table units) into fluxes in W/m^2 after the WTNUM quadrature weight (RRTMINIT)."
    },
    "unit_kelvin": {
      "type": "parameter",
      "units": "K",
      "default": 1.0,
      "description": "One kelvin: makes the TOTPLNK table argument (T - 159) and its fractional part dimensionless in the Planck interpolation of rtrn_sweep.esm (the table is indexed by the integer kelvin value)."
    },
    "unit_hpa": {
      "type": "parameter",
      "units": "hPa",
      "default": 1.0,
      "description": "One hectopascal: divides a pressure so that its logarithm (SETCOEF PLOG = LOG(PAVEL) with PAVEL in hPa) is dimensionless."
    },
    "p_stp": {
      "type": "parameter",
      "units": "hPa",
      "default": 1013.0,
      "description": "Standard pressure of the continuum scaling factor (SETCOEF STPFAC = 296/1013: SCALEFAC = PAVEL STPFAC/TAVEL)."
    },
    "t_stp": {
      "type": "parameter",
      "units": "K",
      "default": 296.0,
      "description": "Standard temperature of the continuum scaling factor (SETCOEF STPFAC = 296/1013)."
    },
    "plog_ref_top": {
      "type": "parameter",
      "units": "1",
      "default": 6.96,
      "description": "ln of the first reference pressure, ln PREF(1) = 6.96 (SETCOEF: JP = INT(36 - 5 (PLOG + 0.04)) is the bin of PLOG on the 0.2-wide ln-pressure grid starting at 6.96)."
    },
    "plog_ref_step": {
      "type": "parameter",
      "units": "1",
      "default": 0.2,
      "description": "Spacing of the reference ln-pressure grid (PREFLOG(k) = 6.96 - 0.2 (k - 1))."
    },
    "jp_max": {
      "type": "parameter",
      "units": "1",
      "default": 58.0,
      "description": "Largest reference-pressure bin (58 of the 59 reference pressures; SETCOEF clamps JP to 1..58 so that JP + 1 is a valid table row)."
    },
    "dt_ref": {
      "type": "parameter",
      "units": "K",
      "default": 15.0,
      "description": "Spacing of the five reference temperatures TREF - 30 .. TREF + 30 K around TREF(JP) (SETCOEF: JT = INT(3 + (TAVEL - TREF(JP))/15))."
    },
    "jt_max": {
      "type": "parameter",
      "units": "1",
      "default": 4.0,
      "description": "Largest reference-temperature bin (SETCOEF clamps JT, JT1 to 1..4 so that JT + 1 is a valid row)."
    },
    "t_self_ref": {
      "type": "parameter",
      "units": "K",
      "default": 188.0,
      "description": "Origin of the water-vapour self-continuum temperature grid (SETCOEF FACTOR = (TAVEL - 188)/7.2)."
    },
    "dt_self": {
      "type": "parameter",
      "units": "K",
      "default": 7.2,
      "description": "Spacing of the self-continuum temperature grid; row INDSELF = INT(FACTOR) - 7 spans 245.6 .. 310.4 K."
    },
    "indself_offset": {
      "type": "parameter",
      "units": "1",
      "default": 7.0,
      "description": "Offset between the self-continuum grid index and the SELFREF table row (INDSELF = INT(FACTOR) - 7)."
    },
    "indself_max": {
      "type": "parameter",
      "units": "1",
      "default": 9.0,
      "description": "Largest SELFREF row used as the lower interpolation node (INDSELF clamped to 1..9; row 10 is the upper node)."
    },
    "plog_troposphere": {
      "type": "parameter",
      "units": "1",
      "default": 4.56,
      "description": "ln-pressure bound of the lower-atmosphere k-tables: layers with PLOG > 4.56 (p > 95.6 hPa) count in LAYTROP and use ABSA (SETCOEF)."
    },
    "plog_switch": {
      "type": "parameter",
      "units": "1",
      "default": 5.76,
      "description": "ln-pressure bound of band 8's lower/upper switch: layers with PLOG > 5.76 (p > 317 hPa) count in LAYSWTCH."
    },
    "plog_low": {
      "type": "parameter",
      "units": "1",
      "default": 6.62,
      "description": "ln-pressure bound of band 9's lowest N2O block: layers with PLOG >= 6.62 (p >= 750 hPa) count in LAYLOW."
    },
    "jp_switch_check": {
      "type": "parameter",
      "units": "1",
      "default": 6.0,
      "description": "SETCOEF's round-off guard on LAYSWTCH: if JP(LAYSWTCH + 1) <= 6 the switch layer is moved up by one."
    },
    "co2_reference_vmr": {
      "type": "parameter",
      "units": "1",
      "default": 0.000355,
      "description": "CO2 volume mixing ratio the k-tables were built for (SETCOEF CO2REG = 3.55E-24 COLDRY = 1e-20 coldry * 3.55e-4; CO2MULT scales the excess over it)."
    },
    "co2mult_coef": {
      "type": "parameter",
      "units": "1",
      "default": 272.63,
      "description": "Prefactor of the CO2 excess weighting CO2MULT = (COLCO2 - CO2REG) 272.63 exp(-1919.4/TAVEL)/(8.7604E-4 TAVEL) (SETCOEF; the E = 1334.2 cm^-1 Boltzmann factor)."
    },
    "co2mult_energy": {
      "type": "parameter",
      "units": "K",
      "default": 1919.4,
      "description": "Temperature scale of the CO2MULT Boltzmann factor, hc E/k for E = 1334.2 cm^-1."
    },
    "co2mult_partition": {
      "type": "parameter",
      "units": "1/K",
      "default": 0.00087604,
      "description": "Partition-function coefficient of CO2MULT."
    },
    "col_floor": {
      "type": "parameter",
      "units": "1",
      "default": 1e-32,
      "description": "Floor applied to a vanishing scaled column: SETCOEF replaces COLCO2, COLN2O, COLCH4 = 0 by 1E-32 COLDRY."
    },
    "o3_top": {
      "type": "parameter",
      "units": "kg/kg",
      "default": 6.135e-06,
      "description": "Ozone mass mixing ratio MM5ATM assigns to the top RRTM layer (O3PROF2(NLAYERS) = 6.135E-6, the top value of the winter climatology)."
    },
    "pp_half_bottom": {
      "type": "parameter",
      "units": "hPa",
      "default": 1100.0,
      "description": "Lower edge of the first ozone-climatology bin (O3DATA PPWRKH(1) = 1100 hPa)."
    },
    "oneminus": {
      "type": "parameter",
      "units": "1",
      "default": 0.999999,
      "description": "Cap of the species parameter, ONEMINUS = 1 - 1E-6 (module parameter), keeping the mixing-dimension bin below the last node."
    },
    "spec_bins_lower": {
      "type": "parameter",
      "units": "1",
      "default": 8.0,
      "description": "Number of species-mixing intervals of the lower-atmosphere k-tables (SPECMULT = 8 SPECPARM)."
    },
    "spec_bins_upper": {
      "type": "parameter",
      "units": "1",
      "default": 4.0,
      "description": "Number of species-mixing intervals of the upper-atmosphere two-species k-tables (SPECMULT = 4 SPECPARM, bands 3-5)."
    },
    "corr_table_scale": {
      "type": "parameter",
      "units": "1",
      "default": 200.0,
      "description": "Resolution of TAUGB2's CORR1/CORR2 lookup: IFP = INT(200 FP + 0.5), tables at FP = 0.005 IFP (RRTMINIT loop 1200; written here as the closed forms sqrt(FP)/FP and (1 - sqrt(FP))/(1 - FP) at the quantised FP)."
    },
    "h2oparam_scale": {
      "type": "parameter",
      "units": "1",
      "default": 0.002,
      "description": "TAUGB2's water-vapour parameter H2OPARAM = WATER/(WATER + 0.002)."
    },
    "strrat_b3": {
      "type": "parameter",
      "units": "1",
      "default": 1.19268,
      "description": "Band 3 species ratio STRRAT (H2O + STRRAT CO2)."
    },
    "strrat_b4_lower": {
      "type": "parameter",
      "units": "1",
      "default": 850.577,
      "description": "Band 4 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 CO2)."
    },
    "strrat_b4_upper": {
      "type": "parameter",
      "units": "1",
      "default": 35.7416,
      "description": "Band 4 upper-atmosphere species ratio STRRAT2 (O3 + STRRAT2 CO2)."
    },
    "strrat_b5_lower": {
      "type": "parameter",
      "units": "1",
      "default": 90.4894,
      "description": "Band 5 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 CO2)."
    },
    "strrat_b5_upper": {
      "type": "parameter",
      "units": "1",
      "default": 0.900502,
      "description": "Band 5 upper-atmosphere species ratio STRRAT2 (O3 + STRRAT2 CO2)."
    },
    "strrat_b7": {
      "type": "parameter",
      "units": "1",
      "default": 82110.4,
      "description": "Band 7 lower-atmosphere species ratio STRRAT1 (H2O + STRRAT1 O3)."
    },
    "strrat_b9": {
      "type": "parameter",
      "units": "1",
      "default": 21.6282,
      "description": "Band 9 lower-atmosphere species ratio STRRAT (H2O + STRRAT CH4)."
    },
    "strrat_b12": {
      "type": "parameter",
      "units": "1",
      "default": 0.009736757,
      "description": "Band 12 species ratio STRRAT1 (H2O + STRRAT1 CO2)."
    },
    "strrat_b13": {
      "type": "parameter",
      "units": "1",
      "default": 16658.87,
      "description": "Band 13 species ratio STRRAT1 (H2O + STRRAT1 N2O)."
    },
    "strrat_b15": {
      "type": "parameter",
      "units": "1",
      "default": 0.2883201,
      "description": "Band 15 species ratio STRRAT1 (N2O + STRRAT1 CO2)."
    },
    "strrat_b16": {
      "type": "parameter",
      "units": "1",
      "default": 830.411,
      "description": "Band 16 species ratio STRRAT1 (H2O + STRRAT1 CH4)."
    },
    "b3_js_split": {
      "type": "parameter",
      "units": "1",
      "default": 0.9,
      "description": "Band 3 lower atmosphere: the last mixing interval (JS = 8) is split at FS = 0.9 into a stretched interval FS/0.9 and a narrow one 10 (FS - 0.9) with JS = 9 (TAUGB3)."
    },
    "b4_fs_split": {
      "type": "parameter",
      "units": "1",
      "default": 0.0024,
      "description": "Band 4 upper atmosphere: the first mixing interval is split at FS = 0.0024 (TAUGB4: JS = 1, FS/0.0024 below; JS = 2, (FS - 0.0024)/0.9976 above; JS + 1 for the other intervals)."
    },
    "b9_fs_split1": {
      "type": "parameter",
      "units": "1",
      "default": 0.68,
      "description": "Band 9 lower atmosphere: the JS = 8 interval is split at FS = 0.68 and 0.92 into three (TAUGB9)."
    },
    "b9_fs_split2": {
      "type": "parameter",
      "units": "1",
      "default": 0.92,
      "description": "Band 9 lower atmosphere: second split point of the JS = 8 interval."
    },
    "jp_upper_offset": {
      "type": "parameter",
      "units": "1",
      "default": 13.0,
      "description": "First reference-pressure row of the upper-atmosphere tables ABSB (JP = 13; band 8 uses 7)."
    },
    "jp_upper_offset_b8": {
      "type": "parameter",
      "units": "1",
      "default": 7.0,
      "description": "Band 8's first upper-atmosphere reference-pressure row (LAYSWTCH split at JP = 7)."
    }
  },
  "equations": []
}