RTRNSweep
RRTM longwave radiative transfer (SUBROUTINE RTRN of phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997, Iacono's CCM revision): from the quantised gas optical depths ITR and Planck fractions PFRAC of GASABS, the cloud optical depths and fractions, and the layer/level temperatures of the extended RRTM column, compute the Planck sources, the one-angle (diffusivity-angle, secant 1.66) downward and upward radiance sweeps for all 140 g-points with the RRTM cloud-fraction overlap, the clear-sky sweeps, the band-summed and total up/down fluxes, and RRTM's heating rates HTR/HTRC. The two sweeps are esm-spec 4.3.1.1 recurrences over the level index (one per g-point): each level's radiance is the previous level's radiance transmitted through the intervening layer plus that layer's emission, a genuinely sequential integration of the Schwarzschild equation that has no closed form once the layer sources vary (EqWeFiC CLAUDE.md: recurrences are reserved for sequential sweeps such as two-stream up/down passes). Layer 1 of rlay is the lowest RRTM layer (surface), level 1 of rlev the surface; the downward sweep is written on a top-counted index and gathered back so that the recurrence reads strictly earlier cells. Gas optics (GASABS/TAUGB1-16) are not part of this component: ITR and PFRAC are inputs, computed by rrtm_gas_optics.esm. EqWeFiC, cited here for CLAUDE.md, FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
Description
RRTM longwave radiative transfer (SUBROUTINE RTRN of phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997, Iacono’s CCM revision): from the quantised gas optical depths ITR and Planck fractions PFRAC of GASABS, the cloud optical depths and fractions, and the layer/level temperatures of the extended RRTM column, compute the Planck sources, the one-angle (diffusivity-angle, secant 1.66) downward and upward radiance sweeps for all 140 g-points with the RRTM cloud-fraction overlap, the clear-sky sweeps, the band-summed and total up/down fluxes, and RRTM’s heating rates HTR/HTRC. The two sweeps are esm-spec 4.3.1.1 recurrences over the level index (one per g-point): each level’s radiance is the previous level’s radiance transmitted through the intervening layer plus that layer’s emission, a genuinely sequential integration of the Schwarzschild equation that has no closed form once the layer sources vary (EqWeFiC CLAUDE.md: recurrences are reserved for sequential sweeps such as two-stream up/down passes). Layer 1 of rlay is the lowest RRTM layer (surface), level 1 of rlev the surface; the downward sweep is written on a top-counted index and gathered back so that the recurrence reads strictly earlier cells. Gas optics (GASABS/TAUGB1-16) are not part of this component: ITR and PFRAC are inputs, computed by rrtm_gas_optics.esm. EqWeFiC, cited here for CLAUDE.md, FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC , where these components were developed and are coupled into a WRF column.
Parameters
| Name | Units | Default | Description |
|---|---|---|---|
tavel_in | K | 250.0 | Coupling target (assembly input path): a shaped parameter that receives tavel from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_tavel to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_tavel is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
tz_in | K | 250.0 | Coupling target (assembly input path): a shaped parameter that receives tz from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_tz to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_tz is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
pz_in | hPa | 0.0 | Coupling target (assembly input path): a shaped parameter that receives pz from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_pz to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_pz is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
cldfrac_in | 1 | 0.0 | Coupling target (assembly input path): a shaped parameter that receives cldfrac from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_cldfrac to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_cldfrac is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
taucloud_in | 1 | 0.0 | Coupling target (assembly input path): a shaped parameter that receives taucloud from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_taucloud to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_taucloud is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
semiss_in | 1 | 0.0 | Coupling target (assembly input path): a shaped parameter that receives semiss from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_semiss to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_semiss is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
pfrac_flat_in | 1 | 0.0 | Coupling target (assembly input path): a shaped parameter that receives pfrac_flat from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_pfrac_flat to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_pfrac_flat is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
itr_flat_in | 1 | 0.0 | Coupling target (assembly input path): a shaped parameter that receives itr_flat from the upstream component through a document-level coupling.variable_map (param_to_var) when the assembly’s mount-edge template library lowers input_itr_flat to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, input_itr_flat is lowered to a dumped column by the test’s library and this parameter is unused (default 0). |
tbound | K | 288.0 | Surface (skin) temperature TBOUND. |
Observed
| Name | Units | Default | Description |
|---|---|---|---|
tavel | K | RRTM layer temperatures TAVEL (extended column, layer 1 lowest). | |
tz | K | RRTM level temperatures TZ(0:NLAYERS); level 1 is the surface. | |
pz | hPa | RRTM level pressures PZ(0:NLAYERS) in hPa. | |
ze | hPa | Pressure distance above the surface of each RRTM level, pz[1] - pz (hPa, increasing upward): the interface coordinate of the EarthSciDiscretizations column_nonuniform_1d grid this component imports on the extended RRTM column (lev -> rlay, lev_nodes -> rlev, NLEV + NBUF layers), so that D(F, wrt: rlay) lowers to (F[l+1] - F[l]) / (pz[l] - pz[l+1]). | |
dz | hPa | RRTM layer pressure thickness pz[l] - pz[l+1] (hPa), the grid’s layer measure (column_cell_thickness of ze) that the face-flux divergence rule divides by. | |
cldfrac | 1 | Layer cloud fraction CLDFRAC (0 or 1 with WRF’s icloud = 1 overcast forcing). | |
taucloud | 1 | Layer cloud optical depth TAUCLOUD (MM5ATM). | |
semiss | 1 | Surface emissivity per band SEMISS. | |
pfrac_flat | 1 | GASABS Planck fractions PFRAC(NGPT, NLAYERS) flattened g-point fastest: element (l-1) NGPT + g is PFRAC(g, l). | |
itr_flat | 1 | GASABS table indices ITR(NGPT, NLAYERS) flattened g-point fastest (integers 0..5000 carried as reals). | |
pfrac | 1 | Planck fraction of each g-point in each layer (PFRAC). | |
itr | 1 | Quantised transition-fraction index of each g-point and layer (ITR). | |
ngb | 1 | Band of each g-point (RRTM NGB). | |
delwave | 1/cm | Band widths in wavenumber (RRTM DELWAVE). | |
totplnk | W*cm/m^2 | Band-integrated Planck function per unit wavenumber at T = PLANCK_T0 + i (RRTM TOTPLNK table, in the units that make DELWAVE TOTPLNK x WTNUM FLUXFAC a flux in W/m^2). Spelled as an aggregate over the const table rather than the bare const: the Rust CLI folds a gather from a bare const array at interpreter-build time, before document-level couplings are applied, so with the temperatures coupled in (EqWeFiC couplings/rrtm_lw_column.esm) the fold saw T = 0 and failed with E_TREEWALK_CONSTARRAY_OOB. | |
tau_gas | 1 | Diffusivity-weighted gas optical depth as RTRN uses it: the TAU table entry at ITR (ODCLR). | |
trans_gas | 1 | Gas transmittance e^-tau (TRANS(ITR)). | |
abss | 1 | Gas absorptance 1 - TRANS(ITR) (ABSS). | |
tf | 1 | Tau-transition function TF(ITR) weighting the layer source between the layer-mean and the level Planck emissions. | |
icld | 1 | Cloud indicator ICLDLYR: 1 where CLDFRAC > 0. | |
odcld | 1 | Diffusivity-weighted cloud optical depth SECANG TAUCLOUD (ODCLD). | |
abscld | 1 | Cloud absorptance 1 - e^-ODCLD (ABSCLD). | |
efclfrac | 1 | Effective cloud fraction ABSCLD CLDFRAC (EFCLFRAC). | |
atot | 1 | Combined gas + cloud absorptance ABSS + ABSCLD - ABSS ABSCLD (ATOT). | |
factot | 1 | Pade transition fraction of the total (gas + cloud) optical depth, ODSM/(BPADE + ODSM) (FACTOT), the source weight used in cloudy layers. | |
plvl | W/m^2 | Band Planck integral at the level temperatures (PLVL(IBAND, 0:NLAYERS)). | |
play | W/m^2 | Band Planck integral at the layer temperatures (PLAY). | |
plankbnd | W/m^2 | Band Planck integral at the surface temperature (PLANKBND). | |
plvl_sfc | W/m^2 | PLVL at the surface level (rank-1 view for the tests). | |
plvl_toa | W/m^2 | PLVL at the top of the RRTM column (rank-1 view for the tests). | |
play_bot | W/m^2 | PLAY in the lowest layer (rank-1 view for the tests). | |
bglay | W/m^2 | Layer Planck source of each g-point PFRAC PLAY(NGB) (BGLAY). | |
bglev_up | W/m^2 | Planck emission at a layer’s upper level as RTRN uses it: PLVL(NGB, LEV) weighted by the Planck fraction of the layer ABOVE (RTRN carries BGLEV from the previous downward iteration, so layer LEV’s upper source uses PFRAC(LEV+1); the top layer uses its own). | |
bglev_dn | W/m^2 | Planck emission at a layer’s lower level, PFRAC(LEV) PLVL(NGB, LEV-1). | |
bbu | W/m^2 | Upward gas source BGLAY + TF (BGLEV_up - BGLAY) (BBU). | |
bbutot | W/m^2 | Upward total (gas + cloud) source BGLAY + FACTOT (BGLEV_up - BGLAY) (BBUTOT). | |
bbd | W/m^2 | Downward gas source BGLAY + TF (BGLEV_dn - BGLAY) (BBD). | |
bbdlevd | W/m^2 | Downward total source BGLAY + FACTOT (BGLEV_dn - BGLAY) (BBDLEVD). | |
semis_g | 1 | Surface emissivity at the band of each g-point (SEMIS). | |
raduemit | W/m^2 | Surface emission per g-point PFRAC(g, 1) SEMISS PLANKBND (RADUEMIT). | |
rad_dn_top | W/m^2 | Downward radiance per g-point on the TOP-COUNTED level index m (m = 1 is the top of the RRTM column, m = NLAYERS + 1 the surface): the recurrence RADLD of RTRN loop 3000, zero at the top and propagated down through layer NLAYERS + 2 - m. | |
rad_dn | W/m^2 | Downward radiance per g-point at each level, surface first (RADLD reordered). | |
rad_dn_clr_top | W/m^2 | Clear-sky downward radiance on the top-counted index (RADCLRD): the clear-layer transfer applied in every layer. RTRN copies RADLD into RADCLRD until the first cloudy layer is met (ICLDDN), which equals this recurrence exactly because above the first cloud the two are identical. | |
rad_dn_clr | W/m^2 | Clear-sky downward radiance per g-point, surface first. | |
rad_up | W/m^2 | Upward radiance per g-point (RADLU): surface emission plus reflected downward radiance at level 1, then the layer transfers upward (RTRN loop 5000). | |
rad_up_clr | W/m^2 | Clear-sky upward radiance per g-point (RADCLRU). | |
F_dn | W/m^2 | Downward longwave flux at the RRTM levels, WTNUM FLUXFAC sum over g-points (TOTDFLUX). | |
F_up | W/m^2 | Upward longwave flux (TOTUFLUX). | |
F_dn_clr | W/m^2 | Clear-sky downward flux (TOTDCLFL). | |
F_up_clr | W/m^2 | Clear-sky upward flux (TOTUCLFL). | |
F_dn_band_sfc | W/m^2 | Per-band downward flux at the surface (sum over the band’s g-points). | |
F_up_band_sfc | W/m^2 | Per-band upward flux at the surface (sum over the band’s g-points). | |
F_up_band_toa | W/m^2 | Per-band upward flux at the top of the RRTM column (sum over the band’s g-points). | |
F_dn_band_mtop | W/m^2 | Per-band downward flux at the model top (level NLEV + 1; sum over the band’s g-points). | |
F_net | W/m^2 | Net upward flux F_up - F_dn (FNET). | |
F_net_clr | W/m^2 | Clear-sky net upward flux (FNETC). | |
htr | K/day | RRTM heating rate of each layer of the extended column, -HEATFAC dF_net/ds with s = ze the pressure distance above the surface, lowered by the EarthSciDiscretizations face_flux_D_lev_supplied_faces rule to HEATFAC (FNET(L-1) - FNET(L))/(PZ(L-1) - PZ(L)) (RTRN loop 7000: HTR(L-1) is layer L; K/day). The same rule gives rrtm_lw_heating.esm its dTdt on the model layers. | |
htrc | K/day | Clear-sky heating rate (HTRC), the htr divergence applied to the clear-sky net flux. | |
glw | W/m^2 | Downward longwave flux at the surface, TOTDFLUX(0) (WRF GLW; template wrf_glw of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm). | |
olr | W/m^2 | Upward flux at the MODEL top, TOTUFLUX(kte) – WRF’s OLR (EqWeFiC FORTRAN_BUGS.md N14; template wrf_olr of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm). | |
olr_toa | W/m^2 | Upward flux at the top of the extended RRTM column, TOTUFLUX(NLAYERS). |
Observed expressions
$$ tavel = \mathrm{input_tavel}\left(\right) $$RRTM layer temperatures TAVEL (extended column, layer 1 lowest).
$$ tz = \mathrm{input_tz}\left(\right) $$RRTM level temperatures TZ(0:NLAYERS); level 1 is the surface.
$$ pz = \mathrm{input_pz}\left(\right) $$RRTM level pressures PZ(0:NLAYERS) in hPa.
$$ ze = \mathrm{aggregate}\left(pz\right) $$Pressure distance above the surface of each RRTM level, pz[1] - pz (hPa, increasing upward): the interface coordinate of the EarthSciDiscretizations column_nonuniform_1d grid this component imports on the extended RRTM column (lev -> rlay, lev_nodes -> rlev, NLEV + NBUF layers), so that D(F, wrt: rlay) lowers to (F[l+1] - F[l]) / (pz[l] - pz[l+1]).
$$ dz = \mathrm{column_cell_thickness}\left(ze=ze\right) $$RRTM layer pressure thickness pz[l] - pz[l+1] (hPa), the grid’s layer measure (column_cell_thickness of ze) that the face-flux divergence rule divides by.
$$ cldfrac = \mathrm{input_cldfrac}\left(\right) $$Layer cloud fraction CLDFRAC (0 or 1 with WRF’s icloud = 1 overcast forcing).
$$ taucloud = \mathrm{input_taucloud}\left(\right) $$Layer cloud optical depth TAUCLOUD (MM5ATM).
$$ semiss = \mathrm{input_semiss}\left(\right) $$Surface emissivity per band SEMISS.
$$ pfrac_{flat} = \mathrm{input_pfrac_flat}\left(\right) $$GASABS Planck fractions PFRAC(NGPT, NLAYERS) flattened g-point fastest: element (l-1) NGPT + g is PFRAC(g, l).
$$ itr_{flat} = \mathrm{input_itr_flat}\left(\right) $$GASABS table indices ITR(NGPT, NLAYERS) flattened g-point fastest (integers 0..5000 carried as reals).
$$ pfrac = \mathrm{aggregate}\left(\right) $$Planck fraction of each g-point in each layer (PFRAC).
$$ itr = \mathrm{aggregate}\left(\right) $$Quantised transition-fraction index of each g-point and layer (ITR).
$$ ngb = \mathrm{rrtm_gpoint_band}\left(\right) $$Band of each g-point (RRTM NGB).
$$ delwave = \mathrm{rrtm_delwave}\left(\right) $$Band widths in wavenumber (RRTM DELWAVE).
$$ totplnk = \mathrm{aggregate}\left(\right) $$Band-integrated Planck function per unit wavenumber at T = PLANCK_T0 + i (RRTM TOTPLNK table, in the units that make DELWAVE TOTPLNK x WTNUM FLUXFAC a flux in W/m^2). Spelled as an aggregate over the const table rather than the bare const: the Rust CLI folds a gather from a bare const array at interpreter-build time, before document-level couplings are applied, so with the temperatures coupled in (EqWeFiC couplings/rrtm_lw_column.esm) the fold saw T = 0 and failed with E_TREEWALK_CONSTARRAY_OOB.
$$ tau_{gas} = \mathrm{aggregate}\left(\right) $$Diffusivity-weighted gas optical depth as RTRN uses it: the TAU table entry at ITR (ODCLR).
$$ trans_{gas} = e^{-tau_{gas}} $$Gas transmittance e^-tau (TRANS(ITR)).
$$ abss = 1.0 - trans_{gas} $$Gas absorptance 1 - TRANS(ITR) (ABSS).
$$ tf = \mathrm{aggregate}\left(\right) $$Tau-transition function TF(ITR) weighting the layer source between the layer-mean and the level Planck emissions.
$$ icld = \mathrm{aggregate}\left(\right) $$Cloud indicator ICLDLYR: 1 where CLDFRAC > 0.
$$ odcld = par.secang \cdot taucloud $$Diffusivity-weighted cloud optical depth SECANG TAUCLOUD (ODCLD).
$$ abscld = 1.0 - e^{-odcld} $$Cloud absorptance 1 - e^-ODCLD (ABSCLD).
$$ efclfrac = abscld \cdot cldfrac $$Effective cloud fraction ABSCLD CLDFRAC (EFCLFRAC).
$$ atot = \mathrm{aggregate}\left(\right) $$Combined gas + cloud absorptance ABSS + ABSCLD - ABSS ABSCLD (ATOT).
$$ factot = \mathrm{aggregate}\left(\right) $$Pade transition fraction of the total (gas + cloud) optical depth, ODSM/(BPADE + ODSM) (FACTOT), the source weight used in cloudy layers.
$$ plvl = \mathrm{aggregate}\left(\right) $$Band Planck integral at the level temperatures (PLVL(IBAND, 0:NLAYERS)).
$$ play = \mathrm{aggregate}\left(\right) $$Band Planck integral at the layer temperatures (PLAY).
$$ plankbnd = \mathrm{aggregate}\left(\right) $$Band Planck integral at the surface temperature (PLANKBND).
$$ plvl_{sfc} = \mathrm{aggregate}\left(\right) $$PLVL at the surface level (rank-1 view for the tests).
$$ plvl_{toa} = \mathrm{aggregate}\left(\right) $$PLVL at the top of the RRTM column (rank-1 view for the tests).
$$ play_{bot} = \mathrm{aggregate}\left(\right) $$PLAY in the lowest layer (rank-1 view for the tests).
$$ bglay = \mathrm{aggregate}\left(\right) $$Layer Planck source of each g-point PFRAC PLAY(NGB) (BGLAY).
$$ bglev_{up} = \mathrm{aggregate}\left(\right) $$Planck emission at a layer’s upper level as RTRN uses it: PLVL(NGB, LEV) weighted by the Planck fraction of the layer ABOVE (RTRN carries BGLEV from the previous downward iteration, so layer LEV’s upper source uses PFRAC(LEV+1); the top layer uses its own).
$$ bglev_{dn} = \mathrm{aggregate}\left(\right) $$Planck emission at a layer’s lower level, PFRAC(LEV) PLVL(NGB, LEV-1).
$$ bbu = bglay + tf \cdot \left(bglev_{up} - bglay\right) $$Upward gas source BGLAY + TF (BGLEV_up - BGLAY) (BBU).
$$ bbutot = bglay + factot \cdot \left(bglev_{up} - bglay\right) $$Upward total (gas + cloud) source BGLAY + FACTOT (BGLEV_up - BGLAY) (BBUTOT).
$$ bbd = bglay + tf \cdot \left(bglev_{dn} - bglay\right) $$Downward gas source BGLAY + TF (BGLEV_dn - BGLAY) (BBD).
$$ bbdlevd = bglay + factot \cdot \left(bglev_{dn} - bglay\right) $$Downward total source BGLAY + FACTOT (BGLEV_dn - BGLAY) (BBDLEVD).
$$ semis_{g} = \mathrm{aggregate}\left(\right) $$Surface emissivity at the band of each g-point (SEMIS).
$$ raduemit = \mathrm{aggregate}\left(\right) $$Surface emission per g-point PFRAC(g, 1) SEMISS PLANKBND (RADUEMIT).
$$ rad_{dn\,top} = \mathrm{aggregate}\left(\right) $$Downward radiance per g-point on the TOP-COUNTED level index m (m = 1 is the top of the RRTM column, m = NLAYERS + 1 the surface): the recurrence RADLD of RTRN loop 3000, zero at the top and propagated down through layer NLAYERS + 2 - m.
$$ rad_{dn} = \mathrm{aggregate}\left(\right) $$Downward radiance per g-point at each level, surface first (RADLD reordered).
$$ rad_{dn\,clr\,top} = \mathrm{aggregate}\left(\right) $$Clear-sky downward radiance on the top-counted index (RADCLRD): the clear-layer transfer applied in every layer. RTRN copies RADLD into RADCLRD until the first cloudy layer is met (ICLDDN), which equals this recurrence exactly because above the first cloud the two are identical.
$$ rad_{dn\,clr} = \mathrm{aggregate}\left(\right) $$Clear-sky downward radiance per g-point, surface first.
$$ rad_{up} = \mathrm{aggregate}\left(\right) $$Upward radiance per g-point (RADLU): surface emission plus reflected downward radiance at level 1, then the layer transfers upward (RTRN loop 5000).
$$ rad_{up\,clr} = \mathrm{aggregate}\left(\right) $$Clear-sky upward radiance per g-point (RADCLRU).
$$ F_{dn} = \mathrm{aggregate}\left(\right) $$Downward longwave flux at the RRTM levels, WTNUM FLUXFAC sum over g-points (TOTDFLUX).
$$ F_{up} = \mathrm{aggregate}\left(\right) $$Upward longwave flux (TOTUFLUX).
$$ F_{dn\,clr} = \mathrm{aggregate}\left(\right) $$Clear-sky downward flux (TOTDCLFL).
$$ F_{up\,clr} = \mathrm{aggregate}\left(\right) $$Clear-sky upward flux (TOTUCLFL).
$$ F_{dn\,band\,sfc} = \mathrm{aggregate}\left(\right) $$Per-band downward flux at the surface (sum over the band’s g-points).
$$ F_{up\,band\,sfc} = \mathrm{aggregate}\left(\right) $$Per-band upward flux at the surface (sum over the band’s g-points).
$$ F_{up\,band\,toa} = \mathrm{aggregate}\left(\right) $$Per-band upward flux at the top of the RRTM column (sum over the band’s g-points).
$$ F_{dn\,band\,mtop} = \mathrm{aggregate}\left(\right) $$Per-band downward flux at the model top (level NLEV + 1; sum over the band’s g-points).
$$ F_{net} = F_{up} - F_{dn} $$Net upward flux F_up - F_dn (FNET).
$$ F_{net\,clr} = F_{up\,clr} - F_{dn\,clr} $$Clear-sky net upward flux (FNETC).
$$ htr = \left(-1.0\right) \cdot par.heatfac \cdot \mathrm{D}\left(F_{net}\right) $$RRTM heating rate of each layer of the extended column, -HEATFAC dF_net/ds with s = ze the pressure distance above the surface, lowered by the EarthSciDiscretizations face_flux_D_lev_supplied_faces rule to HEATFAC (FNET(L-1) - FNET(L))/(PZ(L-1) - PZ(L)) (RTRN loop 7000: HTR(L-1) is layer L; K/day). The same rule gives rrtm_lw_heating.esm its dTdt on the model layers.
$$ htrc = \left(-1.0\right) \cdot par.heatfac \cdot \mathrm{D}\left(F_{net\,clr}\right) $$Clear-sky heating rate (HTRC), the htr divergence applied to the clear-sky net flux.
$$ glw = \mathrm{wrf_glw}\left(F_{dn}=F_{dn}\right) $$Downward longwave flux at the surface, TOTDFLUX(0) (WRF GLW; template wrf_glw of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm).
$$ olr = \mathrm{wrf_olr}\left(F_{up}=F_{up}\right) $$Upward flux at the MODEL top, TOTUFLUX(kte) – WRF’s OLR (EqWeFiC FORTRAN_BUGS.md N14; template wrf_olr of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm).
$$ olr_{toa} = \mathrm{index}\left(F_{up}, NLEV + NBUF + 1\right) $$Upward flux at the top of the extended RRTM column, TOTUFLUX(NLAYERS).
Expression Templates
table_optical_depth
Parameters: itr, n_table, bpade, tau_saturated
tau_transition
Parameters: tau, trans, threshold
planck_band_integral
Parameters: T, b, totplnk, delwave, kelvin
band_value_at_gpoint
Parameters: field, ngb, g, l
band_scalar_at_gpoint
Parameters: field, ngb, g
clear_layer_transfer
Parameters: incoming, source, absorptance
cloudy_layer_transfer
Parameters: incoming, gas_source, total_source, absorptance, atot, efclfrac, cldfrac
Raw .esm
Raw .esm JSON (this component)
{
"subsystems": {
"wrf": {
"ref": "../../../lib/wrf_constants.esm"
},
"par": {
"ref": "./rrtm_parameters.esm"
}
},
"expression_template_imports": [
{
"ref": "./rrtm_spectral_tables.esm"
},
{
"ref": "${ESD_ROOT}/grids/column_nonuniform_1d/grid.esm",
"bindings": {
"NLEV": {
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
},
"rename": {
"lev": "rlay",
"lev_nodes": "rlev"
}
},
{
"ref": "${ESD_ROOT}/grids/column_nonuniform_1d/rules/face_flux_D_lev_supplied_faces.esm",
"bindings": {
"NLEV": {
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
},
"rename": {
"lev": "rlay",
"lev_nodes": "rlev"
}
},
{
"ref": "./rrtm_flux_diagnostics.esm",
"bindings": {
"NLEV": "NLEV"
}
}
],
"expression_templates": {
"table_optical_depth": {
"params": [
"itr",
"n_table",
"bpade",
"tau_saturated"
],
"description": "The optical depth RTRN actually uses: the TAU table entry at the GASABS index ITR = INT(5000 TFF + 0.5), TAU(ITR) = BPADE (ITR/5000)/(1 - ITR/5000), i.e. the Pade transition fraction quantised to 1/5000 and inverted; the last entry is the saturated value 1e10 (RRTMINIT loop 1000).",
"body": {
"op": "ifelse",
"args": [
{
"op": ">=",
"args": [
"itr",
"n_table"
]
},
"tau_saturated",
{
"op": "/",
"args": [
{
"op": "*",
"args": [
"bpade",
{
"op": "/",
"args": [
"itr",
"n_table"
]
}
]
},
{
"op": "-",
"args": [
1.0,
{
"op": "/",
"args": [
"itr",
"n_table"
]
}
]
}
]
}
]
}
},
"tau_transition": {
"params": [
"tau",
"trans",
"threshold"
],
"description": "RRTM's tau-transition function TF (linear-in-tau Planck weighting of the layer source): tau/6 for tau below the threshold, else 1 - 2 (1/tau - e^-tau/(1 - e^-tau)) (RRTMINIT loop 1000, written as the closed form rather than the 5001-entry table). The inactive large-tau branch is evaluated at max(tau, threshold) so that it is finite for tau = 0.",
"body": {
"op": "ifelse",
"args": [
{
"op": "<",
"args": [
"tau",
"threshold"
]
},
{
"op": "/",
"args": [
"tau",
6.0
]
},
{
"op": "-",
"args": [
1.0,
{
"op": "*",
"args": [
2.0,
{
"op": "-",
"args": [
{
"op": "/",
"args": [
1.0,
{
"op": "max",
"args": [
"tau",
"threshold"
]
}
]
},
{
"op": "/",
"args": [
"trans",
{
"op": "-",
"args": [
1.0,
"trans"
]
}
]
}
]
}
]
}
]
}
]
}
},
"planck_band_integral": {
"params": [
"T",
"b",
"totplnk",
"delwave",
"kelvin"
],
"description": "Band-integrated Planck emission at temperature T (RTRN: DELWAVE(IBAND) (TOTPLNK(IND, IBAND) + FRAC (TOTPLNK(IND+1, IBAND) - TOTPLNK(IND, IBAND))) with IND = INT(T - 159) and FRAC = T - INT(T)): linear interpolation of the TOTPLNK table on its 1 K nodes, times the band width in cm^-1. T is divided by one kelvin so that the table index and the fraction are dimensionless.",
"body": {
"op": "*",
"args": [
{
"op": "index",
"args": [
"delwave",
"b"
]
},
{
"op": "+",
"args": [
{
"op": "index",
"args": [
"totplnk",
{
"op": "-",
"args": [
{
"op": "floor",
"args": [
{
"op": "/",
"args": [
"T",
"kelvin"
]
}
]
},
"PLANCK_T0"
]
},
"b"
]
},
{
"op": "*",
"args": [
{
"op": "-",
"args": [
{
"op": "/",
"args": [
"T",
"kelvin"
]
},
{
"op": "floor",
"args": [
{
"op": "/",
"args": [
"T",
"kelvin"
]
}
]
}
]
},
{
"op": "-",
"args": [
{
"op": "index",
"args": [
"totplnk",
{
"op": "+",
"args": [
{
"op": "-",
"args": [
{
"op": "floor",
"args": [
{
"op": "/",
"args": [
"T",
"kelvin"
]
}
]
},
"PLANCK_T0"
]
},
1
]
},
"b"
]
},
{
"op": "index",
"args": [
"totplnk",
{
"op": "-",
"args": [
{
"op": "floor",
"args": [
{
"op": "/",
"args": [
"T",
"kelvin"
]
}
]
},
"PLANCK_T0"
]
},
"b"
]
}
]
}
]
}
]
}
]
}
},
"band_value_at_gpoint": {
"params": [
"field",
"ngb",
"g",
"l"
],
"description": "The value of a per-band level/layer field at the band NGB(g) of g-point g (RTRN's PLVL(NGB(IPR), LEV)), read by indexing the field with the g-point's band.",
"body": {
"op": "index",
"args": [
"field",
{
"op": "index",
"args": [
"ngb",
"g"
]
},
"l"
]
}
},
"band_scalar_at_gpoint": {
"params": [
"field",
"ngb",
"g"
],
"description": "The value of a per-band scalar field (SEMISS, PLANKBND) at the band of g-point g.",
"body": {
"op": "index",
"args": [
"field",
{
"op": "index",
"args": [
"ngb",
"g"
]
}
]
}
},
"clear_layer_transfer": {
"params": [
"incoming",
"source",
"absorptance"
],
"description": "Radiance leaving a clear layer: the incoming radiance relaxed towards the layer's linear-in-tau Planck source by the gas absorptance 1 - e^-tau (RTRN loops 2100/4100).",
"body": {
"op": "+",
"args": [
"incoming",
{
"op": "*",
"args": [
{
"op": "-",
"args": [
"source",
"incoming"
]
},
"absorptance"
]
}
]
}
},
"cloudy_layer_transfer": {
"params": [
"incoming",
"gas_source",
"total_source",
"absorptance",
"atot",
"efclfrac",
"cldfrac"
],
"description": "Radiance leaving a partly cloudy layer (RTRN loops 2000/4000): the incoming radiance is depleted by the gas absorptance plus the cloud absorptance of the cloudy fraction, the clear part emits the gas source with the gas absorptance and the cloudy fraction emits the Pade-weighted total source with the combined gas+cloud absorptance atot.",
"body": {
"op": "+",
"args": [
{
"op": "-",
"args": [
"incoming",
{
"op": "*",
"args": [
"incoming",
{
"op": "+",
"args": [
"absorptance",
{
"op": "*",
"args": [
"efclfrac",
{
"op": "-",
"args": [
1.0,
"absorptance"
]
}
]
}
]
}
]
}
]
},
{
"op": "*",
"args": [
"gas_source",
"absorptance"
]
},
{
"op": "*",
"args": [
"cldfrac",
{
"op": "-",
"args": [
{
"op": "*",
"args": [
"total_source",
"atot"
]
},
{
"op": "*",
"args": [
"gas_source",
"absorptance"
]
}
]
}
]
}
]
}
}
},
"variables": {
"tavel_in": {
"type": "parameter",
"units": "K",
"shape": [
"rlay"
],
"default": 250.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `tavel` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_tavel` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_tavel` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"tz_in": {
"type": "parameter",
"units": "K",
"shape": [
"rlev"
],
"default": 250.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `tz` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_tz` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_tz` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"pz_in": {
"type": "parameter",
"units": "hPa",
"shape": [
"rlev"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `pz` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_pz` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_pz` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"cldfrac_in": {
"type": "parameter",
"units": "1",
"shape": [
"rlay"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `cldfrac` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_cldfrac` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_cldfrac` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"taucloud_in": {
"type": "parameter",
"units": "1",
"shape": [
"rlay"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `taucloud` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_taucloud` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_taucloud` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"semiss_in": {
"type": "parameter",
"units": "1",
"shape": [
"bands"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `semiss` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_semiss` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_semiss` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"pfrac_flat_in": {
"type": "parameter",
"units": "1",
"shape": [
"gl"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `pfrac_flat` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_pfrac_flat` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_pfrac_flat` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"itr_flat_in": {
"type": "parameter",
"units": "1",
"shape": [
"gl"
],
"default": 0.0,
"description": "Coupling target (assembly input path): a shaped parameter that receives `itr_flat` from the upstream component through a document-level `coupling.variable_map` (`param_to_var`) when the assembly's mount-edge template library lowers `input_itr_flat` to this parameter (see EqWeFiC couplings/rrtm_lw_column.esm). Standalone, `input_itr_flat` is lowered to a dumped column by the test's library and this parameter is unused (default 0)."
},
"tavel": {
"type": "unknown",
"units": "K",
"shape": [
"rlay"
],
"description": "RRTM layer temperatures TAVEL (extended column, layer 1 lowest)."
},
"tz": {
"type": "unknown",
"units": "K",
"shape": [
"rlev"
],
"description": "RRTM level temperatures TZ(0:NLAYERS); level 1 is the surface."
},
"pz": {
"type": "unknown",
"units": "hPa",
"shape": [
"rlev"
],
"description": "RRTM level pressures PZ(0:NLAYERS) in hPa."
},
"ze": {
"type": "unknown",
"units": "hPa",
"shape": [
"rlev"
],
"description": "Pressure distance above the surface of each RRTM level, pz[1] - pz (hPa, increasing upward): the interface coordinate of the EarthSciDiscretizations column_nonuniform_1d grid this component imports on the extended RRTM column (lev -> rlay, lev_nodes -> rlev, NLEV + NBUF layers), so that D(F, wrt: rlay) lowers to (F[l+1] - F[l]) / (pz[l] - pz[l+1])."
},
"dz": {
"type": "unknown",
"units": "hPa",
"shape": [
"rlay"
],
"description": "RRTM layer pressure thickness pz[l] - pz[l+1] (hPa), the grid's layer measure (column_cell_thickness of ze) that the face-flux divergence rule divides by."
},
"cldfrac": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Layer cloud fraction CLDFRAC (0 or 1 with WRF's icloud = 1 overcast forcing)."
},
"taucloud": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Layer cloud optical depth TAUCLOUD (MM5ATM)."
},
"semiss": {
"type": "unknown",
"units": "1",
"shape": [
"bands"
],
"description": "Surface emissivity per band SEMISS."
},
"tbound": {
"type": "parameter",
"units": "K",
"default": 288.0,
"description": "Surface (skin) temperature TBOUND."
},
"pfrac_flat": {
"type": "unknown",
"units": "1",
"shape": [
"gl"
],
"description": "GASABS Planck fractions PFRAC(NGPT, NLAYERS) flattened g-point fastest: element (l-1) NGPT + g is PFRAC(g, l)."
},
"itr_flat": {
"type": "unknown",
"units": "1",
"shape": [
"gl"
],
"description": "GASABS table indices ITR(NGPT, NLAYERS) flattened g-point fastest (integers 0..5000 carried as reals)."
},
"pfrac": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Planck fraction of each g-point in each layer (PFRAC)."
},
"itr": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Quantised transition-fraction index of each g-point and layer (ITR)."
},
"ngb": {
"type": "unknown",
"units": "1",
"shape": [
"gpts"
],
"description": "Band of each g-point (RRTM NGB)."
},
"delwave": {
"type": "unknown",
"units": "1/cm",
"shape": [
"bands"
],
"description": "Band widths in wavenumber (RRTM DELWAVE)."
},
"totplnk": {
"type": "unknown",
"units": "W*cm/m^2",
"shape": [
"tnodes",
"bands"
],
"description": "Band-integrated Planck function per unit wavenumber at T = PLANCK_T0 + i (RRTM TOTPLNK table, in the units that make DELWAVE TOTPLNK x WTNUM FLUXFAC a flux in W/m^2). Spelled as an aggregate over the const table rather than the bare const: the Rust CLI folds a gather from a bare const array at interpreter-build time, before document-level couplings are applied, so with the temperatures coupled in (EqWeFiC couplings/rrtm_lw_column.esm) the fold saw T = 0 and failed with E_TREEWALK_CONSTARRAY_OOB."
},
"tau_gas": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Diffusivity-weighted gas optical depth as RTRN uses it: the TAU table entry at ITR (ODCLR)."
},
"trans_gas": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Gas transmittance e^-tau (TRANS(ITR))."
},
"abss": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Gas absorptance 1 - TRANS(ITR) (ABSS)."
},
"tf": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Tau-transition function TF(ITR) weighting the layer source between the layer-mean and the level Planck emissions."
},
"icld": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Cloud indicator ICLDLYR: 1 where CLDFRAC > 0."
},
"odcld": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Diffusivity-weighted cloud optical depth SECANG TAUCLOUD (ODCLD)."
},
"abscld": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Cloud absorptance 1 - e^-ODCLD (ABSCLD)."
},
"efclfrac": {
"type": "unknown",
"units": "1",
"shape": [
"rlay"
],
"description": "Effective cloud fraction ABSCLD CLDFRAC (EFCLFRAC)."
},
"atot": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Combined gas + cloud absorptance ABSS + ABSCLD - ABSS ABSCLD (ATOT)."
},
"factot": {
"type": "unknown",
"units": "1",
"shape": [
"gpts",
"rlay"
],
"description": "Pade transition fraction of the total (gas + cloud) optical depth, ODSM/(BPADE + ODSM) (FACTOT), the source weight used in cloudy layers."
},
"plvl": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands",
"rlev"
],
"description": "Band Planck integral at the level temperatures (PLVL(IBAND, 0:NLAYERS))."
},
"play": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands",
"rlay"
],
"description": "Band Planck integral at the layer temperatures (PLAY)."
},
"plankbnd": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "Band Planck integral at the surface temperature (PLANKBND)."
},
"plvl_sfc": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "PLVL at the surface level (rank-1 view for the tests)."
},
"plvl_toa": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "PLVL at the top of the RRTM column (rank-1 view for the tests)."
},
"play_bot": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "PLAY in the lowest layer (rank-1 view for the tests)."
},
"bglay": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Layer Planck source of each g-point PFRAC PLAY(NGB) (BGLAY)."
},
"bglev_up": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Planck emission at a layer's upper level as RTRN uses it: PLVL(NGB, LEV) weighted by the Planck fraction of the layer ABOVE (RTRN carries BGLEV from the previous downward iteration, so layer LEV's upper source uses PFRAC(LEV+1); the top layer uses its own)."
},
"bglev_dn": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Planck emission at a layer's lower level, PFRAC(LEV) PLVL(NGB, LEV-1)."
},
"bbu": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Upward gas source BGLAY + TF (BGLEV_up - BGLAY) (BBU)."
},
"bbutot": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Upward total (gas + cloud) source BGLAY + FACTOT (BGLEV_up - BGLAY) (BBUTOT)."
},
"bbd": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Downward gas source BGLAY + TF (BGLEV_dn - BGLAY) (BBD)."
},
"bbdlevd": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlay"
],
"description": "Downward total source BGLAY + FACTOT (BGLEV_dn - BGLAY) (BBDLEVD)."
},
"semis_g": {
"type": "unknown",
"units": "1",
"shape": [
"gpts"
],
"description": "Surface emissivity at the band of each g-point (SEMIS)."
},
"raduemit": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts"
],
"description": "Surface emission per g-point PFRAC(g, 1) SEMISS PLANKBND (RADUEMIT)."
},
"rad_dn_top": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Downward radiance per g-point on the TOP-COUNTED level index m (m = 1 is the top of the RRTM column, m = NLAYERS + 1 the surface): the recurrence RADLD of RTRN loop 3000, zero at the top and propagated down through layer NLAYERS + 2 - m."
},
"rad_dn": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Downward radiance per g-point at each level, surface first (RADLD reordered)."
},
"rad_dn_clr_top": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Clear-sky downward radiance on the top-counted index (RADCLRD): the clear-layer transfer applied in every layer. RTRN copies RADLD into RADCLRD until the first cloudy layer is met (ICLDDN), which equals this recurrence exactly because above the first cloud the two are identical."
},
"rad_dn_clr": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Clear-sky downward radiance per g-point, surface first."
},
"rad_up": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Upward radiance per g-point (RADLU): surface emission plus reflected downward radiance at level 1, then the layer transfers upward (RTRN loop 5000)."
},
"rad_up_clr": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"gpts",
"rlev"
],
"description": "Clear-sky upward radiance per g-point (RADCLRU)."
},
"F_dn": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Downward longwave flux at the RRTM levels, WTNUM FLUXFAC sum over g-points (TOTDFLUX)."
},
"F_up": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Upward longwave flux (TOTUFLUX)."
},
"F_dn_clr": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Clear-sky downward flux (TOTDCLFL)."
},
"F_up_clr": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Clear-sky upward flux (TOTUCLFL)."
},
"F_dn_band_sfc": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "Per-band downward flux at the surface (sum over the band's g-points)."
},
"F_up_band_sfc": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "Per-band upward flux at the surface (sum over the band's g-points)."
},
"F_up_band_toa": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "Per-band upward flux at the top of the RRTM column (sum over the band's g-points)."
},
"F_dn_band_mtop": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"bands"
],
"description": "Per-band downward flux at the model top (level NLEV + 1; sum over the band's g-points)."
},
"F_net": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Net upward flux F_up - F_dn (FNET)."
},
"F_net_clr": {
"type": "unknown",
"units": "W/m^2",
"shape": [
"rlev"
],
"description": "Clear-sky net upward flux (FNETC)."
},
"htr": {
"type": "unknown",
"units": "K/day",
"shape": [
"rlay"
],
"description": "RRTM heating rate of each layer of the extended column, -HEATFAC dF_net/ds with s = ze the pressure distance above the surface, lowered by the EarthSciDiscretizations face_flux_D_lev_supplied_faces rule to HEATFAC (FNET(L-1) - FNET(L))/(PZ(L-1) - PZ(L)) (RTRN loop 7000: HTR(L-1) is layer L; K/day). The same rule gives rrtm_lw_heating.esm its dTdt on the model layers."
},
"htrc": {
"type": "unknown",
"units": "K/day",
"shape": [
"rlay"
],
"description": "Clear-sky heating rate (HTRC), the htr divergence applied to the clear-sky net flux."
},
"glw": {
"type": "unknown",
"units": "W/m^2",
"description": "Downward longwave flux at the surface, TOTDFLUX(0) (WRF GLW; template wrf_glw of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm)."
},
"olr": {
"type": "unknown",
"units": "W/m^2",
"description": "Upward flux at the MODEL top, TOTUFLUX(kte) -- WRF's OLR (EqWeFiC FORTRAN_BUGS.md N14; template wrf_olr of rrtm_flux_diagnostics.esm, shared with rrtm_lw_heating.esm)."
},
"olr_toa": {
"type": "unknown",
"units": "W/m^2",
"description": "Upward flux at the top of the extended RRTM column, TOTUFLUX(NLAYERS)."
}
},
"equations": [
{
"lhs": "tavel",
"rhs": {
"op": "input_tavel",
"args": []
}
},
{
"lhs": "tz",
"rhs": {
"op": "input_tz",
"args": []
}
},
{
"lhs": "pz",
"rhs": {
"op": "input_pz",
"args": []
}
},
{
"lhs": "ze",
"rhs": {
"op": "aggregate",
"output_idx": [
"kn"
],
"args": [
"pz"
],
"ranges": {
"kn": {
"from": "rlev"
}
},
"expr": {
"op": "-",
"args": [
{
"op": "index",
"args": [
"pz",
1
]
},
{
"op": "index",
"args": [
"pz",
"kn"
]
}
]
}
}
},
{
"lhs": "dz",
"rhs": {
"op": "apply_expression_template",
"args": [],
"name": "column_cell_thickness",
"bindings": {
"ze": "ze"
}
}
},
{
"lhs": "cldfrac",
"rhs": {
"op": "input_cldfrac",
"args": []
}
},
{
"lhs": "taucloud",
"rhs": {
"op": "input_taucloud",
"args": []
}
},
{
"lhs": "semiss",
"rhs": {
"op": "input_semiss",
"args": []
}
},
{
"lhs": "pfrac_flat",
"rhs": {
"op": "input_pfrac_flat",
"args": []
}
},
{
"lhs": "itr_flat",
"rhs": {
"op": "input_itr_flat",
"args": []
}
},
{
"lhs": "ngb",
"rhs": {
"op": "apply_expression_template",
"args": [],
"name": "rrtm_gpoint_band",
"bindings": {}
}
},
{
"lhs": "delwave",
"rhs": {
"op": "apply_expression_template",
"args": [],
"name": "rrtm_delwave",
"bindings": {}
}
},
{
"lhs": "totplnk",
"rhs": {
"op": "aggregate",
"output_idx": [
"i",
"b"
],
"args": [],
"ranges": {
"i": {
"from": "tnodes"
},
"b": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "apply_expression_template",
"args": [],
"name": "rrtm_totplnk",
"bindings": {}
},
"i",
"b"
]
}
}
},
{
"lhs": "pfrac",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
"pfrac_flat",
{
"op": "+",
"args": [
{
"op": "*",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
"NGPT"
]
},
"g"
]
}
]
}
}
},
{
"lhs": "itr",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
"itr_flat",
{
"op": "+",
"args": [
{
"op": "*",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
"NGPT"
]
},
"g"
]
}
]
}
}
},
{
"lhs": "tau_gas",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "table_optical_depth",
"bindings": {
"itr": {
"op": "index",
"args": [
"itr",
"g",
"l"
]
},
"n_table": "par.tau_table_resolution",
"bpade": "par.bpade",
"tau_saturated": "par.tau_saturated"
}
}
}
},
{
"lhs": "trans_gas",
"rhs": {
"op": "exp",
"args": [
{
"op": "-",
"args": [
"tau_gas"
]
}
]
}
},
{
"lhs": "abss",
"rhs": {
"op": "-",
"args": [
1.0,
"trans_gas"
]
}
},
{
"lhs": "tf",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "tau_transition",
"bindings": {
"tau": {
"op": "index",
"args": [
"tau_gas",
"g",
"l"
]
},
"trans": {
"op": "index",
"args": [
"trans_gas",
"g",
"l"
]
},
"threshold": "par.tf_linear_threshold"
}
}
}
},
{
"lhs": "icld",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"l"
],
"ranges": {
"l": {
"from": "rlay"
}
},
"expr": {
"op": "ifelse",
"args": [
{
"op": ">",
"args": [
{
"op": "index",
"args": [
"cldfrac",
"l"
]
},
0.0
]
},
1.0,
0.0
]
}
}
},
{
"lhs": "odcld",
"rhs": {
"op": "*",
"args": [
"par.secang",
"taucloud"
]
}
},
{
"lhs": "abscld",
"rhs": {
"op": "-",
"args": [
1.0,
{
"op": "exp",
"args": [
{
"op": "-",
"args": [
"odcld"
]
}
]
}
]
}
},
{
"lhs": "efclfrac",
"rhs": {
"op": "*",
"args": [
"abscld",
"cldfrac"
]
}
},
{
"lhs": "atot",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "-",
"args": [
{
"op": "+",
"args": [
{
"op": "index",
"args": [
"abss",
"g",
"l"
]
},
{
"op": "index",
"args": [
"abscld",
"l"
]
}
]
},
{
"op": "*",
"args": [
{
"op": "index",
"args": [
"abss",
"g",
"l"
]
},
{
"op": "index",
"args": [
"abscld",
"l"
]
}
]
}
]
}
}
},
{
"lhs": "factot",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "/",
"args": [
{
"op": "+",
"args": [
{
"op": "index",
"args": [
"tau_gas",
"g",
"l"
]
},
{
"op": "index",
"args": [
"odcld",
"l"
]
}
]
},
{
"op": "+",
"args": [
"par.bpade",
{
"op": "index",
"args": [
"tau_gas",
"g",
"l"
]
},
{
"op": "index",
"args": [
"odcld",
"l"
]
}
]
}
]
}
}
},
{
"lhs": "plvl",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b",
"l"
],
"ranges": {
"b": {
"from": "bands"
},
"l": {
"from": "rlev"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "planck_band_integral",
"bindings": {
"T": {
"op": "index",
"args": [
"tz",
"l"
]
},
"b": "b",
"totplnk": "totplnk",
"delwave": "delwave",
"kelvin": "par.unit_kelvin"
}
}
}
},
{
"lhs": "play",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b",
"l"
],
"ranges": {
"b": {
"from": "bands"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "planck_band_integral",
"bindings": {
"T": {
"op": "index",
"args": [
"tavel",
"l"
]
},
"b": "b",
"totplnk": "totplnk",
"delwave": "delwave",
"kelvin": "par.unit_kelvin"
}
}
}
},
{
"lhs": "plankbnd",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "planck_band_integral",
"bindings": {
"T": "tbound",
"b": "b",
"totplnk": "totplnk",
"delwave": "delwave",
"kelvin": "par.unit_kelvin"
}
}
}
},
{
"lhs": "plvl_sfc",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
"plvl",
"b",
1
]
}
}
},
{
"lhs": "plvl_toa",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
"plvl",
"b",
{
"op": "+",
"args": [
"NLEV",
"NBUF",
1
]
}
]
}
}
},
{
"lhs": "play_bot",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
"play",
"b",
1
]
}
}
},
{
"lhs": "bglay",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "index",
"args": [
"pfrac",
"g",
"l"
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "band_value_at_gpoint",
"bindings": {
"field": "play",
"ngb": "ngb",
"g": "g",
"l": "l"
}
}
]
}
}
},
{
"lhs": "bglev_up",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "index",
"args": [
"pfrac",
"g",
{
"op": "min",
"args": [
{
"op": "+",
"args": [
"l",
1
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "band_value_at_gpoint",
"bindings": {
"field": "plvl",
"ngb": "ngb",
"g": "g",
"l": {
"op": "+",
"args": [
"l",
1
]
}
}
}
]
}
}
},
{
"lhs": "bglev_dn",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlay"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "index",
"args": [
"pfrac",
"g",
"l"
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "band_value_at_gpoint",
"bindings": {
"field": "plvl",
"ngb": "ngb",
"g": "g",
"l": "l"
}
}
]
}
}
},
{
"lhs": "bbu",
"rhs": {
"op": "+",
"args": [
"bglay",
{
"op": "*",
"args": [
"tf",
{
"op": "-",
"args": [
"bglev_up",
"bglay"
]
}
]
}
]
}
},
{
"lhs": "bbutot",
"rhs": {
"op": "+",
"args": [
"bglay",
{
"op": "*",
"args": [
"factot",
{
"op": "-",
"args": [
"bglev_up",
"bglay"
]
}
]
}
]
}
},
{
"lhs": "bbd",
"rhs": {
"op": "+",
"args": [
"bglay",
{
"op": "*",
"args": [
"tf",
{
"op": "-",
"args": [
"bglev_dn",
"bglay"
]
}
]
}
]
}
},
{
"lhs": "bbdlevd",
"rhs": {
"op": "+",
"args": [
"bglay",
{
"op": "*",
"args": [
"factot",
{
"op": "-",
"args": [
"bglev_dn",
"bglay"
]
}
]
}
]
}
},
{
"lhs": "semis_g",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g"
],
"ranges": {
"g": {
"from": "gpts"
}
},
"expr": {
"op": "apply_expression_template",
"args": [],
"name": "band_scalar_at_gpoint",
"bindings": {
"field": "semiss",
"ngb": "ngb",
"g": "g"
}
}
}
},
{
"lhs": "raduemit",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g"
],
"ranges": {
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "index",
"args": [
"pfrac",
"g",
1
]
},
{
"op": "index",
"args": [
"semis_g",
"g"
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "band_scalar_at_gpoint",
"bindings": {
"field": "plankbnd",
"ngb": "ngb",
"g": "g"
}
}
]
}
}
},
{
"lhs": "rad_dn_top",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"m"
],
"ranges": {
"g": {
"from": "gpts"
},
"m": {
"from": "rlev"
}
},
"expr": {
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
"m",
1
]
},
0.0,
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"icld",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
1.0
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "cloudy_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_dn_top",
"g",
{
"op": "-",
"args": [
"m",
1
]
}
]
},
"gas_source": {
"op": "index",
"args": [
"bbd",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"total_source": {
"op": "index",
"args": [
"bbdlevd",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"atot": {
"op": "index",
"args": [
"atot",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"efclfrac": {
"op": "index",
"args": [
"efclfrac",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"cldfrac": {
"op": "index",
"args": [
"cldfrac",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
}
}
},
{
"op": "apply_expression_template",
"args": [],
"name": "clear_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_dn_top",
"g",
{
"op": "-",
"args": [
"m",
1
]
}
]
},
"source": {
"op": "index",
"args": [
"bbd",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
}
}
}
]
}
]
}
}
},
{
"lhs": "rad_dn",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
"rad_dn_top",
"g",
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"l"
]
}
]
}
}
},
{
"lhs": "rad_dn_clr_top",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"m"
],
"ranges": {
"g": {
"from": "gpts"
},
"m": {
"from": "rlev"
}
},
"expr": {
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
"m",
1
]
},
0.0,
{
"op": "apply_expression_template",
"args": [],
"name": "clear_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_dn_clr_top",
"g",
{
"op": "-",
"args": [
"m",
1
]
}
]
},
"source": {
"op": "index",
"args": [
"bbd",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "min",
"args": [
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"m"
]
},
{
"op": "+",
"args": [
"NLEV",
"NBUF"
]
}
]
}
]
}
}
}
]
}
}
},
{
"lhs": "rad_dn_clr",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
"rad_dn_clr_top",
"g",
{
"op": "-",
"args": [
{
"op": "+",
"args": [
"NLEV",
"NBUF",
2
]
},
"l"
]
}
]
}
}
},
{
"lhs": "rad_up",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlev"
}
},
"expr": {
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
"l",
1
]
},
{
"op": "+",
"args": [
{
"op": "index",
"args": [
"raduemit",
"g"
]
},
{
"op": "*",
"args": [
{
"op": "-",
"args": [
1.0,
{
"op": "index",
"args": [
"semis_g",
"g"
]
}
]
},
{
"op": "index",
"args": [
"rad_dn",
"g",
1
]
}
]
}
]
},
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"icld",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
1.0
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "cloudy_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_up",
"g",
{
"op": "-",
"args": [
"l",
1
]
}
]
},
"gas_source": {
"op": "index",
"args": [
"bbu",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"total_source": {
"op": "index",
"args": [
"bbutot",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"atot": {
"op": "index",
"args": [
"atot",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"efclfrac": {
"op": "index",
"args": [
"efclfrac",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"cldfrac": {
"op": "index",
"args": [
"cldfrac",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
}
}
},
{
"op": "apply_expression_template",
"args": [],
"name": "clear_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_up",
"g",
{
"op": "-",
"args": [
"l",
1
]
}
]
},
"source": {
"op": "index",
"args": [
"bbu",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
}
}
}
]
}
]
}
}
},
{
"lhs": "rad_up_clr",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"g",
"l"
],
"ranges": {
"g": {
"from": "gpts"
},
"l": {
"from": "rlev"
}
},
"expr": {
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
"l",
1
]
},
{
"op": "+",
"args": [
{
"op": "index",
"args": [
"raduemit",
"g"
]
},
{
"op": "*",
"args": [
{
"op": "-",
"args": [
1.0,
{
"op": "index",
"args": [
"semis_g",
"g"
]
}
]
},
{
"op": "index",
"args": [
"rad_dn_clr",
"g",
1
]
}
]
}
]
},
{
"op": "apply_expression_template",
"args": [],
"name": "clear_layer_transfer",
"bindings": {
"incoming": {
"op": "index",
"args": [
"rad_up_clr",
"g",
{
"op": "-",
"args": [
"l",
1
]
}
]
},
"source": {
"op": "index",
"args": [
"bbu",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
},
"absorptance": {
"op": "index",
"args": [
"abss",
"g",
{
"op": "max",
"args": [
{
"op": "-",
"args": [
"l",
1
]
},
1
]
}
]
}
}
}
]
}
}
},
{
"lhs": "F_dn",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"l"
],
"ranges": {
"l": {
"from": "rlev"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_dn",
"g",
"l"
]
}
]
}
}
},
{
"lhs": "F_up",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"l"
],
"ranges": {
"l": {
"from": "rlev"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_up",
"g",
"l"
]
}
]
}
}
},
{
"lhs": "F_dn_clr",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"l"
],
"ranges": {
"l": {
"from": "rlev"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_dn_clr",
"g",
"l"
]
}
]
}
}
},
{
"lhs": "F_up_clr",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"l"
],
"ranges": {
"l": {
"from": "rlev"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_up_clr",
"g",
"l"
]
}
]
}
}
},
{
"lhs": "F_dn_band_sfc",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"ngb",
"g"
]
},
"b"
]
},
1.0,
0.0
]
},
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_dn",
"g",
1
]
}
]
}
}
},
{
"lhs": "F_up_band_sfc",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"ngb",
"g"
]
},
"b"
]
},
1.0,
0.0
]
},
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_up",
"g",
1
]
}
]
}
}
},
{
"lhs": "F_up_band_toa",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"ngb",
"g"
]
},
"b"
]
},
1.0,
0.0
]
},
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_up",
"g",
{
"op": "+",
"args": [
"NLEV",
"NBUF",
1
]
}
]
}
]
}
}
},
{
"lhs": "F_dn_band_mtop",
"rhs": {
"op": "aggregate",
"args": [],
"output_idx": [
"b"
],
"ranges": {
"b": {
"from": "bands"
},
"g": {
"from": "gpts"
}
},
"expr": {
"op": "*",
"args": [
{
"op": "ifelse",
"args": [
{
"op": "==",
"args": [
{
"op": "index",
"args": [
"ngb",
"g"
]
},
"b"
]
},
1.0,
0.0
]
},
"par.wtnum",
"par.fluxfac",
{
"op": "index",
"args": [
"rad_dn",
"g",
{
"op": "+",
"args": [
"NLEV",
1
]
}
]
}
]
}
}
},
{
"lhs": "F_net",
"rhs": {
"op": "-",
"args": [
"F_up",
"F_dn"
]
}
},
{
"lhs": "F_net_clr",
"rhs": {
"op": "-",
"args": [
"F_up_clr",
"F_dn_clr"
]
}
},
{
"lhs": "htr",
"rhs": {
"op": "*",
"args": [
-1.0,
"par.heatfac",
{
"op": "D",
"args": [
"F_net"
],
"wrt": "rlay"
}
]
}
},
{
"lhs": "htrc",
"rhs": {
"op": "*",
"args": [
-1.0,
"par.heatfac",
{
"op": "D",
"args": [
"F_net_clr"
],
"wrt": "rlay"
}
]
}
},
{
"lhs": "glw",
"rhs": {
"op": "apply_expression_template",
"args": [],
"name": "wrf_glw",
"bindings": {
"F_dn": "F_dn"
}
}
},
{
"lhs": "olr",
"rhs": {
"op": "apply_expression_template",
"args": [],
"name": "wrf_olr",
"bindings": {
"F_up": "F_up"
}
}
},
{
"lhs": "olr_toa",
"rhs": {
"op": "index",
"args": [
"F_up",
{
"op": "+",
"args": [
"NLEV",
"NBUF",
1
]
}
]
}
}
],
"tests": [
{
"id": "scm_call1_evening_clear",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 0e52608 (v4.8.0-4-g0e526083); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_ref2_1.json). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: call 1, 19:00 UTC (12:34 LST), first radiation call; clear sky (no cloudy layer); tbound = 288.00 K, glw = 258.1 W/m^2, olr (model top) = 251.5 W/m^2, TOA upward flux 244.8 W/m^2. Tolerances: measured against a NumPy replica of RTRN the component's fluxes agree with the real32 dump to <= 1e-6 relative (2e-4 W/m^2), the band fluxes to 2e-5 W/m^2, the Planck integrals to 2e-10, and the heating rates to 4e-4 K/day (HTR is a difference of O(300 W/m^2) fluxes over O(6 hPa) layers carried in single precision, so its relative error is ~1e-4 of the column maximum); tolerances are set 3-5x above those floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at the three largest-|HTR| layers.",
"parameter_overrides": {
"tbound": 288.0
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call1_evening_clear_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
258.14453125,
256.3254699707031,
254.47686767578125,
252.5896453857422,
250.68304443359375,
248.75454711914062,
246.81333923339844,
244.85507202148438,
242.89981079101562,
240.9595947265625,
239.05355834960938,
237.2315216064453,
235.58697509765625,
234.38421630859375,
236.2838592529297,
239.3634490966797,
239.25051879882812,
238.4417266845703,
237.49041748046875,
236.39718627929688,
235.15533447265625,
233.7296600341797,
232.08444213867188,
230.1946563720703,
228.01791381835938,
225.47366333007812,
222.4716339111328,
219.24609375,
215.79486083984375,
212.10203552246094,
208.1291961669922,
203.88299560546875,
199.31153869628906,
194.3699493408203,
189.00376892089844,
183.1140899658203,
176.4172821044922,
169.0955810546875,
161.22145080566406,
152.4559783935547,
143.28135681152344,
133.92063903808594,
124.32963562011719,
114.61627960205078,
104.70616912841797,
94.91691589355469,
86.3888168334961,
81.23003387451172,
76.03793334960938,
70.79739379882812,
65.47969818115234,
60.22850036621094,
54.95378494262695,
49.6085319519043,
44.302696228027344,
38.95566940307617,
33.46000289916992,
27.82048988342285,
21.475797653198242,
11.513263702392578,
11.30974006652832,
11.108981132507324,
10.907934188842773,
10.706408500671387,
10.505474090576172,
10.306084632873535,
10.106115341186523,
9.906989097595215,
9.706870079040527,
9.509112358093262,
9.310948371887207,
9.112371444702148,
8.913400650024414,
8.718700408935547,
8.528748512268066,
8.346258163452148,
8.176835060119629,
8.007468223571777,
7.8346123695373535,
7.661109924316406,
7.472811698913574,
7.3229851722717285,
7.1724748611450195,
7.021459579467773,
6.87035608291626,
6.715268135070801,
6.551558971405029,
6.379252910614014,
6.197574138641357,
6.005584239959717,
5.797598838806152,
5.572547912597656,
5.32601261138916,
5.059413909912109,
4.772655010223389,
4.4665327072143555,
4.142869472503662,
3.792914390563965,
3.42403244972229,
3.033987522125244,
2.5965797901153564,
2.084764242172241,
1.4431922435760498,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
379.5429382324219,
372.37005615234375,
370.221923828125,
368.46014404296875,
366.8081359863281,
365.17974853515625,
363.544677734375,
361.88092041015625,
360.1826171875,
358.4416809082031,
356.65240478515625,
354.8133850097656,
352.9205322265625,
350.9713439941406,
350.1814880371094,
353.0683898925781,
354.9402160644531,
355.29150390625,
355.2666320800781,
355.0354309082031,
354.66131591796875,
354.1761169433594,
353.5892333984375,
352.9053039550781,
352.1263122558594,
351.2519836425781,
350.2858581542969,
349.2301025390625,
348.09844970703125,
346.88671875,
345.59588623046875,
344.22442626953125,
342.7660827636719,
341.21380615234375,
339.56732177734375,
337.81903076171875,
335.87103271484375,
333.5375671386719,
330.95751953125,
327.93194580078125,
324.2280578613281,
320.35736083984375,
316.4132995605469,
312.5187072753906,
308.6867370605469,
305.0283203125,
301.7278137207031,
299.072265625,
295.9945068359375,
292.6706237792969,
289.13897705078125,
285.47564697265625,
281.6700439453125,
277.6820373535156,
273.60589599609375,
269.39886474609375,
265.0567932128906,
260.6592712402344,
256.11920166015625,
251.52928161621094,
251.22608947753906,
250.94979858398438,
250.690185546875,
250.44363403320312,
250.20469665527344,
249.9523162841797,
249.70730590820312,
249.46937561035156,
249.2390899658203,
249.01473999023438,
248.7931365966797,
248.56072998046875,
248.33131408691406,
248.10862731933594,
247.89036560058594,
247.6656951904297,
247.44241333007812,
247.2357940673828,
247.0429229736328,
246.85174560546875,
246.6458282470703,
246.4434814453125,
246.2621307373047,
246.06683349609375,
245.8930206298828,
245.7419891357422,
245.5773468017578,
245.4306640625,
245.29103088378906,
245.15647888183594,
245.0337677001953,
244.91653442382812,
244.8032684326172,
244.69989013671875,
244.6017608642578,
244.51095581054688,
244.43414306640625,
244.3482208251953,
244.27915954589844,
244.24990844726562,
244.2627716064453,
244.35305786132812,
244.58590698242188,
244.77023315429688
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
258.14453125,
256.3254699707031,
254.47686767578125,
252.5896453857422,
250.68304443359375,
248.75454711914062,
246.81333923339844,
244.85507202148438,
242.89981079101562,
240.9595947265625,
239.05355834960938,
237.2315216064453,
235.58697509765625,
234.38421630859375,
236.2838592529297,
239.3634490966797,
239.25051879882812,
238.4417266845703,
237.49041748046875,
236.39718627929688,
235.15533447265625,
233.7296600341797,
232.08444213867188,
230.1946563720703,
228.01791381835938,
225.47366333007812,
222.4716339111328,
219.24609375,
215.79486083984375,
212.10203552246094,
208.1291961669922,
203.88299560546875,
199.31153869628906,
194.3699493408203,
189.00376892089844,
183.1140899658203,
176.4172821044922,
169.0955810546875,
161.22145080566406,
152.4559783935547,
143.28135681152344,
133.92063903808594,
124.32963562011719,
114.61627960205078,
104.70616912841797,
94.91691589355469,
86.3888168334961,
81.23003387451172,
76.03793334960938,
70.79739379882812,
65.47969818115234,
60.22850036621094,
54.95378494262695,
49.6085319519043,
44.302696228027344,
38.95566940307617,
33.46000289916992,
27.82048988342285,
21.475797653198242,
11.513263702392578,
11.30974006652832,
11.108981132507324,
10.907934188842773,
10.706408500671387,
10.505474090576172,
10.306084632873535,
10.106115341186523,
9.906989097595215,
9.706870079040527,
9.509112358093262,
9.310948371887207,
9.112371444702148,
8.913400650024414,
8.718700408935547,
8.528748512268066,
8.346258163452148,
8.176835060119629,
8.007468223571777,
7.8346123695373535,
7.661109924316406,
7.472811698913574,
7.3229851722717285,
7.1724748611450195,
7.021459579467773,
6.87035608291626,
6.715268135070801,
6.551558971405029,
6.379252910614014,
6.197574138641357,
6.005584239959717,
5.797598838806152,
5.572547912597656,
5.32601261138916,
5.059413909912109,
4.772655010223389,
4.4665327072143555,
4.142869472503662,
3.792914390563965,
3.42403244972229,
3.033987522125244,
2.5965797901153564,
2.084764242172241,
1.4431922435760498,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
379.5429382324219,
372.37005615234375,
370.221923828125,
368.46014404296875,
366.8081359863281,
365.17974853515625,
363.544677734375,
361.88092041015625,
360.1826171875,
358.4416809082031,
356.65240478515625,
354.8133850097656,
352.9205322265625,
350.9713439941406,
350.1814880371094,
353.0683898925781,
354.9402160644531,
355.29150390625,
355.2666320800781,
355.0354309082031,
354.66131591796875,
354.1761169433594,
353.5892333984375,
352.9053039550781,
352.1263122558594,
351.2519836425781,
350.2858581542969,
349.2301025390625,
348.09844970703125,
346.88671875,
345.59588623046875,
344.22442626953125,
342.7660827636719,
341.21380615234375,
339.56732177734375,
337.81903076171875,
335.87103271484375,
333.5375671386719,
330.95751953125,
327.93194580078125,
324.2280578613281,
320.35736083984375,
316.4132995605469,
312.5187072753906,
308.6867370605469,
305.0283203125,
301.7278137207031,
299.072265625,
295.9945068359375,
292.6706237792969,
289.13897705078125,
285.47564697265625,
281.6700439453125,
277.6820373535156,
273.60589599609375,
269.39886474609375,
265.0567932128906,
260.6592712402344,
256.11920166015625,
251.52928161621094,
251.22608947753906,
250.94979858398438,
250.690185546875,
250.44363403320312,
250.20469665527344,
249.9523162841797,
249.70730590820312,
249.46937561035156,
249.2390899658203,
249.01473999023438,
248.7931365966797,
248.56072998046875,
248.33131408691406,
248.10862731933594,
247.89036560058594,
247.6656951904297,
247.44241333007812,
247.2357940673828,
247.0429229736328,
246.85174560546875,
246.6458282470703,
246.4434814453125,
246.2621307373047,
246.06683349609375,
245.8930206298828,
245.7419891357422,
245.5773468017578,
245.4306640625,
245.29103088378906,
245.15647888183594,
245.0337677001953,
244.91653442382812,
244.8032684326172,
244.69989013671875,
244.6017608642578,
244.51095581054688,
244.43414306640625,
244.3482208251953,
244.27915954589844,
244.24990844726562,
244.2627716064453,
244.35305786132812,
244.58590698242188,
244.77023315429688
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 258.14453125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 212.10203552246094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 11.513263702392578,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 379.5429382324219,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 346.88671875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 251.52928161621094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 244.77023315429688,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.17151641845703,
83.11880493164062,
48.07670211791992,
27.192989349365234,
24.511320114135742,
4.764513969421387,
4.274507999420166,
2.410379409790039,
16.06317901611328,
6.798954963684082,
13.311010360717773,
3.2925586700439453,
0.5171842575073242,
0.483545184135437,
0.1123715415596962,
0.04493478313088417
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.680604934692383,
86.59355163574219,
54.58796310424805,
28.66684913635254,
43.51105880737305,
45.63801574707031,
22.39714813232422,
17.834741592407227,
26.56321144104004,
7.616818428039551,
15.02011775970459,
4.770871162414551,
1.2516486644744873,
0.570496141910553,
0.48494353890419006,
0.35488998889923096
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
12.73441219329834,
57.171791076660156,
38.46522521972656,
5.745921611785889,
31.180299758911133,
44.863494873046875,
13.677725791931152,
16.67195701599121,
16.890453338623047,
1.9555240869522095,
1.7531321048736572,
2.2949230670928955,
0.6978428959846497,
0.0048036277294158936,
0.35236141085624695,
0.310366690158844
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306281805038452,
1.1571177244186401,
0.9749300479888916,
4.610167503356934,
0.7237284779548645,
0.0002445315767545253,
0.5752547383308411,
0.03678291663527489,
0.0874253511428833,
0.01065035816282034,
0.02783796563744545,
0.0006076996796764433,
0.0005834683543071151,
0.0015780818648636341,
7.128337165340781e-05,
3.443790546953096e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007551863673143089,
0.002765974961221218,
0.001755611039698124,
0.0009165729861706495,
0.0014375880127772689,
0.0015658368356525898,
0.0007630839827470481,
0.0006103899795562029,
0.0008745953673496842,
0.0002447144943289459,
0.0004828351957257837,
0.0001559530064696446,
4.187406011624262e-05,
1.8400070985080674e-05,
1.6467438399558887e-05,
1.2154400792496745e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007377373985946178,
0.002671295078471303,
0.0016762828454375267,
0.0008691793191246688,
0.0013541876105591655,
0.001460225903429091,
0.0007046530954539776,
0.0005594216636382043,
0.000792645092587918,
0.00021912345255259424,
0.00042640676838345826,
0.00013454255531542003,
3.5468437999952585e-05,
1.540239099995233e-05,
1.3610919268103316e-05,
9.762785339262336e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559174031950533,
0.0012617699103429914,
0.0006020162254571915,
0.00026537530357018113,
0.0003541477781254798,
0.00030281394720077515,
0.00011625739716691896,
7.764847396174446e-05,
8.554696250939742e-05,
1.787434121069964e-05,
2.56814655585913e-05,
4.745503701997222e-06,
8.191611300389923e-07,
2.7155573434356484e-07,
1.8051990480216773e-07,
7.228835841033288e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007367436191998422,
0.0026659194845706224,
0.0016718012047931552,
0.0008665128843858838,
0.001349508878774941,
0.0014543307479470968,
0.0007014076691120863,
0.0005566019099205732,
0.0007881378987804055,
0.0002177250134991482,
0.0004233455110806972,
0.00013339561701286584,
3.512854891596362e-05,
1.5244365386024583e-05,
1.3461362868838478e-05,
9.63958700594958e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
7.571444511413574,
0.41313663125038147,
-0.16875162720680237,
-0.33402854204177856,
-0.3840250074863434,
-0.38207370042800903,
-0.3584827184677124,
-0.30505043268203735,
-0.23073677718639374,
-0.13185232877731323,
0.018704932183027267,
0.2667275667190552,
0.7820174694061279,
2.7481162548065186,
0.1921200007200241,
-1.932936429977417,
-1.1016626358032227,
-0.8578612804412842,
-0.7783457040786743,
-0.7639570236206055,
-0.8073710203170776,
-0.8858881592750549,
-0.9841930270195007,
-1.1123552322387695,
-1.2957947254180908,
-1.5403462648391724,
-1.6012377738952637,
-1.6696839332580566,
-1.7420061826705933,
-1.8367332220077515,
-1.920302152633667,
-2.0283987522125244,
-2.1540544033050537,
-2.3058810234069824,
-2.5041942596435547,
-2.8008837699890137,
-2.8699300289154053,
-2.971280574798584,
-3.1425325870513916,
-2.9217045307159424,
-2.8600876331329346,
-2.869675397872925,
-2.884429454803467,
-2.9391324520111084,
-2.8919901847839355,
-2.405463218688965,
-1.1236152648925781,
-0.9256182312965393,
-0.818360447883606,
-0.7437611818313599,
-0.6449115872383118,
-0.5819485187530518,
-0.5243532657623291,
-0.46334871649742126,
-0.418948233127594,
-0.413479208946228,
-0.43416792154312134,
-0.6152733564376831,
-1.7865378856658936,
0.21028214693069458,
0.15935343503952026,
0.1235552504658699,
0.09500040113925934,
0.08019179850816727,
0.11180494725704193,
0.09500040113925934,
0.0818658173084259,
0.06364479660987854,
0.05611172318458557,
0.04944785311818123,
0.07137101888656616,
0.064256452023983,
0.05904125049710274,
0.05971729755401611,
0.08898038417100906,
0.11363992094993591,
0.07858216762542725,
0.04223670810461044,
0.037279047071933746,
0.03718246892094612,
0.11080697178840637,
0.06506127119064331,
0.09342296421527863,
0.04793480038642883,
-0.008563235402107239,
0.0019637492951005697,
-0.05405139550566673,
-0.0887228399515152,
-0.12117299437522888,
-0.17992451786994934,
-0.22747300565242767,
-0.2811380922794342,
-0.34436437487602234,
-0.39796507358551025,
-0.4542699456214905,
-0.5208120942115784,
-0.557060956954956,
-0.6325526237487793,
-0.7611943483352661,
-0.9499717950820923,
-1.270288348197937,
-1.8448299169540405,
-2.4469170570373535
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
7.571444511413574,
0.41313663125038147,
-0.16875162720680237,
-0.33402854204177856,
-0.3840250074863434,
-0.38207370042800903,
-0.3584827184677124,
-0.30505043268203735,
-0.23073677718639374,
-0.13185232877731323,
0.018704932183027267,
0.2667275667190552,
0.7820174694061279,
2.7481162548065186,
0.1921200007200241,
-1.932936429977417,
-1.1016626358032227,
-0.8578612804412842,
-0.7783457040786743,
-0.7639570236206055,
-0.8073710203170776,
-0.8858881592750549,
-0.9841930270195007,
-1.1123552322387695,
-1.2957947254180908,
-1.5403462648391724,
-1.6012377738952637,
-1.6696839332580566,
-1.7420061826705933,
-1.8367332220077515,
-1.920302152633667,
-2.0283987522125244,
-2.1540544033050537,
-2.3058810234069824,
-2.5041942596435547,
-2.8008837699890137,
-2.8699300289154053,
-2.971280574798584,
-3.1425325870513916,
-2.9217045307159424,
-2.8600876331329346,
-2.869675397872925,
-2.884429454803467,
-2.9391324520111084,
-2.8919901847839355,
-2.405463218688965,
-1.1236152648925781,
-0.9256182312965393,
-0.818360447883606,
-0.7437611818313599,
-0.6449115872383118,
-0.5819485187530518,
-0.5243532657623291,
-0.46334871649742126,
-0.418948233127594,
-0.413479208946228,
-0.43416792154312134,
-0.6152733564376831,
-1.7865378856658936,
0.21028214693069458,
0.15935343503952026,
0.1235552504658699,
0.09500040113925934,
0.08019179850816727,
0.11180494725704193,
0.09500040113925934,
0.0818658173084259,
0.06364479660987854,
0.05611172318458557,
0.04944785311818123,
0.07137101888656616,
0.064256452023983,
0.05904125049710274,
0.05971729755401611,
0.08898038417100906,
0.11363992094993591,
0.07858216762542725,
0.04223670810461044,
0.037279047071933746,
0.03718246892094612,
0.11080697178840637,
0.06506127119064331,
0.09342296421527863,
0.04793480038642883,
-0.008563235402107239,
0.0019637492951005697,
-0.05405139550566673,
-0.0887228399515152,
-0.12117299437522888,
-0.17992451786994934,
-0.22747300565242767,
-0.2811380922794342,
-0.34436437487602234,
-0.39796507358551025,
-0.4542699456214905,
-0.5208120942115784,
-0.557060956954956,
-0.6325526237487793,
-0.7611943483352661,
-0.9499717950820923,
-1.270288348197937,
-1.8448299169540405,
-2.4469170570373535
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 258.14453125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 251.52928161621094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 244.77023315429688,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 1
},
"expected": 7.571444511413574,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 39
},
"expected": -3.1425325870513916,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 38
},
"expected": -2.971280574798584,
"tolerance": {
"rel": 0.0001
}
}
]
},
{
"id": "scm_call600_night_cirrus",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 0e52608 (v4.8.0-4-g0e526083); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_ref2_600.json). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: call 600, 00:00 UTC (17:34 LST), evening; cloudy RRTM layers 52-59 (7 layers, cldfrac = 1, max taucloud 0.0271); tbound = 281.52 K, glw = 264.4 W/m^2, olr (model top) = 239.2 W/m^2, TOA upward flux 232.3 W/m^2. Tolerances: measured against a NumPy replica of RTRN the component's fluxes agree with the real32 dump to <= 1e-6 relative (2e-4 W/m^2), the band fluxes to 2e-5 W/m^2, the Planck integrals to 2e-10, and the heating rates to 4e-4 K/day (HTR is a difference of O(300 W/m^2) fluxes over O(6 hPa) layers carried in single precision, so its relative error is ~1e-4 of the column maximum); tolerances are set 3-5x above those floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at the three largest-|HTR| layers.",
"parameter_overrides": {
"tbound": 281.521240234375
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call600_night_cirrus_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
264.3688659667969,
263.23297119140625,
261.6672058105469,
259.74627685546875,
257.66632080078125,
255.50318908691406,
253.2971649169922,
251.0620880126953,
248.80902099609375,
246.54734802246094,
244.304443359375,
242.11766052246094,
240.065185546875,
238.3275604248047,
237.62876892089844,
240.9173126220703,
241.3423309326172,
240.71392822265625,
239.8367156982422,
238.7857208251953,
237.57089233398438,
236.1606903076172,
234.52798461914062,
232.649169921875,
230.48037719726562,
227.94178771972656,
224.98727416992188,
221.8157196044922,
218.4292449951172,
214.80703735351562,
210.9050750732422,
206.746826171875,
202.26620483398438,
197.42724609375,
192.1730194091797,
186.40394592285156,
179.88751220703125,
172.7784881591797,
165.1356964111328,
156.80978393554688,
148.23629760742188,
139.33297729492188,
130.2236785888672,
121.05785369873047,
111.83368682861328,
102.88614654541016,
94.70045471191406,
89.27790069580078,
84.4638900756836,
79.5267333984375,
73.96887969970703,
66.13392639160156,
53.180213928222656,
41.40781784057617,
33.61547088623047,
26.662981033325195,
20.628341674804688,
16.209428787231445,
13.251144409179688,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
348.82611083984375,
351.5693054199219,
352.096923828125,
351.92913818359375,
351.3439636230469,
350.4902648925781,
349.4505615234375,
348.2682189941406,
346.96978759765625,
345.57452392578125,
344.0916748046875,
342.53533935546875,
340.92340087890625,
339.2970275878906,
337.9492492675781,
338.8658142089844,
341.22686767578125,
341.9325866699219,
342.11883544921875,
342.04510498046875,
341.8037109375,
341.43695068359375,
340.9633483886719,
340.38958740234375,
339.71673583984375,
338.9393005371094,
338.0718994140625,
337.12872314453125,
336.10333251953125,
334.9875183105469,
333.7826843261719,
332.4928894042969,
331.1036376953125,
329.61138916015625,
328.0096740722656,
326.2861633300781,
324.3534851074219,
322.0663146972656,
319.5280456542969,
316.5846862792969,
313.0350646972656,
309.2242126464844,
305.3341979980469,
301.4821472167969,
297.6835021972656,
294.0411071777344,
290.673828125,
287.9143981933594,
284.9927062988281,
281.6458435058594,
277.72430419921875,
272.8780517578125,
264.00048828125,
256.7142639160156,
253.3682861328125,
250.24923706054688,
246.9840850830078,
244.16998291015625,
241.62181091308594,
239.18067932128906,
238.83111572265625,
238.5232696533203,
238.23707580566406,
237.96653747558594,
237.70616149902344,
237.4370574951172,
237.17648315429688,
236.92416381835938,
236.68014526367188,
236.44422912597656,
236.21218872070312,
235.9722442626953,
235.73570251464844,
235.50621032714844,
235.28179931640625,
235.0525360107422,
234.82766723632812,
234.6192626953125,
234.4244384765625,
234.2331085205078,
234.02978515625,
233.82937622070312,
233.65016174316406,
233.46046447753906,
233.29171752929688,
233.14540100097656,
232.98892211914062,
232.84957885742188,
232.71800231933594,
232.59278869628906,
232.47930908203125,
232.37196350097656,
232.2691650390625,
232.1759033203125,
232.08897399902344,
232.00926208496094,
231.94302368164062,
231.8702850341797,
231.814208984375,
231.79656982421875,
231.82174682617188,
231.9219207763672,
232.15985107421875,
232.34640502929688
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
261.9869689941406,
260.82830810546875,
259.24127197265625,
257.2994384765625,
255.1988067626953,
253.01455688476562,
250.78680419921875,
248.52919006347656,
246.25254821777344,
243.96600341796875,
241.69686889648438,
239.48260498046875,
237.40127563476562,
235.63319396972656,
234.90333557128906,
238.1637420654297,
238.5801239013672,
237.94163513183594,
237.05099487304688,
235.9833526611328,
234.74851989746094,
233.31382751464844,
231.65135192871094,
229.7366943359375,
227.52467346191406,
224.9330291748047,
221.9136962890625,
218.671142578125,
215.20729064941406,
211.50051879882812,
207.50506591796875,
203.2449188232422,
198.65184020996094,
193.6884307861328,
188.2957000732422,
182.37155151367188,
175.68121337890625,
168.38156127929688,
160.532958984375,
151.98887634277344,
143.18629455566406,
134.03009033203125,
124.64637756347656,
115.18856048583984,
105.65699768066406,
96.40386199951172,
87.9417953491211,
82.3582992553711,
77.39708709716797,
72.28860473632812,
66.49612426757812,
58.2224006652832,
49.55634689331055,
41.11409378051758,
33.310394287109375,
26.34705924987793,
20.55786895751953,
16.205947875976562,
13.248382568359375,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
348.635498046875,
351.380615234375,
351.9096374511719,
351.7431945800781,
351.1595153808594,
350.3069152832031,
349.26849365234375,
348.0874938964844,
346.7900390625,
345.39599609375,
343.9143371582031,
342.35931396484375,
340.7482604980469,
339.1230163574219,
337.77618408203125,
338.6936340332031,
341.0548095703125,
341.7608947753906,
341.9474182128906,
341.8739013671875,
341.6330871582031,
341.26690673828125,
340.7939453125,
340.2208557128906,
339.5488586425781,
338.7722473144531,
337.9059753417969,
336.9638671875,
335.9393310546875,
334.8245544433594,
333.6205139160156,
332.3316650390625,
330.94317626953125,
329.4517517089844,
327.85076904296875,
326.1280822753906,
324.1958923339844,
321.9092712402344,
319.37158203125,
316.4286193847656,
312.8794860839844,
309.0688781738281,
305.1792907714844,
301.3275146484375,
297.52911376953125,
293.8868408203125,
290.5198059082031,
287.7606201171875,
284.83892822265625,
281.49224853515625,
277.57098388671875,
272.7248229980469,
268.51300048828125,
264.69903564453125,
261.2676696777344,
258.0873718261719,
255.1215362548828,
252.36920166015625,
249.77200317382812,
247.28196716308594,
246.93028259277344,
246.6154327392578,
246.32200622558594,
246.04443359375,
245.7771759033203,
245.50051879882812,
245.23260498046875,
244.9731903076172,
244.7223663330078,
244.4798583984375,
244.24139404296875,
243.9944610595703,
243.75125122070312,
243.51541137695312,
243.2847442626953,
243.049072265625,
242.81724548339844,
242.6022186279297,
242.40110778808594,
242.20323181152344,
241.99276733398438,
241.78590393066406,
241.60035705566406,
241.40345764160156,
241.22776794433594,
241.07505798339844,
240.91110229492188,
240.76478576660156,
240.62611389160156,
240.49371337890625,
240.37319946289062,
240.25881958007812,
240.1488037109375,
240.04881286621094,
239.95518493652344,
239.86903381347656,
239.79690551757812,
239.71737670898438,
239.65469360351562,
239.6311492919922,
239.65028381347656,
239.7457275390625,
239.9810028076172,
240.1661834716797
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 264.3688659667969,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 214.80703735351562,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 11.51368236541748,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 348.82611083984375,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 334.9875183105469,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 239.18067932128906,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 232.34640502929688,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.103435516357422,
83.23046875,
49.23113250732422,
27.10411834716797,
25.89136505126953,
6.823476791381836,
4.8471832275390625,
3.0015084743499756,
16.594392776489258,
6.779623031616211,
13.173465728759766,
3.413597583770752,
0.5387730598449707,
0.4722130000591278,
0.11354324966669083,
0.05053982511162758
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.928686141967773,
82.55950164794922,
51.300018310546875,
26.643152236938477,
40.07796096801758,
41.325767517089844,
19.97153091430664,
15.730001449584961,
23.154644012451172,
6.540566921234131,
12.647086143493652,
3.8891453742980957,
0.9877863526344299,
0.4456366002559662,
0.3672572672367096,
0.257385790348053
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
14.17916488647461,
58.98486328125,
37.390750885009766,
5.744744777679443,
28.743722915649414,
39.12710189819336,
11.784489631652832,
14.099309921264648,
14.899179458618164,
2.0680932998657227,
2.252049207687378,
2.0403034687042236,
0.5493608713150024,
0.004804250318557024,
0.2622515857219696,
0.21626196801662445
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306334972381592,
1.1571487188339233,
0.9749671816825867,
4.610371112823486,
0.7237650752067566,
0.00024454641970805824,
0.5752942562103271,
0.03678557276725769,
0.08743277192115784,
0.010651379823684692,
0.027840938419103622,
0.0006077774451114237,
0.0005835527554154396,
0.0015783201670274138,
7.129515870474279e-05,
3.4444299217284424e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007293592789210379,
0.002626092405989766,
0.0016386575298383832,
0.0008468012092635036,
0.001314986846409738,
0.001410938799381256,
0.0006775754736736417,
0.0005359322531148791,
0.0007551925373263657,
0.0002075309312203899,
0.0004011117562185973,
0.0001251113135367632,
3.268500222475268e-05,
1.4111447853792924e-05,
1.2392389180604368e-05,
8.765355232753791e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007353900582529604,
0.002658597892150283,
0.0016656973166391253,
0.0008628813084214926,
0.0013431364204734564,
0.0014463018160313368,
0.0006969875539653003,
0.0005527613684535027,
0.0007819991442374885,
0.00021582031331490725,
0.00041917606722563505,
0.00013183346891310066,
3.4665619750740007e-05,
1.5029135283839423e-05,
1.3257666978461202e-05,
9.471789780945983e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559791033156216,
0.0012617975007742643,
0.0006020346190780401,
0.00026538476231507957,
0.0003541620681062341,
0.0003028282953891903,
0.00011626370542217046,
7.765308691887185e-05,
8.555267413612455e-05,
1.787568544386886e-05,
2.5683619242045097e-05,
4.745976184494793e-06,
8.192528753170336e-07,
2.715882487791532e-07,
1.8054299744107993e-07,
7.229870391256554e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007355590350925922,
0.002659511985257268,
0.0016664592549204826,
0.0008633346878923476,
0.0013439321191981435,
0.0014473042683675885,
0.0006975394207984209,
0.0005532408249564469,
0.0007827655645087361,
0.00021605812071356922,
0.0004196966183371842,
0.00013202850823290646,
3.472341632004827e-05,
1.5056008123792708e-05,
1.3283099178806879e-05,
9.492739991401322e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-5.474827766418457,
-2.8827385902404785,
-2.3552780151367188,
-1.9589011669158936,
-1.6738502979278564,
-1.4542195796966553,
-1.2802574634552002,
-1.1323432922363281,
-1.0023523569107056,
-0.8576256036758423,
-0.6938485503196716,
-0.4728955924510956,
-0.11648457497358322,
0.6628130078315735,
2.363640308380127,
-1.8853542804718018,
-1.2669315338134766,
-0.9847490787506104,
-0.8823875784873962,
-0.8570188283920288,
-0.8957646489143372,
-0.9702318906784058,
-1.0651620626449585,
-1.1904969215393066,
-1.3665797710418701,
-1.5791075229644775,
-1.64447820186615,
-1.6995593309402466,
-1.7597689628601074,
-1.8470889329910278,
-1.9161027669906616,
-2.0142314434051514,
-2.126978635787964,
-2.264232635498047,
-2.446251153945923,
-2.70353364944458,
-2.7742040157318115,
-2.8648908138275146,
-2.9469947814941406,
-2.683194637298584,
-2.6529881954193115,
-2.6523377895355225,
-2.6340835094451904,
-2.623567581176758,
-2.5024728775024414,
-2.217106342315674,
-1.1953524351119995,
-0.8284111022949219,
-0.6790125966072083,
-0.6813910603523254,
-1.2136934995651245,
-1.6145168542861938,
-1.733136773109436,
-1.6754341125488281,
-1.4088646173477173,
-0.992732048034668,
-0.5610514879226685,
-0.13983716070652008,
0.23401322960853577,
0.30808329582214355,
0.22592775523662567,
0.17960259318351746,
0.14560718834400177,
0.12539023160934448,
0.14708805084228516,
0.12783686816692352,
0.11222344636917114,
0.09258595108985901,
0.08051372319459915,
0.07143540680408478,
0.08727417141199112,
0.07925821095705032,
0.07339915633201599,
0.0726587250828743,
0.09870254993438721,
0.11692357063293457,
0.08238089829683304,
0.04632516950368881,
0.03760097175836563,
0.03167752921581268,
0.106718510389328,
0.06055430322885513,
0.08157607913017273,
0.03721465915441513,
-0.01851075142621994,
-0.015259298495948315,
-0.06956823915243149,
-0.10572054237127304,
-0.14087487757205963,
-0.19943323731422424,
-0.24833381175994873,
-0.303286612033844,
-0.3657080829143524,
-0.42162665724754333,
-0.4777061939239502,
-0.5431215763092041,
-0.584907591342926,
-0.6599807739257812,
-0.7857251167297363,
-0.9759834408760071,
-1.2912135124206543,
-1.855614423751831,
-2.4503352642059326
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-5.509673118591309,
-2.9139630794525146,
-2.3851664066314697,
-1.9879560470581055,
-1.7022501230239868,
-1.4829097986221313,
-1.3092987537384033,
-1.1614649295806885,
-1.032538890838623,
-0.8885655999183655,
-0.7255374193191528,
-0.504819393157959,
-0.14955589175224304,
0.6301180720329285,
2.3347201347351074,
-1.8938835859298706,
-1.2768573760986328,
-0.9974372982978821,
-0.8976115584373474,
-0.8751412630081177,
-0.9172866940498352,
-0.9956873059272766,
-1.0949643850326538,
-1.2255786657333374,
-1.408387541770935,
-1.6290040016174316,
-1.6976617574691772,
-1.7558722496032715,
-1.819870948791504,
-1.9116580486297607,
-1.9848017692565918,
-2.0880019664764404,
-2.2065961360931396,
-2.3505468368530273,
-2.5405194759368896,
-2.806391716003418,
-2.8841958045959473,
-2.980726480484009,
-3.066662311553955,
-2.8058128356933594,
-2.784858465194702,
-2.792006492614746,
-2.7789628505706787,
-2.7723262310028076,
-2.6466784477233887,
-2.344391107559204,
-1.267697811126709,
-0.8928595781326294,
-0.7522417902946472,
-0.7792046070098877,
-1.3919177055358887,
-1.7642648220062256,
-1.7880479097366333,
-1.6475367546081543,
-1.390336036682129,
-1.0120395421981812,
-0.5592270493507385,
-0.12287585437297821,
0.2511952817440033,
0.3125580847263336,
0.24070416390895844,
0.19486188888549805,
0.16044798493385315,
0.13990908861160278,
0.16299119591712952,
0.14335370063781738,
0.12719301879405975,
0.10694386065006256,
0.09442093223333359,
0.08498849719762802,
0.10201838612556458,
0.0933263823390007,
0.08679128438234329,
0.08585769683122635,
0.11222344636917114,
0.13160340487957,
0.0963524878025055,
0.05958852544426918,
0.05141160264611244,
0.04674367234110832,
0.12033598870038986,
0.07391423732042313,
0.0967709943652153,
0.05186229944229126,
-0.005022047553211451,
0.0005150818033143878,
-0.05485621094703674,
-0.09075097739696503,
-0.12571215629577637,
-0.18459244072437286,
-0.23349301517009735,
-0.2880595028400421,
-0.351511150598526,
-0.40749409794807434,
-0.46412089467048645,
-0.5306951999664307,
-0.57058185338974,
-0.6460413336753845,
-0.7732665538787842,
-0.9632351398468018,
-1.281233787536621,
-1.8500128984451294,
-2.448270320892334
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 264.3688659667969,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 239.18067932128906,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 232.34640502929688,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 1
},
"expected": -5.474827766418457,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 39
},
"expected": -2.9469947814941406,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 2
},
"expected": -2.8827385902404785,
"tolerance": {
"rel": 0.0001
}
}
]
},
{
"id": "scm_call1440_predawn_cirrus",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 0e52608 (v4.8.0-4-g0e526083); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_ref2_1440.json). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: call 1440, 07:00 UTC (00:34 LST), night; cloudy RRTM layers 55-59 (4 layers, cldfrac = 1, max taucloud 0.00109); tbound = 278.38 K, glw = 254.2 W/m^2, olr (model top) = 241.5 W/m^2, TOA upward flux 234.6 W/m^2. Tolerances: measured against a NumPy replica of RTRN the component's fluxes agree with the real32 dump to <= 1e-6 relative (2e-4 W/m^2), the band fluxes to 2e-5 W/m^2, the Planck integrals to 2e-10, and the heating rates to 4e-4 K/day (HTR is a difference of O(300 W/m^2) fluxes over O(6 hPa) layers carried in single precision, so its relative error is ~1e-4 of the column maximum); tolerances are set 3-5x above those floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at the three largest-|HTR| layers.",
"parameter_overrides": {
"tbound": 278.38031005859375
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call1440_predawn_cirrus_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
254.17991638183594,
253.60308837890625,
253.02597045898438,
252.49774169921875,
251.92672729492188,
250.97396850585938,
249.34170532226562,
247.3074188232422,
245.1671600341797,
243.00787353515625,
240.86709594726562,
238.80226135253906,
236.91287231445312,
235.43258666992188,
234.98822021484375,
236.8946533203125,
237.2820281982422,
236.7837371826172,
235.93556213378906,
234.86712646484375,
233.59837341308594,
232.10934448242188,
230.37733459472656,
228.3842010498047,
226.072998046875,
223.376708984375,
220.3000030517578,
217.02383422851562,
213.5254364013672,
209.76307678222656,
205.7255859375,
201.4186553955078,
196.7738800048828,
191.7483673095703,
186.291748046875,
180.3091278076172,
173.62246704101562,
166.34451293945312,
158.54779052734375,
150.16461181640625,
141.82943725585938,
133.0279541015625,
123.95433807373047,
114.82952117919922,
105.57320404052734,
95.84135437011719,
87.68663787841797,
82.26821899414062,
77.40270233154297,
72.01251983642578,
65.81986999511719,
58.16486358642578,
49.55185317993164,
41.14904022216797,
33.35505294799805,
26.397029876708984,
20.572662353515625,
16.209440231323242,
13.251144409179688,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
333.6300964355469,
335.7660827636719,
336.57073974609375,
337.3587341308594,
338.2450866699219,
339.0694274902344,
339.369140625,
338.9353332519531,
338.12457275390625,
337.1130676269531,
335.968505859375,
334.7304382324219,
333.4586486816406,
332.2673645019531,
331.5602111816406,
332.5653991699219,
334.22039794921875,
334.9434814453125,
335.1684875488281,
335.1278076171875,
334.9084777832031,
334.5518493652344,
334.07672119140625,
333.4947204589844,
332.79736328125,
331.96795654296875,
331.05169677734375,
330.10491943359375,
329.0870056152344,
327.969970703125,
326.7525939941406,
325.4544372558594,
324.04412841796875,
322.515625,
320.8663024902344,
319.0719909667969,
317.0621643066406,
314.7441711425781,
312.1834411621094,
309.28594970703125,
305.93701171875,
302.1826171875,
298.3201904296875,
294.4895935058594,
290.66900634765625,
286.90228271484375,
283.7521667480469,
281.2198791503906,
278.4308166503906,
275.02239990234375,
271.0711669921875,
266.6848449707031,
262.5416564941406,
258.8150939941406,
255.43173217773438,
252.284423828125,
249.30325317382812,
246.55911254882812,
243.9929656982422,
241.5362548828125,
241.1845245361328,
240.87461853027344,
240.58648681640625,
240.31402587890625,
240.05178833007812,
239.7806854248047,
239.5181121826172,
239.26390075683594,
239.01809692382812,
238.78042602539062,
238.54660034179688,
238.30477905273438,
238.06651306152344,
237.8354034423828,
237.60928344726562,
237.37841796875,
237.15188598632812,
236.94183349609375,
236.7454071044922,
236.55245971679688,
236.3475341796875,
236.14572143554688,
235.9650421142578,
235.77394104003906,
235.603759765625,
235.4561004638672,
235.298095703125,
235.15744018554688,
235.0244598388672,
234.8978729248047,
234.78302001953125,
234.67430114746094,
234.5701446533203,
234.4756317138672,
234.38746643066406,
234.30653381347656,
234.23915100097656,
234.1650390625,
234.10763549804688,
234.08883666992188,
234.11268615722656,
234.21188354492188,
234.44908142089844,
234.63519287109375
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
254.17213439941406,
253.59527587890625,
253.01800537109375,
252.48971557617188,
251.91856384277344,
250.9657440185547,
249.3334503173828,
247.2990264892578,
245.1587371826172,
242.99929809570312,
240.8583984375,
238.79351806640625,
236.90396118164062,
235.42361450195312,
234.97906494140625,
236.88548278808594,
237.27281188964844,
236.77439880371094,
235.92628479003906,
234.85777282714844,
233.58897399902344,
232.09974670410156,
230.36769104003906,
228.37437438964844,
226.06304931640625,
223.3665771484375,
220.2896270751953,
217.01315307617188,
213.5145721435547,
209.75184631347656,
205.7138671875,
201.40658569335938,
196.76141357421875,
191.7354736328125,
186.27830505371094,
180.2950439453125,
173.6077117919922,
166.3290252685547,
158.53150939941406,
150.1475067138672,
141.81146240234375,
133.00900268554688,
123.934326171875,
114.80844116210938,
105.55088806152344,
95.81768035888672,
87.6618423461914,
82.24281311035156,
77.37666320800781,
71.98567199707031,
65.79194641113281,
58.1351432800293,
49.5196533203125,
41.11339569091797,
33.31349563598633,
26.351442337036133,
20.558340072631836,
16.20595932006836,
13.248382568359375,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
333.6295166015625,
335.7654113769531,
336.57012939453125,
337.358154296875,
338.2444763183594,
339.06884765625,
339.36865234375,
338.9346923828125,
338.1239318847656,
337.1125183105469,
335.9679870605469,
334.7299499511719,
333.4581298828125,
332.2667541503906,
331.5595703125,
332.56488037109375,
334.2198181152344,
334.94293212890625,
335.1678771972656,
335.1272888183594,
334.90789794921875,
334.5512390136719,
334.0760803222656,
333.49407958984375,
332.796875,
331.9673767089844,
331.0511474609375,
330.10443115234375,
329.0864562988281,
327.9694519042969,
326.7521057128906,
325.4538879394531,
324.0435791015625,
322.5151062011719,
320.8658752441406,
319.0714416503906,
317.0616760253906,
314.7437438964844,
312.1829528808594,
309.2854309082031,
305.93646240234375,
302.18206787109375,
298.3197326660156,
294.48919677734375,
290.66851806640625,
286.9017639160156,
283.7517395019531,
281.2193908691406,
278.4303894042969,
275.0219421386719,
271.0707092285156,
266.68438720703125,
262.5411682128906,
258.8146057128906,
255.43124389648438,
252.28506469726562,
249.34971618652344,
246.62652587890625,
244.0597381591797,
241.6023712158203,
241.2550506591797,
240.9446258544922,
240.65545654296875,
240.38185119628906,
240.11868286132812,
239.8467254638672,
239.58349609375,
239.32867431640625,
239.08229064941406,
238.84414672851562,
238.6099395751953,
238.36766052246094,
238.12918090820312,
237.89755249023438,
237.6711883544922,
237.44007873535156,
237.21324157714844,
237.00296020507812,
236.80641174316406,
236.6131591796875,
236.4080352783203,
236.20603942871094,
236.0251007080078,
235.83387756347656,
235.6636199951172,
235.51573181152344,
235.3575897216797,
235.21681213378906,
235.08372497558594,
234.95700073242188,
234.84205627441406,
234.7332305908203,
234.62896728515625,
234.53431701660156,
234.44606018066406,
234.364990234375,
234.29750061035156,
234.22337341308594,
234.16595458984375,
234.14697265625,
234.1708221435547,
234.2698974609375,
234.50704956054688,
234.69320678710938
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 254.17991638183594,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 209.76307678222656,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 11.51368236541748,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 333.6300964355469,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 327.969970703125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 241.5362548828125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 234.63519287109375,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.659059524536133,
81.13510131835938,
48.227821350097656,
25.97137451171875,
24.97262954711914,
5.95515775680542,
4.496622085571289,
2.6866097450256348,
15.788846015930176,
6.196648120880127,
11.879961967468262,
3.1384146213531494,
0.5122531056404114,
0.4067537486553192,
0.10507049411535263,
0.04776366055011749
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.53230094909668,
80.45319366455078,
49.61469268798828,
25.601511001586914,
38.34483337402344,
39.182212829589844,
18.810535430908203,
14.726511001586914,
21.541057586669922,
6.017932415008545,
11.51404857635498,
3.4886937141418457,
0.8752204775810242,
0.3895407021045685,
0.3189530670642853,
0.21888402104377747
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
14.188834190368652,
59.667938232421875,
38.193077087402344,
5.745265007019043,
29.154237747192383,
39.22833251953125,
11.749818801879883,
14.074224472045898,
15.150949478149414,
2.1100330352783203,
2.286405324935913,
2.0842537879943848,
0.5419198870658875,
0.004804250318557024,
0.2521958351135254,
0.20294936001300812
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306334972381592,
1.1571487188339233,
0.9749671816825867,
4.610371112823486,
0.7237650752067566,
0.00024454641970805824,
0.5752942562103271,
0.03678557276725769,
0.08743277192115784,
0.010651379823684692,
0.027840938419103622,
0.0006077774451114237,
0.0005835527554154396,
0.0015783201670274138,
7.129515870474279e-05,
3.4444299217284424e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007168747251853347,
0.002559016225859523,
0.0015831243945285678,
0.0008138970006257296,
0.0012575655709952116,
0.0013391777174547315,
0.0006383767467923462,
0.0005020842072553933,
0.0007015939918346703,
0.00019106196123175323,
0.00036549026845023036,
0.00011201784218428656,
2.8863765692221932e-05,
1.235178206115961e-05,
1.074457304639509e-05,
7.440923582180403e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007212268537841737,
0.0025823551695793867,
0.001602398930117488,
0.0008253009873442352,
0.0012774362694472075,
0.001363956369459629,
0.0006518797599710524,
0.0005137237021699548,
0.0007199746905826032,
0.0001966930867638439,
0.000377627438865602,
0.00011645357881207019,
3.0152532417559996e-05,
1.2943471119797323e-05,
1.1296902812318876e-05,
7.881588317104615e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559791033156216,
0.0012617975007742643,
0.0006020346190780401,
0.00026538476231507957,
0.0003541620681062341,
0.0003028282953891903,
0.00011626370542217046,
7.765308691887185e-05,
8.555267413612455e-05,
1.787568544386886e-05,
2.5683619242045097e-05,
4.745976184494793e-06,
8.192528753170336e-07,
2.715882487791532e-07,
1.8054299744107993e-07,
7.229870391256554e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007216372177936137,
0.00258456077426672,
0.0016042212955653667,
0.0008263806230388582,
0.0012793181231245399,
0.0013663063291460276,
0.0006531619001179934,
0.0005148299387656152,
0.0007217242382466793,
0.00019722999422810972,
0.00037878708099015057,
0.00011687861842801794,
3.0276320103439502e-05,
1.3000400031160098e-05,
1.135013280872954e-05,
7.924224519229028e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-3.8272597789764404,
-1.9016094207763672,
-1.767022728919983,
-1.9087297916412354,
-2.270808696746826,
-2.4086549282073975,
-1.9463670253753662,
-1.5769875049591064,
-1.3278839588165283,
-1.1241023540496826,
-0.909911036491394,
-0.6629645228385925,
-0.3025969862937927,
0.26839327812194824,
0.898141622543335,
-1.23429274559021,
-1.1598705053329468,
-0.9937429428100586,
-0.9279770255088806,
-0.9239199757575989,
-0.9721331596374512,
-1.052083969116211,
-1.1517351865768433,
-1.2843276262283325,
-1.448628544807434,
-1.6346006393432617,
-1.7190229892730713,
-1.7854968309402466,
-1.8573142290115356,
-1.9313141107559204,
-2.009845018386841,
-2.107468605041504,
-2.222490072250366,
-2.360196113586426,
-2.532555103302002,
-2.758432149887085,
-2.8536627292633057,
-2.9386775493621826,
-3.0034499168395996,
-2.6633033752441406,
-2.629446268081665,
-2.6482396125793457,
-2.624384641647339,
-2.62843656539917,
-2.8135733604431152,
-2.3027617931365967,
-1.2954497337341309,
-0.9090251326560974,
-0.8461499214172363,
-0.9333409070968628,
-1.3274385929107666,
-1.7704441547393799,
-1.8065696954727173,
-1.6619707345962524,
-1.4005087614059448,
-1.019155502319336,
-0.5660393238067627,
-0.13371339440345764,
0.23919422924518585,
0.31265464425086975,
0.2302737534046173,
0.18369105458259583,
0.14966346323490143,
0.1293177306652069,
0.15130527317523956,
0.13205409049987793,
0.11621533334255219,
0.0963524878025055,
0.08421587198972702,
0.07520194351673126,
0.09123386442661285,
0.08289597928524017,
0.07681157439947128,
0.07626429945230484,
0.10208277404308319,
0.12043256312608719,
0.08585769683122635,
0.049705393612384796,
0.04101338982582092,
0.035057757049798965,
0.10968022793531418,
0.06364479660987854,
0.0845378041267395,
0.04024076461791992,
-0.0156778022646904,
-0.012040036730468273,
-0.06679967045783997,
-0.10275881737470627,
-0.13797754049301147,
-0.1965359002351761,
-0.24543647468090057,
-0.30042147636413574,
-0.36306828260421753,
-0.41901904344558716,
-0.47513076663017273,
-0.5407071113586426,
-0.5820102691650391,
-0.6571800112724304,
-0.7832784652709961,
-0.9731826782226562,
-1.2891532182693481,
-1.8540691137313843,
-2.44966983795166
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-3.8271737098693848,
-1.9019033908843994,
-1.7671456336975098,
-1.9088698625564575,
-2.270925521850586,
-2.4088070392608643,
-1.9463485479354858,
-1.5770237445831299,
-1.3281663656234741,
-1.124274492263794,
-0.9099950194358826,
-0.6631119251251221,
-0.3025650382041931,
0.268237441778183,
0.8980047106742859,
-1.2342778444290161,
-1.1600154638290405,
-0.9936299324035645,
-0.9281285405158997,
-0.9239065051078796,
-0.9722772240638733,
-1.0520967245101929,
-1.1518845558166504,
-1.284546136856079,
-1.4486994743347168,
-1.6348083019256592,
-1.719293236732483,
-1.7855846881866455,
-1.8575928211212158,
-1.9316693544387817,
-2.0100386142730713,
-2.10772705078125,
-2.22278094291687,
-2.360593557357788,
-2.5328686237335205,
-2.758863925933838,
-2.854119062423706,
-2.9390885829925537,
-3.0038843154907227,
-2.6637518405914307,
-2.6299548149108887,
-2.6488289833068848,
-2.6249444484710693,
-2.6289901733398438,
-2.814192295074463,
-2.303330421447754,
-1.295689344406128,
-0.9093324542045593,
-0.8464756011962891,
-0.933791995048523,
-1.3281636238098145,
-1.7714170217514038,
-1.8079019784927368,
-1.6642016172409058,
-1.4024043083190918,
-1.0243735313415527,
-0.569570779800415,
-0.13325034081935883,
0.24033088982105255,
0.3033509850502014,
0.2313683032989502,
0.1858801394701004,
0.15207789838314056,
0.13128148019313812,
0.15310806035995483,
0.133438378572464,
0.11750303953886032,
0.09757580608129501,
0.08521384745836258,
0.07600675523281097,
0.0921996459364891,
0.08334667235612869,
0.07790612429380417,
0.07677938044071198,
0.10259785503149033,
0.12107641994953156,
0.08634058386087418,
0.049962934106588364,
0.04165723919868469,
0.035476259887218475,
0.11006654053926468,
0.06419207155704498,
0.08479534089565277,
0.04040173068642616,
-0.015194913372397423,
-0.011750303208827972,
-0.0665421336889267,
-0.10253347456455231,
-0.1376878023147583,
-0.19634275138378143,
-0.24521112442016602,
-0.30019611120224,
-0.36277854442596436,
-0.4188258945941925,
-0.47484102845191956,
-0.5404817461967468,
-0.5819780230522156,
-0.6571478247642517,
-0.7828921675682068,
-0.9731826782226562,
-1.288895606994629,
-1.8539725542068481,
-2.4497387409210205
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 254.17991638183594,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 241.5362548828125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 234.63519287109375,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 1
},
"expected": -3.8272597789764404,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 39
},
"expected": -3.0034499168395996,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 38
},
"expected": -2.9386775493621826,
"tolerance": {
"rel": 0.0001
}
}
]
},
{
"id": "scm_call2400_afternoon",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 0e52608 (v4.8.0-4-g0e526083); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_ref2_2400.json). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: call 2400, 15:00 UTC (08:34 LST), morning; cloudy RRTM layers 56-57 (2 layers, cldfrac = 1, max taucloud 0.00041); tbound = 282.02 K, glw = 254.1 W/m^2, olr (model top) = 245.8 W/m^2, TOA upward flux 238.7 W/m^2. Tolerances: measured against a NumPy replica of RTRN the component's fluxes agree with the real32 dump to <= 1e-6 relative (2e-4 W/m^2), the band fluxes to 2e-5 W/m^2, the Planck integrals to 2e-10, and the heating rates to 4e-4 K/day (HTR is a difference of O(300 W/m^2) fluxes over O(6 hPa) layers carried in single precision, so its relative error is ~1e-4 of the column maximum); tolerances are set 3-5x above those floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at the three largest-|HTR| layers.",
"parameter_overrides": {
"tbound": 282.0179138183594
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call2400_afternoon_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
254.10433959960938,
251.9254150390625,
249.92820739746094,
248.15887451171875,
247.57005310058594,
247.7407684326172,
247.0712127685547,
245.59609985351562,
243.76902770996094,
241.81190490722656,
239.83660888671875,
237.9435272216797,
236.2410430908203,
234.96871948242188,
234.58949279785156,
235.6622772216797,
235.93666076660156,
235.5001983642578,
234.68519592285156,
233.6083526611328,
232.30340576171875,
230.75816345214844,
228.958984375,
226.87893676757812,
224.46932983398438,
221.67916870117188,
218.5352020263672,
215.21575927734375,
211.67872619628906,
207.87796020507812,
203.80027770996094,
199.4471435546875,
194.747802734375,
189.67160034179688,
184.16383361816406,
178.1204376220703,
171.4300079345703,
164.19534301757812,
156.46072387695312,
148.2496337890625,
140.30120849609375,
131.87428283691406,
123.14681243896484,
114.27401733398438,
105.0945053100586,
95.04537963867188,
87.24076843261719,
81.97850036621094,
77.1844253540039,
71.60610961914062,
65.7035903930664,
58.16014099121094,
49.54545974731445,
41.132102966308594,
33.33361053466797,
26.369571685791016,
20.565616607666016,
16.20636749267578,
13.248445510864258,
11.513689041137695,
11.310164451599121,
11.109390258789062,
10.908340454101562,
10.706811904907227,
10.505863189697266,
10.306472778320312,
10.106500625610352,
9.907366752624512,
9.707235336303711,
9.509474754333496,
9.31130313873291,
9.112724304199219,
8.91374683380127,
8.719042778015137,
8.529077529907227,
8.346590995788574,
8.177152633666992,
8.007784843444824,
7.834920406341553,
7.661413669586182,
7.4731059074401855,
7.323277473449707,
7.172760009765625,
7.021740436553955,
6.870631217956543,
6.715534687042236,
6.551822662353516,
6.379508018493652,
6.197822570800781,
6.005825519561768,
5.797830104827881,
5.572769641876221,
5.326225280761719,
5.059617042541504,
4.772846221923828,
4.466711044311523,
4.143034934997559,
3.7930643558502197,
3.424166440963745,
3.0341062545776367,
2.596679449081421,
2.0848426818847656,
1.4432445764541626,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
350.31768798828125,
346.2682189941406,
344.7117004394531,
343.37799072265625,
342.57904052734375,
343.2217712402344,
344.1986389160156,
344.2630920410156,
343.75006103515625,
342.8968200683594,
341.8460998535156,
340.7021789550781,
339.556396484375,
338.5657958984375,
338.1302490234375,
338.9957580566406,
340.1604309082031,
340.7743835449219,
340.9568176269531,
340.8663330078125,
340.5799865722656,
340.1335144042969,
339.5511779785156,
338.8403625488281,
337.9888916015625,
336.9866943359375,
335.8876037597656,
334.7916259765625,
333.643310546875,
332.40264892578125,
331.06829833984375,
329.6549377441406,
328.120361328125,
326.4682922363281,
324.6885070800781,
322.74359130859375,
320.5834655761719,
318.16552734375,
315.52301025390625,
312.6246032714844,
309.4371643066406,
305.7380676269531,
301.8832092285156,
298.0167236328125,
294.0980224609375,
290.22015380859375,
287.276123046875,
284.94384765625,
282.2716064453125,
278.8436279296875,
275.109619140625,
270.89715576171875,
266.8356628417969,
263.13238525390625,
259.7559814453125,
256.6058654785156,
253.6470947265625,
250.8978271484375,
248.31036376953125,
245.83033752441406,
245.47988891601562,
245.1663055419922,
244.87400817871094,
244.59750366210938,
244.3313751220703,
244.05555725097656,
243.78858947753906,
243.53012084960938,
243.2802276611328,
243.0384521484375,
242.8007354736328,
242.55450439453125,
242.3120880126953,
242.07679748535156,
241.84678649902344,
241.61166381835938,
241.3804168701172,
241.1658477783203,
240.96514892578125,
240.7677764892578,
240.55770874023438,
240.3511505126953,
240.1658172607422,
239.96902465820312,
239.7935028076172,
239.6409454345703,
239.47703552246094,
239.33079528808594,
239.19227600097656,
239.05982971191406,
238.93936157226562,
238.8249969482422,
238.7150421142578,
238.61497497558594,
238.52130126953125,
238.43515014648438,
238.36305236816406,
238.2835235595703,
238.22097778320312,
238.197509765625,
238.21682739257812,
238.31246948242188,
238.54783630371094,
238.73321533203125
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
254.1029052734375,
251.9239501953125,
249.92669677734375,
248.1573486328125,
247.56846618652344,
247.73924255371094,
247.0697021484375,
245.59454345703125,
243.76744079589844,
241.81027221679688,
239.83499145507812,
237.94190979003906,
236.23931884765625,
234.967041015625,
234.58775329589844,
235.6605682373047,
235.93499755859375,
235.4984893798828,
234.68341064453125,
233.60659790039062,
232.30162048339844,
230.75637817382812,
228.95724487304688,
226.87713623046875,
224.4674835205078,
221.6772918701172,
218.53318786621094,
215.2137908935547,
211.67666625976562,
207.87582397460938,
203.79800415039062,
199.44488525390625,
194.7454833984375,
189.6691131591797,
184.1613006591797,
178.11785888671875,
171.42724609375,
164.19244384765625,
156.4577178955078,
148.2464599609375,
140.2978057861328,
131.87074279785156,
123.14308166503906,
114.27005004882812,
105.0903091430664,
95.04092407226562,
87.23603057861328,
81.97367095947266,
77.1794204711914,
71.600830078125,
65.69803619384766,
58.15407180786133,
49.53851318359375,
41.123512268066406,
33.32089614868164,
26.35392189025879,
20.559144973754883,
16.20636749267578,
13.248445510864258,
11.513689041137695,
11.310164451599121,
11.109390258789062,
10.908340454101562,
10.706811904907227,
10.505863189697266,
10.306472778320312,
10.106500625610352,
9.907366752624512,
9.707235336303711,
9.509474754333496,
9.31130313873291,
9.112724304199219,
8.91374683380127,
8.719042778015137,
8.529077529907227,
8.346590995788574,
8.177152633666992,
8.007784843444824,
7.834920406341553,
7.661413669586182,
7.4731059074401855,
7.323277473449707,
7.172760009765625,
7.021740436553955,
6.870631217956543,
6.715534687042236,
6.551822662353516,
6.379508018493652,
6.197822570800781,
6.005825519561768,
5.797830104827881,
5.572769641876221,
5.326225280761719,
5.059617042541504,
4.772846221923828,
4.466711044311523,
4.143034934997559,
3.7930643558502197,
3.424166440963745,
3.0341062545776367,
2.596679449081421,
2.0848426818847656,
1.4432445764541626,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
350.317626953125,
346.26812744140625,
344.71160888671875,
343.3778991699219,
342.5789489746094,
343.2216796875,
344.19854736328125,
344.262939453125,
343.74993896484375,
342.89678955078125,
341.8459777832031,
340.70208740234375,
339.55633544921875,
338.5657043457031,
338.13018798828125,
338.9956359863281,
340.1603088378906,
340.7742614746094,
340.95672607421875,
340.8662414550781,
340.5799255371094,
340.1334228515625,
339.55108642578125,
338.84027099609375,
337.98883056640625,
336.9865417480469,
335.8874816894531,
334.7915344238281,
333.64324951171875,
332.4025573730469,
331.0682067871094,
329.6548156738281,
328.1202392578125,
326.4681091308594,
324.6884460449219,
322.7435302734375,
320.5833740234375,
318.1654357910156,
315.5229187011719,
312.62445068359375,
309.4371337890625,
305.7380065917969,
301.88311767578125,
298.0166320800781,
294.09796142578125,
290.2200622558594,
287.27606201171875,
284.9437561035156,
282.27154541015625,
278.8435363769531,
275.10955810546875,
270.89703369140625,
266.8356018066406,
263.13232421875,
259.75592041015625,
256.60577392578125,
253.65953063964844,
250.92091369628906,
248.33319091796875,
245.85012817382812,
245.4993133544922,
245.18536376953125,
244.89279174804688,
244.61605834960938,
244.3497314453125,
244.0736846923828,
243.80650329589844,
243.54783630371094,
243.29776000976562,
243.0558624267578,
242.8179168701172,
242.5716094970703,
242.32904052734375,
242.09371948242188,
241.86349487304688,
241.62832641601562,
241.39694213867188,
241.1822967529297,
240.98150634765625,
240.78395080566406,
240.57391357421875,
240.3671417236328,
240.18182373046875,
239.98497009277344,
239.8094024658203,
239.6567840576172,
239.49281311035156,
239.34649658203125,
239.2079620361328,
239.07540893554688,
238.95489501953125,
238.84046936035156,
238.73046875,
238.63035583496094,
238.53665161132812,
238.45045471191406,
238.37832641601562,
238.29881286621094,
238.2361602783203,
238.212646484375,
238.23202514648438,
238.3275604248047,
238.5629425048828,
238.7483367919922
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 254.10433959960938,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 207.87796020507812,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 11.513689041137695,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 350.31768798828125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 30
},
"expected": 332.40264892578125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 60
},
"expected": 245.83033752441406,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 238.73321533203125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.718734741210938,
81.14073944091797,
48.03974151611328,
25.99566078186035,
24.870811462402344,
6.093258857727051,
4.484376430511475,
2.688037395477295,
15.679571151733398,
6.222113609313965,
12.002357482910156,
3.104400157928467,
0.5000183582305908,
0.41510865092277527,
0.10320970416069031,
0.046153537929058075
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.95500373840332,
82.69992065429688,
51.460227966308594,
26.70633888244629,
40.261844635009766,
41.600372314453125,
20.125045776367188,
15.862980842590332,
23.332813262939453,
6.573525905609131,
12.722077369689941,
3.926943063735962,
1.0030587911605835,
0.4495663642883301,
0.37442511320114136,
0.2635307312011719
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
14.18832015991211,
59.38017272949219,
38.01300048828125,
5.745565891265869,
29.752782821655273,
41.241825103759766,
12.394312858581543,
14.972740173339844,
15.52116870880127,
2.066580295562744,
2.249469518661499,
2.0984089374542236,
0.5853544473648071,
0.004804261494427919,
0.28313252329826355,
0.23559069633483887
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306335687637329,
1.157149314880371,
0.9749677181243896,
4.6103739738464355,
0.7237658500671387,
0.00024454668164253235,
0.5752949118614197,
0.03678562119603157,
0.08743291348218918,
0.010651398450136185,
0.0278409905731678,
0.0006077789003029466,
0.0005835542688146234,
0.0015783245908096433,
7.129537698347121e-05,
3.44444151778589e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007313345558941364,
0.002636734629049897,
0.0016474982257932425,
0.0008520554983988404,
0.0013241736451163888,
0.0014224608894437551,
0.0006838913541287184,
0.0005414008046500385,
0.0007638890529051423,
0.00021021439169999212,
0.0004069478309247643,
0.000127274906844832,
3.3320691727567464e-05,
1.4405472029466182e-05,
1.2668991985265166e-05,
8.990103196993005e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007232454954646528,
0.0025932053104043007,
0.001611364190466702,
0.0008306123199872673,
0.0012866939650848508,
0.0013755174586549401,
0.000658187607768923,
0.0005191660602577031,
0.0007285819738171995,
0.00019933450676035136,
0.0003833324008155614,
0.00011854465265059844,
3.0761533707845956e-05,
1.3223542737250682e-05,
1.155877544078976e-05,
8.091337804216892e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.000455598026746884,
0.0012617979664355516,
0.0006020349683240056,
0.0002653849369380623,
0.00035416230093687773,
0.0003028285573236644,
0.00011626382183749229,
7.765317423036322e-05,
8.555278327548876e-05,
1.787571090972051e-05,
2.568365744082257e-05,
4.74598482469446e-06,
8.192545806195994e-07,
2.715888740567607e-07,
1.805434237667214e-07,
7.22988957591042e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007221546256914735,
0.002587342169135809,
0.001606519566848874,
0.0008277421584352851,
0.001281691249459982,
0.0013692700304090977,
0.0006547789089381695,
0.0005162251181900501,
0.0007239307160489261,
0.00019790712394751608,
0.00038024954847060144,
0.0001174146673292853,
3.0432440325967036e-05,
1.3072197361907456e-05,
1.1417264431656804e-05,
7.977992936503142e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
2.6384403705596924,
-0.6063047647476196,
-0.584577739238739,
0.2750464975833893,
-0.60292649269104,
-2.052295684814453,
-1.8721743822097778,
-1.5586261749267578,
-1.277095913887024,
-1.043265700340271,
-0.824500322341919,
-0.5975934863090515,
-0.2949761152267456,
0.05752302706241608,
0.20657500624656677,
-0.8667944073677063,
-0.997506320476532,
-0.9236112236976624,
-0.8905988931655884,
-0.8967890739440918,
-0.9432624578475952,
-1.0185627937316895,
-1.1175434589385986,
-1.2399927377700806,
-1.387382984161377,
-1.5471768379211426,
-1.6408523321151733,
-1.7194417715072632,
-1.7974799871444702,
-1.8787308931350708,
-1.9637531042099,
-2.0620529651641846,
-2.1761744022369385,
-2.3110275268554688,
-2.478238105773926,
-2.6720073223114014,
-2.771265745162964,
-2.857919692993164,
-2.908729076385498,
-2.543137788772583,
-2.463228940963745,
-2.4762253761291504,
-2.481651544570923,
-2.543757915496826,
-2.9106104373931885,
-2.236497402191162,
-1.315129280090332,
-0.9288966655731201,
-0.9181027412414551,
-0.9029979109764099,
-1.3527354001998901,
-1.8034676313400269,
-1.819638729095459,
-1.6662887334823608,
-1.4016920328140259,
-1.0198665857315063,
-0.5628598928451538,
-0.1263149380683899,
0.24784615635871887,
0.30998265743255615,
0.23799999058246613,
0.19251182675361633,
0.15819449722766876,
0.13749465346336365,
0.16125279664993286,
0.14135776460170746,
0.12516488134860992,
0.10498011112213135,
0.09287568926811218,
0.08344325423240662,
0.10053753107786179,
0.09162017703056335,
0.08563234657049179,
0.0845056101679802,
0.11103232204914093,
0.1304122805595398,
0.09535451978445053,
0.05871932581067085,
0.050349246710538864,
0.0459066666662693,
0.1196921318769455,
0.0734635442495346,
0.09657783806324005,
0.05150818079710007,
-0.005376166198402643,
0.0004185039724688977,
-0.055017173290252686,
-0.0910407081246376,
-0.12564776837825775,
-0.18465682864189148,
-0.23355740308761597,
-0.28818827867507935,
-0.35135018825531006,
-0.4073975086212158,
-0.46412089467048645,
-0.5307596325874329,
-0.57058185338974,
-0.6463310718536377,
-0.7734275460243225,
-0.9636214971542358,
-1.2816523313522339,
-1.8502060174942017,
-2.448568820953369
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
2.6384403705596924,
-0.6063677072525024,
-0.5845982432365417,
0.27496662735939026,
-0.6028485894203186,
-2.052276611328125,
-1.872155785560608,
-1.5586986541748047,
-1.2772549390792847,
-1.0431451797485352,
-0.8245338797569275,
-0.5977409482002258,
-0.2948962152004242,
0.057429518550634384,
0.2066662609577179,
-0.8667498230934143,
-0.9975497722625732,
-0.9237101078033447,
-0.8905713558197021,
-0.8968427777290344,
-0.9432362914085388,
-1.018524408340454,
-1.1175932884216309,
-1.240053415298462,
-1.3873356580734253,
-1.5473039150238037,
-1.640841007232666,
-1.719529628753662,
-1.797512173652649,
-1.8788249492645264,
-1.9637224674224854,
-2.0620927810668945,
-2.1762421131134033,
-2.311131715774536,
-2.4782657623291016,
-2.6720974445343018,
-2.7713446617126465,
-2.8579797744750977,
-2.908787488937378,
-2.543325185775757,
-2.463284492492676,
-2.476310968399048,
-2.481764793395996,
-2.5438907146453857,
-2.9107110500335693,
-2.236644983291626,
-1.3151566982269287,
-0.9289833903312683,
-0.9182069897651672,
-0.9031250476837158,
-1.3529213666915894,
-1.8038363456726074,
-1.8202813863754272,
-1.6678411960601807,
-1.4027519226074219,
-1.021069884300232,
-0.5643162727355957,
-0.12623170018196106,
0.24885596334934235,
0.31075528264045715,
0.23877261579036713,
0.1930912882089615,
0.1586773842573166,
0.13791315257549286,
0.1617356836795807,
0.14180846512317657,
0.12558338046073914,
0.10536642372608185,
0.09313322603702545,
0.08392614126205444,
0.10066629946231842,
0.09197429567575455,
0.0856967344880104,
0.08495630323886871,
0.11112889647483826,
0.13070200383663177,
0.09551548212766647,
0.0589124821126461,
0.050735559314489365,
0.04584227874875069,
0.12014283239841461,
0.0734313502907753,
0.09670660644769669,
0.05160475894808769,
-0.0052473959513008595,
0.0005472744232974946,
-0.05485621094703674,
-0.0910085141658783,
-0.1254224181175232,
-0.18456025421619415,
-0.23342864215373993,
-0.2880595028400421,
-0.35128578543663025,
-0.4073331356048584,
-0.46402430534362793,
-0.5306951999664307,
-0.5706140398979187,
-0.6461057662963867,
-0.7733309268951416,
-0.9637502431869507,
-1.2814269065856934,
-1.8502382040023804,
-2.448591709136963
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 254.10433959960938,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 245.83033752441406,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 238.73321533203125,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 45
},
"expected": -2.9106104373931885,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 39
},
"expected": -2.908729076385498,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 38
},
"expected": -2.857919692993164,
"tolerance": {
"rel": 0.0001
}
}
]
},
{
"id": "scm_call120_thick_overcast",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 0e52608 (v4.8.0-4-g0e526083); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_ref2_120.json). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: OVERCAST, optically thick. Call 120, 20:00 UTC (13:34 LST), the deepest cirrus deck of the run: RRTM layers 51-57 all have CLDFRAC = 1 with TAUCLOUD 0.054, 0.636, 0.760, 0.467, 0.233, 0.084, 0.024, so the cloud absorptance ABSCLD = 1 - exp(-1.66 TAUCLOUD) reaches 0.72 and EFCLFRAC = ABSCLD (CLDFRAC = 1); this is the regime in which the cloudy branch of the RTRN sweeps (loops 2000/4000, the Pade-weighted total source BBUTOT/BBDLEVD and the combined absorptance ATOT) dominates the transfer. tbound = 285.69 K, glw = 292.8 W/m^2 against a clear-sky 260.9 W/m^2 (a 31.9 W/m^2 surface cloud forcing), olr (model top) = 129.7 W/m^2, TOA upward flux 126.6 W/m^2, and HTR - HTRC reaches 25.0 K/day at layer 52. Tolerances: measured against the real32 dump the component's flux columns agree to Linf 1.3e-4 (F_dn), 2.0e-4 (F_up), 1.0e-4 (F_dn_clr) and 1.8e-4 W/m^2 (F_up_clr) on fluxes up to 371 W/m^2 (3e-7 relative at the spot levels), the band fluxes to 1.2e-5 W/m^2, the Planck integrals to 8.3e-11, and HTR/HTRC to 3.7e-4 / 4.3e-4 K/day on a column maximum of 23.4 K/day (3.3e-6 relative at the three cloud layers spot-checked). Tolerances are set 4-30x above those floors and are the same contract as the other RTRN regimes: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at the three cloudy layers 52, 54 and 55 (the three largest |HTR| of the column).",
"parameter_overrides": {
"tbound": 285.68798828125
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call120_thick_overcast_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
292.805419921875,
290.7854309082031,
288.888916015625,
287.0466613769531,
285.2126159667969,
283.3787536621094,
281.5437927246094,
279.7117004394531,
277.8916320800781,
276.09375,
274.3418273925781,
272.6760559082031,
271.1764221191406,
270.0458068847656,
271.1275329589844,
274.9292297363281,
275.14276123046875,
274.49822998046875,
273.7348327636719,
272.8644104003906,
271.8869323730469,
270.78045654296875,
269.5209655761719,
268.0940246582031,
266.4729919433594,
264.6080322265625,
262.4444580078125,
260.1326599121094,
257.6788330078125,
255.07542419433594,
252.30404663085938,
249.3679656982422,
246.24224853515625,
242.90090942382812,
239.3130340576172,
235.41343688964844,
230.95587158203125,
226.08926391601562,
220.86618041992188,
215.02684020996094,
208.97900390625,
202.97555541992188,
197.03163146972656,
191.2257537841797,
185.49569702148438,
179.9447784423828,
174.9932098388672,
171.549560546875,
168.39723205566406,
165.45484924316406,
162.80624389648438,
159.31065368652344,
144.26759338378906,
113.21172332763672,
73.66136169433594,
40.92283630371094,
23.85487174987793,
16.205442428588867,
13.247934341430664,
11.513449668884277,
11.309921264648438,
11.10915756225586,
10.908112525939941,
10.706584930419922,
10.505640983581543,
10.306253433227539,
10.106285095214844,
9.907156944274902,
9.707029342651367,
9.50927448272705,
9.311100006103516,
9.11252212524414,
8.913551330566406,
8.718849182128906,
8.52889633178711,
8.346405029296875,
8.176972389221191,
8.00760555267334,
7.834743976593018,
7.661242961883545,
7.4729390144348145,
7.323110580444336,
7.172600269317627,
7.021581172943115,
6.8704752922058105,
6.715385913848877,
6.551674842834473,
6.379361629486084,
6.197680473327637,
6.005690574645996,
5.797699451446533,
5.57264518737793,
5.326107025146484,
5.059502601623535,
4.772739410400391,
4.466610908508301,
4.142941474914551,
3.7929799556732178,
3.424091339111328,
3.0340399742126465,
2.5966227054595947,
2.084798574447632,
1.443214774131775,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
370.9346008300781,
367.93634033203125,
366.4772033691406,
365.1130065917969,
363.73773193359375,
362.3269958496094,
360.8668518066406,
359.3561096191406,
357.7896728515625,
356.16546630859375,
354.48516845703125,
352.7442932128906,
350.94390869140625,
349.0743408203125,
347.90301513671875,
349.88470458984375,
352.1637268066406,
352.6571350097656,
352.7148132324219,
352.5417175292969,
352.2149658203125,
351.7723083496094,
351.2262878417969,
350.58282470703125,
349.8434143066406,
349.00738525390625,
348.079833984375,
347.061279296875,
345.96405029296875,
344.7834777832031,
343.52154541015625,
342.17681884765625,
340.7429504394531,
339.21282958984375,
337.5853576660156,
335.85211181640625,
333.9170227050781,
331.6011657714844,
329.03790283203125,
326.0412292480469,
322.3594055175781,
318.5092468261719,
314.58319091796875,
310.7011413574219,
306.8760681152344,
303.2200927734375,
299.9122619628906,
297.1476135253906,
294.11114501953125,
290.81005859375,
287.27044677734375,
273.81829833984375,
199.6902618408203,
164.0317840576172,
149.64791870117188,
141.25502014160156,
136.3428497314453,
133.3007049560547,
131.4796905517578,
129.72824096679688,
129.47679138183594,
129.25990295410156,
129.0609588623047,
128.87460327148438,
128.69705200195312,
128.52212524414062,
128.3537139892578,
128.19137573242188,
128.03439331054688,
127.88331604003906,
127.73541259765625,
127.586181640625,
127.4377212524414,
127.29204559326172,
127.1488265991211,
127.00515747070312,
126.87106323242188,
126.75054931640625,
126.63987731933594,
126.5351333618164,
126.42576599121094,
126.3107681274414,
126.21349334716797,
126.1201171875,
126.04293823242188,
125.9813003540039,
125.92295837402344,
125.87647247314453,
125.83817291259766,
125.80816650390625,
125.7872314453125,
125.7730712890625,
125.76419067382812,
125.76087188720703,
125.76183319091797,
125.7667236328125,
125.7784423828125,
125.79447174072266,
125.82475280761719,
125.88502502441406,
125.98909759521484,
126.15108489990234,
126.42436218261719,
126.62908172607422
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
260.9042663574219,
258.6706848144531,
256.5643310546875,
254.5070343017578,
252.45130920410156,
250.38729858398438,
248.31341552734375,
246.23291015625,
244.15316772460938,
242.083251953125,
240.04495239257812,
238.07943725585938,
236.26583862304688,
234.80601501464844,
235.55128479003906,
239.0489501953125,
239.1576690673828,
238.3811798095703,
237.4431915283203,
236.3569793701172,
235.12071228027344,
233.697021484375,
232.05287170410156,
230.1630096435547,
227.98387145996094,
225.43588256835938,
222.43441772460938,
219.2084197998047,
215.755859375,
212.06089782714844,
208.08596801757812,
203.8371124267578,
199.26194763183594,
194.3150634765625,
188.94114685058594,
183.03976440429688,
176.3365478515625,
169.00558471679688,
161.1167449951172,
152.42315673828125,
143.26419067382812,
133.8987579345703,
124.29316711425781,
114.54069519042969,
104.57069396972656,
94.69512176513672,
86.0797348022461,
80.54369354248047,
75.26587677001953,
69.92933654785156,
64.49143981933594,
58.38666915893555,
49.96632385253906,
41.21461868286133,
33.28885269165039,
26.332490921020508,
20.55226707458496,
16.205442428588867,
13.247934341430664,
11.513449668884277,
11.309921264648438,
11.10915756225586,
10.908112525939941,
10.706584930419922,
10.505640983581543,
10.306253433227539,
10.106285095214844,
9.907156944274902,
9.707029342651367,
9.50927448272705,
9.311100006103516,
9.11252212524414,
8.913551330566406,
8.718849182128906,
8.52889633178711,
8.346405029296875,
8.176972389221191,
8.00760555267334,
7.834743976593018,
7.661242961883545,
7.4729390144348145,
7.323110580444336,
7.172600269317627,
7.021581172943115,
6.8704752922058105,
6.715385913848877,
6.551674842834473,
6.379361629486084,
6.197680473327637,
6.005690574645996,
5.797699451446533,
5.57264518737793,
5.326107025146484,
5.059502601623535,
4.772739410400391,
4.466610908508301,
4.142941474914551,
3.7929799556732178,
3.424091339111328,
3.0340399742126465,
2.5966227054595947,
2.084798574447632,
1.443214774131775,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
368.3824768066406,
365.4007263183594,
363.95709228515625,
362.60784912109375,
361.24713134765625,
359.85064697265625,
358.4045715332031,
356.907470703125,
355.3544616699219,
353.7437438964844,
352.07666015625,
350.34881591796875,
348.56109619140625,
346.7041320800781,
345.5445861816406,
347.5364074707031,
349.81829833984375,
350.3156433105469,
350.37811279296875,
350.2109375,
349.8907775878906,
349.45611572265625,
348.91925048828125,
348.2864074707031,
347.5588073730469,
346.7364196777344,
345.8240051269531,
344.8201904296875,
343.73699951171875,
342.56982421875,
341.32049560546875,
339.9879150390625,
338.56561279296875,
337.0463562011719,
335.42919921875,
333.7059631347656,
331.7798767089844,
329.47235107421875,
326.9165954589844,
323.92626953125,
320.2499694824219,
316.4051208496094,
312.48370361328125,
308.6053771972656,
304.7837829589844,
301.13055419921875,
297.8251953125,
295.06243896484375,
292.0281066894531,
288.72906494140625,
285.1915588378906,
281.1492004394531,
276.6445007324219,
272.6134338378906,
268.9901428222656,
265.71124267578125,
262.6947021484375,
259.90325927734375,
257.2662658691406,
254.7340087890625,
254.37657165527344,
254.05609130859375,
253.75717163085938,
253.47427368164062,
253.2017822265625,
252.91876220703125,
252.64479064941406,
252.3794708251953,
252.1228790283203,
251.8747100830078,
251.63040161132812,
251.3773193359375,
251.1279754638672,
250.8863983154297,
250.6500701904297,
250.40843200683594,
250.1701202392578,
249.94874572753906,
249.7415771484375,
249.5374298095703,
249.32005310058594,
249.10678100585938,
248.9151153564453,
248.7106170654297,
248.52781677246094,
248.36862182617188,
248.1968231201172,
248.04315185546875,
247.897216796875,
247.75721740722656,
247.6293182373047,
247.5075225830078,
247.39004516601562,
247.28282165527344,
247.18214416503906,
247.08924865722656,
247.01097106933594,
246.92434692382812,
246.8548583984375,
246.8251495361328,
246.83837890625,
246.9290313720703,
247.1617431640625,
247.3457794189453
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 292.805419921875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 162.80624389648438,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 40.92283630371094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 370.9346008300781,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 287.27044677734375,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 141.25502014160156,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 126.62908172607422,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.247886657714844,
83.58558654785156,
49.85614013671875,
27.37995147705078,
31.36646842956543,
18.98290252685547,
8.870920181274414,
6.405789375305176,
17.9526309967041,
6.911723613739014,
13.551499366760254,
3.4484944343566895,
0.5644668936729431,
0.49571484327316284,
0.12899136543273926,
0.05633469298481941
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.42005157470703,
85.18148803710938,
53.5134391784668,
27.953651428222656,
42.776588439941406,
45.147361755371094,
21.862144470214844,
17.365642547607422,
25.442935943603516,
7.227724075317383,
14.158717155456543,
4.447450160980225,
1.1545244455337524,
0.5241252779960632,
0.4410287141799927,
0.31766894459724426
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
13.827717781066895,
44.20956039428711,
21.871829986572266,
5.7234344482421875,
13.353410720825195,
13.409730911254883,
4.125805377960205,
3.7280077934265137,
4.006165504455566,
0.8450428247451782,
1.1205908060073853,
0.3140751123428345,
0.05754680559039116,
0.004803904797881842,
0.01912125013768673,
0.012238742783665657
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306305408477783,
1.1571314334869385,
0.9749463796615601,
4.610257625579834,
0.723744809627533,
0.00024453812511637807,
0.575272262096405,
0.0367840938270092,
0.08742865175008774,
0.010650811716914177,
0.027839288115501404,
0.0006077342550270259,
0.0005835057818330824,
0.0015781878028064966,
7.128861761884764e-05,
3.4440747640474e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007459601620212197,
0.002715827664360404,
0.0017135088564828038,
0.0008913796045817435,
0.0013932017609477043,
0.0015095053240656853,
0.0007318512070924044,
0.0005831007729284465,
0.0008306052768602967,
0.00023094013158697635,
0.00045236607547849417,
0.000144331410410814,
3.838280827039853e-05,
1.676200918154791e-05,
1.4902036127750762e-05,
1.0835043212864548e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007401584298349917,
0.0026843934319913387,
0.0016872130800038576,
0.00087568792514503,
0.0013656134251505136,
0.001474635093472898,
0.00071259232936427,
0.0005663246847689152,
0.0008036892977543175,
0.0002225540956715122,
0.00043392504449002445,
0.00013736553955823183,
3.6306289985077456e-05,
1.5792404155945405e-05,
1.398043332301313e-05,
1.0068011761177331e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559447607956827,
0.0012617821339517832,
0.0006020243745297194,
0.00026537952362559736,
0.0003541541227605194,
0.00030282032093964517,
0.00011626019841060042,
7.765052578179166e-05,
8.554950181860477e-05,
1.7874939658213407e-05,
2.5682422347017564e-05,
4.745713795273332e-06,
8.192018867703155e-07,
2.715701725719555e-07,
1.8053017925012682e-07,
7.229295562183324e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007389491074718535,
0.0026778492610901594,
0.0016817470313981175,
0.000872430216986686,
0.0013598920777440071,
0.001467413268983364,
0.0007086098776198924,
0.0005628596409223974,
0.0007981403614394367,
0.00022082848590798676,
0.0004301391600165516,
0.0001359409507131204,
3.58828401658684e-05,
1.5595060176565312e-05,
1.3793262951367069e-05,
9.912992936733644e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
1.3824665546417236,
-0.6029431223869324,
-0.6428074836730957,
-0.6016722321510315,
-0.5412431955337524,
-0.4676247835159302,
-0.3910291790962219,
-0.3010161221027374,
-0.20103861391544342,
-0.08086425811052322,
0.08270135521888733,
0.32301005721092224,
0.7740903496742249,
2.302105665206909,
1.8143806457519531,
-2.0115485191345215,
-1.080636978149414,
-0.7602984309196472,
-0.6296272873878479,
-0.5729042887687683,
-0.5698689222335815,
-0.5972167253494263,
-0.639457106590271,
-0.7016109228134155,
-0.7984104156494141,
-0.9351738691329956,
-0.9543759226799011,
-0.9765034317970276,
-0.998990535736084,
-1.0337215662002563,
-1.0630111694335938,
-1.102351188659668,
-1.1511073112487793,
-1.215281367301941,
-1.309933066368103,
-1.487775444984436,
-1.4675482511520386,
-1.4928126335144043,
-1.5563663244247437,
-1.2635947465896606,
-1.1217762231826782,
-1.0254408121109009,
-0.9536629319190979,
-0.9211753010749817,
-0.8938636779785156,
-0.7563615441322327,
-0.3047759532928467,
-0.05072109401226044,
0.15315674245357513,
0.37104183435440063,
4.043712615966797,
23.402114868164062,
1.7780319452285767,
-9.482711791992188,
-8.947364807128906,
-4.3572678565979,
-1.610729455947876,
-0.3875165581703186,
0.005642785225063562,
0.10110089927911758,
0.0340275913476944,
-0.004442580509930849,
-0.031999457627534866,
-0.04936737194657326,
-0.05160475894808769,
-0.06657432019710541,
-0.077616386115551,
-0.09102461487054825,
-0.09847719967365265,
-0.10607466101646423,
-0.10411091148853302,
-0.10655754804611206,
-0.10343486815690994,
-0.09860597550868988,
-0.08189800381660461,
-0.07455809414386749,
-0.1030646488070488,
-0.13120099902153015,
-0.14507600665092468,
-0.16653238236904144,
-0.07347963750362396,
-0.11232002824544907,
-0.12160759419202805,
-0.15597321093082428,
-0.1971636563539505,
-0.22230608761310577,
-0.2654602825641632,
-0.302513986825943,
-0.3417406678199768,
-0.3946492373943329,
-0.44493409991264343,
-0.5013999342918396,
-0.5554835200309753,
-0.6070238947868347,
-0.656182050704956,
-0.7075936198234558,
-0.7721720337867737,
-0.8421587347984314,
-0.9500684142112732,
-1.1424192190170288,
-1.4215935468673706,
-1.9301563501358032,
-2.477612018585205
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
1.057291865348816,
-0.913585901260376,
-0.9520649909973145,
-0.9114935398101807,
-0.8538682460784912,
-0.7832581400871277,
-0.7099055051803589,
-0.6251400113105774,
-0.5315459370613098,
-0.4191022217273712,
-0.26171398162841797,
-0.02779426798224449,
0.4160248339176178,
1.946287751197815,
1.5011887550354004,
-2.116417646408081,
-1.2096885442733765,
-0.9264026284217834,
-0.8298129439353943,
-0.8065475225448608,
-0.8490528464317322,
-0.926862359046936,
-1.0259509086608887,
-1.1551601886749268,
-1.33899986743927,
-1.5805736780166626,
-1.639906406402588,
-1.7055144309997559,
-1.7747890949249268,
-1.8665882349014282,
-1.9480468034744263,
-2.054298162460327,
-2.1784050464630127,
-2.3288674354553223,
-2.5264101028442383,
-2.817587375640869,
-2.8901829719543457,
-2.9931700229644775,
-3.122548818588257,
-2.928077220916748,
-2.8759992122650146,
-2.888585329055786,
-2.911879062652588,
-2.973128318786621,
-2.935137987136841,
-2.4433951377868652,
-1.2448152303695679,
-0.9821575284004211,
-0.869953453540802,
-0.7913796901702881,
-0.8376173973083496,
-1.5508931875228882,
-1.82362961769104,
-1.6211683750152588,
-1.3515188694000244,
-0.9906491041183472,
-0.5437664985656738,
-0.10928598791360855,
0.26530224084854126,
0.3247268795967102,
0.25258323550224304,
0.20648342370986938,
0.171683207154274,
0.15095116198062897,
0.17644770443439484,
0.15610197186470032,
0.13965155184268951,
0.11914485692977905,
0.10636439174413681,
0.09731826931238174,
0.11499201506376266,
0.1063000038266182,
0.09889570623636246,
0.09783335030078888,
0.12477856874465942,
0.1453174501657486,
0.10971242189407349,
0.07240118831396103,
0.0646427646279335,
0.06135911867022514,
0.1338246911764145,
0.08685567229986191,
0.1128029152750969,
0.06686405837535858,
0.008692005649209023,
0.01706208474934101,
-0.039339371025562286,
-0.07542729377746582,
-0.10968022793531418,
-0.16897901892662048,
-0.21784740686416626,
-0.2722851037979126,
-0.336251825094223,
-0.39262109994888306,
-0.4498595595359802,
-0.5177215933799744,
-0.5555801391601562,
-0.6316834688186646,
-0.7602285742759705,
-0.9507766366004944,
-1.2710931301116943,
-1.8445401191711426,
-2.4465270042419434
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 292.805419921875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 129.72824096679688,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 126.62908172607422,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 52
},
"expected": 23.402114868164062,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 54
},
"expected": -9.482711791992188,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 55
},
"expected": -8.947364807128906,
"tolerance": {
"rel": 0.0001
}
}
]
},
{
"id": "scm_call240_fractional_cloud",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 592f693 (v4.8.0-5-g592f6931); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_cloud_240.json, written by the same em_scm_xy run re-executed for 8 h with the cloudy calls added to ESM_DUMP_CALLS; the re-run reproduces the archived call 120 dump bit-for-bit, so it is the same trajectory). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: FRACTIONAL CLOUD. Call 240, 21:00 UTC (14:34 LST), the decaying cirrus deck: RRTM layer 55 has CLDFRAC = 0.1470 with TAUCLOUD = 0.009966, so ABSCLD = 0.016407 but EFCLFRAC = ABSCLD CLDFRAC = 0.002412 - the only place in the RTRN sweeps where the cloud fraction is not 1 and the two coefficients differ (here by a factor 6.8). MM5ATM forces CLDFRC = 1 wherever TAUCLOUD > 0.01 (phys/module_ra_rrtm.F:4254), so a layer can only reach RTRN with 0 < CLDFRAC < 1 when its cloud optical depth is at or below 0.01: this layer sits exactly at that ceiling and is therefore the strongest fractional-cloud case the scheme admits. Layers 51-54, 56 and 57 are overcast (TAUCLOUD 0.0728, 0.1423, 0.0709, 0.0403, 0.00475, 0.00296), so the column also exercises fractional and overcast cloudy layers stacked in one sweep. tbound = 285.85 K, glw = 276.6 W/m^2 against a clear-sky 262.8 W/m^2, olr (model top) = 207.4 W/m^2, TOA upward flux 201.7 W/m^2, HTR - HTRC = 2.27 K/day at layer 51 and 0.131 K/day (8.7 % of HTR) in the fractional layer 55. Tolerances: measured against the real32 dump the component's flux columns agree to Linf 1.4e-4 (F_dn), 1.5e-4 (F_up), 1.0e-4 (F_dn_clr) and 2.5e-4 W/m^2 (F_up_clr) on fluxes up to 370 W/m^2 (5e-8 to 5e-7 relative at the spot levels), the band fluxes to 1.1e-5 W/m^2, the Planck integrals to 2.2e-10, and HTR/HTRC to 2.5e-4 / 3.5e-4 K/day. The spot-checked heating rates are small (|HTR| = 1.03, 0.57 and 1.51 K/day at layers 51, 52 and the fractional layer 55), so the same 2.5e-4 K/day floor is 7.3e-5 relative at layer 51; the HTR spot tolerance is therefore rel 2e-4 here instead of the 1e-4 used where |HTR| is large. Everything else is the standard RTRN contract, 4-8x above the measured floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day.",
"parameter_overrides": {
"tbound": 285.852294921875
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call240_fractional_cloud_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
276.5974426269531,
274.41595458984375,
272.3460998535156,
270.31463623046875,
268.28399658203125,
266.2445068359375,
264.192138671875,
262.1292724609375,
260.05987548828125,
258.0010986328125,
255.97267150878906,
254.0045166015625,
252.17095947265625,
250.6471710205078,
250.64320373535156,
254.51217651367188,
254.8314666748047,
254.14788818359375,
253.300537109375,
252.31671142578125,
251.1982879638672,
249.9153594970703,
248.4407196044922,
246.75323486328125,
244.81687927246094,
242.56494140625,
239.93162536621094,
237.10714721679688,
234.09280395507812,
230.87710571289062,
227.430419921875,
223.75897216796875,
219.8200225830078,
215.57769775390625,
210.98712158203125,
205.96348571777344,
200.25413513183594,
194.0157470703125,
187.3088836669922,
179.94020080566406,
172.2067413330078,
164.36929321289062,
156.436767578125,
148.5138397216797,
140.5532989501953,
132.79922485351562,
126.04949188232422,
121.40338897705078,
117.21922302246094,
113.14063262939453,
108.96868133544922,
94.38114166259766,
67.56314849853516,
48.75733947753906,
34.59545135498047,
27.463459014892578,
20.97736358642578,
16.2060546875,
13.2483549118042,
11.513612747192383,
11.310089111328125,
11.1093168258667,
10.908268928527832,
10.706743240356445,
10.505797386169434,
10.30640697479248,
10.106436729431152,
9.907299995422363,
9.707176208496094,
9.50941276550293,
9.311239242553711,
9.112662315368652,
8.91368579864502,
8.718977928161621,
8.529022216796875,
8.346531867980957,
8.177098274230957,
8.007726669311523,
7.834864616394043,
7.661362171173096,
7.473058223724365,
7.3232245445251465,
7.1727142333984375,
7.0216898918151855,
6.870580673217773,
6.715488910675049,
6.55177640914917,
6.3794636726379395,
6.197777271270752,
6.00578498840332,
5.797791004180908,
5.57273006439209,
5.3261871337890625,
5.059580326080322,
4.772812843322754,
4.46668004989624,
4.143006324768066,
3.7930381298065186,
3.4241435527801514,
3.0340847969055176,
2.5966615676879883,
2.0848286151885986,
1.443236231803894,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
370.4356994628906,
367.6070556640625,
366.1865234375,
364.83538818359375,
363.4671630859375,
362.05413818359375,
360.5901184082031,
359.0708923339844,
357.492431640625,
355.85736083984375,
354.1617431640625,
352.4062805175781,
350.5931091308594,
348.7220153808594,
347.24505615234375,
348.51318359375,
351.021240234375,
351.6023864746094,
351.7022705078125,
351.5528869628906,
351.23974609375,
350.8055725097656,
350.2646179199219,
349.6247863769531,
348.8875732421875,
348.0517883300781,
347.1241760253906,
346.1076965332031,
345.0126953125,
343.8341369628906,
342.5733337402344,
341.2303466796875,
339.7973937988281,
338.2672424316406,
336.638671875,
334.90130615234375,
332.9609069824219,
330.6463928222656,
328.0845642089844,
325.1013488769531,
321.4342346191406,
317.59051513671875,
313.6704406738281,
309.79150390625,
305.966796875,
302.3056335449219,
298.98529052734375,
296.1614074707031,
293.1580810546875,
289.86285400390625,
286.0875244140625,
268.9736633300781,
243.58316040039062,
230.26815795898438,
221.56390380859375,
218.53330993652344,
215.07716369628906,
212.04322814941406,
209.68710327148438,
207.43858337402344,
207.11964416503906,
206.8368682861328,
206.57423400878906,
206.32630920410156,
206.0884552001953,
205.8451385498047,
205.61000061035156,
205.382568359375,
205.16259765625,
204.95021057128906,
204.7415771484375,
204.52687072753906,
204.31500244140625,
204.10897827148438,
203.9071502685547,
203.70193481445312,
203.50259399414062,
203.31893920898438,
203.14779663085938,
202.98086547851562,
202.8042449951172,
202.62791442871094,
202.4718475341797,
202.3094482421875,
202.16664123535156,
202.04425048828125,
201.91566467285156,
201.802734375,
201.69764709472656,
201.5994415283203,
201.5122528076172,
201.4315185546875,
201.35548400878906,
201.287841796875,
201.22604370117188,
201.17054748535156,
201.126708984375,
201.07948303222656,
201.04830932617188,
201.0531768798828,
201.10128784179688,
201.2194366455078,
201.46768188476562,
201.65966796875
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
262.7548828125,
260.4748229980469,
258.3076477050781,
256.1758117675781,
254.04164123535156,
251.89451599121094,
249.7301025390625,
247.5500030517578,
245.35726928710938,
243.1693878173828,
241.0054473876953,
238.89471435546875,
236.91165161132812,
235.2320556640625,
235.06857299804688,
238.79544067382812,
239.06817626953125,
238.32701110839844,
237.40325927734375,
236.324951171875,
235.09347534179688,
233.67178344726562,
232.02880859375,
230.138916015625,
227.95855712890625,
225.40821838378906,
222.40896606445312,
219.1850128173828,
215.73439025878906,
212.0419158935547,
208.0696258544922,
203.82510375976562,
199.25355529785156,
194.31053161621094,
188.9409942626953,
183.0447998046875,
176.35745239257812,
169.0470733642578,
161.18136596679688,
152.58566284179688,
143.512939453125,
134.22998046875,
124.73179626464844,
115.13876342773438,
105.40868377685547,
95.88452911376953,
87.65769958496094,
82.11737823486328,
77.08216857910156,
72.05065155029297,
66.67585754394531,
58.734981536865234,
49.720237731933594,
41.142913818359375,
33.310150146484375,
26.343734741210938,
20.55571746826172,
16.2060546875,
13.2483549118042,
11.513612747192383,
11.310089111328125,
11.1093168258667,
10.908268928527832,
10.706743240356445,
10.505797386169434,
10.30640697479248,
10.106436729431152,
9.907299995422363,
9.707176208496094,
9.50941276550293,
9.311239242553711,
9.112662315368652,
8.91368579864502,
8.718977928161621,
8.529022216796875,
8.346531867980957,
8.177098274230957,
8.007726669311523,
7.834864616394043,
7.661362171173096,
7.473058223724365,
7.3232245445251465,
7.1727142333984375,
7.0216898918151855,
6.870580673217773,
6.715488910675049,
6.55177640914917,
6.3794636726379395,
6.197777271270752,
6.00578498840332,
5.797791004180908,
5.57273006439209,
5.3261871337890625,
5.059580326080322,
4.772812843322754,
4.46668004989624,
4.143006324768066,
3.7930381298065186,
3.4241435527801514,
3.0340847969055176,
2.5966615676879883,
2.0848286151885986,
1.443236231803894,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
369.3283386230469,
366.50732421875,
365.0939636230469,
363.749755859375,
362.38818359375,
360.9819030761719,
359.5243225097656,
358.01153564453125,
356.4394226074219,
354.8105773925781,
353.12103271484375,
351.37164306640625,
349.56427001953125,
347.6990661621094,
346.2276306152344,
347.50018310546875,
350.0093688964844,
350.5921325683594,
350.6941833496094,
350.5471496582031,
350.2368469238281,
349.8059387207031,
349.26873779296875,
348.6333312988281,
347.9010925292969,
347.07086181640625,
346.1497802734375,
345.1394958496094,
344.0505676269531,
342.8774719238281,
341.6219482421875,
340.2841796875,
338.8562316894531,
337.33062744140625,
335.70635986328125,
333.973388671875,
332.03668212890625,
329.7256774902344,
327.16705322265625,
324.1865539550781,
320.5220031738281,
316.68035888671875,
312.7622375488281,
308.8849792480469,
305.0616760253906,
301.4016418457031,
298.0823974609375,
295.2594299316406,
292.25701904296875,
288.9625549316406,
285.18829345703125,
280.3014221191406,
276.0238037109375,
272.0660705566406,
268.55767822265625,
265.33660888671875,
262.3357849121094,
259.5487976074219,
256.9137268066406,
254.38238525390625,
254.02505493164062,
253.7047119140625,
253.40594482421875,
253.12322998046875,
252.85089111328125,
252.5679931640625,
252.2940673828125,
252.02880859375,
251.77227783203125,
251.52427673339844,
251.2801513671875,
251.02700805664062,
250.77781677246094,
250.53631591796875,
250.30010986328125,
250.05850219726562,
249.8201904296875,
249.59878540039062,
249.39158630371094,
249.18736267089844,
248.97003173828125,
248.75665283203125,
248.56483459472656,
248.36029052734375,
248.17727661132812,
248.01795959472656,
247.84603881835938,
247.69223022460938,
247.5460205078125,
247.40585327148438,
247.2777557373047,
247.1558380126953,
247.0381622314453,
246.93072509765625,
246.829833984375,
246.73667907714844,
246.65829467773438,
246.5713653564453,
246.501708984375,
246.47189331054688,
246.4847869873047,
246.57534790039062,
246.80801391601562,
246.9920196533203
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 276.5974426269531,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 108.96868133544922,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 27.463459014892578,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 370.4356994628906,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 286.0875244140625,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 218.53330993652344,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 201.65966796875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.2847843170166,
83.8276596069336,
49.47677230834961,
27.48051643371582,
27.981765747070312,
11.359328269958496,
6.377662181854248,
4.2806220054626465,
17.192453384399414,
6.970494270324707,
13.672820091247559,
3.4667775630950928,
0.5503141283988953,
0.501715898513794,
0.12153881043195724,
0.05235361307859421
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.44193458557129,
85.30354309082031,
53.5690803527832,
28.013057708740234,
42.59619140625,
44.65180969238281,
21.72590446472168,
17.25074577331543,
25.47068214416504,
7.2600531578063965,
14.229283332824707,
4.4719672203063965,
1.1602792739868164,
0.5278255343437195,
0.44349828362464905,
0.31991109251976013
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
14.134185791015625,
54.77492904663086,
32.558143615722656,
5.742288112640381,
24.197708129882812,
31.93033790588379,
9.662396430969238,
11.181095123291016,
11.564655303955078,
1.707673192024231,
1.9522452354431152,
1.4784177541732788,
0.4078419804573059,
0.0048041511327028275,
0.19683463871479034,
0.16609859466552734
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306326389312744,
1.1571439504623413,
0.9749612212181091,
4.610339164733887,
0.7237593531608582,
0.00024454406229779124,
0.5752879977226257,
0.03678514063358307,
0.08743160963058472,
0.010651219636201859,
0.027840467169880867,
0.0006077652797102928,
0.0005835394840687513,
0.0015782826812937856,
7.129330333555117e-05,
3.444329649937572e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.000746615172829479,
0.002719380659982562,
0.0017164841992780566,
0.0008931566262617707,
0.0013963289093226194,
0.0015134613495320082,
0.0007340385927818716,
0.0005850077141076326,
0.0008336693281307817,
0.0002318960177944973,
0.00045447179581969976,
0.0001451290590921417,
3.8621095882263035e-05,
1.6873424101504497e-05,
1.5008108675829135e-05,
1.0923637091764249e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007413193234242499,
0.0026906761340796947,
0.0016924637602642179,
0.0008788189734332263,
0.001371113583445549,
0.0014815814793109894,
0.0007164247799664736,
0.0005696606822311878,
0.0008090345654636621,
0.0002242175251012668,
0.0004375769349280745,
0.0001387414667988196,
3.6715635360451415e-05,
1.598331073182635e-05,
1.4161612853058614e-05,
1.0218304851150606e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559692080132663,
0.0012617931934073567,
0.0006020317086949944,
0.0002653832780197263,
0.00035415979800745845,
0.0003028260252904147,
0.00011626270861597732,
7.765235932311043e-05,
8.555177191738039e-05,
1.787547444109805e-05,
2.5683279091026634e-05,
4.745901605929248e-06,
8.19238437088643e-07,
2.7158313287145575e-07,
1.8053935946227284e-07,
7.229707676970065e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007401293842121959,
0.0026842360384762287,
0.001687081647105515,
0.0008756095776334405,
0.0013654757058247924,
0.0014744610525667667,
0.0007124963449314237,
0.0005662411567755044,
0.0008035554201342165,
0.00022251243353821337,
0.0004338336002547294,
0.00013733108062297106,
3.629603816079907e-05,
1.5787622032803483e-05,
1.3975895853945985e-05,
1.0064247362606693e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.9143185019493103,
-0.8948853015899658,
-0.9145448803901672,
-0.8685178756713867,
-0.8011220693588257,
-0.7338364124298096,
-0.6613383889198303,
-0.5824951529502869,
-0.4903308153152466,
-0.37564024329185486,
-0.23414695262908936,
-0.02188893035054207,
0.36373171210289,
1.5047509670257568,
2.592374801635742,
-2.131589889526367,
-1.2010377645492554,
-0.8771195411682129,
-0.7534310221672058,
-0.7089767456054688,
-0.7286315560340881,
-0.7815495133399963,
-0.8550711870193481,
-0.9542991518974304,
-1.0988799333572388,
-1.2905339002609253,
-1.3342503309249878,
-1.381576657295227,
-1.4303003549575806,
-1.4969698190689087,
-1.5553919076919556,
-1.6328222751617432,
-1.723703145980835,
-1.8361884355545044,
-1.987117052078247,
-2.2229464054107666,
-2.2575697898864746,
-2.326382637023926,
-2.4010722637176514,
-2.1716842651367188,
-2.0805773735046387,
-2.039048910140991,
-2.0046513080596924,
-1.9999197721481323,
-1.9306702613830566,
-1.5780158042907715,
-0.8179194927215576,
-0.516943633556366,
-0.3344776928424835,
-0.16515658795833588,
1.0259233713150024,
-0.565402090549469,
-2.1212494373321533,
-2.0564815998077393,
-1.5073447227478027,
-1.0860928297042847,
-0.607397735118866,
-0.20512260496616364,
0.17086170613765717,
0.24350492656230927,
0.17300310730934143,
0.12992937862873077,
0.0978977382183075,
0.07787393033504486,
0.09268253296613693,
0.07417178153991699,
0.05971729755401611,
0.04188258945941925,
0.030840523540973663,
0.022051939740777016,
0.0340275913476944,
0.027202757075428963,
0.023886919021606445,
0.02504585310816765,
0.04793480038642883,
0.0630975216627121,
0.030132286250591278,
-0.0036055725067853928,
-0.013875016011297703,
-0.024659540504217148,
0.05591856688261032,
0.011718111112713814,
0.02398349717259407,
-0.01751278154551983,
-0.06898877024650574,
-0.07410739362239838,
-0.12526145577430725,
-0.16160692274570465,
-0.19788798689842224,
-0.25486892461776733,
-0.3045099377632141,
-0.35972025990486145,
-0.41975948214530945,
-0.4746478796005249,
-0.5287958383560181,
-0.5903803110122681,
-0.6387014389038086,
-0.712519109249115,
-0.833209216594696,
-1.0243688821792603,
-1.3291363716125488,
-1.8773443698883057,
-2.4585022926330566
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.7642746567726135,
-1.0388946533203125,
-1.0587847232818604,
-1.0129841566085815,
-0.9473908543586731,
-0.8816200494766235,
-0.8117861151695251,
-0.7363654971122742,
-0.6469407081604004,
-0.535447895526886,
-0.397792786359787,
-0.18864455819129944,
0.1943865716457367,
1.336153507232666,
2.446321964263916,
-2.178027868270874,
-1.2572606801986694,
-0.9498713612556458,
-0.8408624529838562,
-0.811007559299469,
-0.8505592346191406,
-0.9255977869033813,
-1.023883581161499,
-1.152440071105957,
-1.3347373008728027,
-1.5723421573638916,
-1.6336231231689453,
-1.6999897956848145,
-1.7688860893249512,
-1.8605377674102783,
-1.9416865110397339,
-2.0482633113861084,
-2.17191743850708,
-2.321744680404663,
-2.5173864364624023,
-2.8019516468048096,
-2.8763506412506104,
-2.978576898574829,
-3.0743610858917236,
-2.8883044719696045,
-2.8347136974334717,
-2.8356783390045166,
-2.8333730697631836,
-2.856271505355835,
-2.766176223754883,
-2.2582011222839355,
-1.2197015285491943,
-0.8899137377738953,
-0.7416701912879944,
-0.6665039658546448,
-1.240218162536621,
-1.8762849569320679,
-1.7846802473068237,
-1.6294611692428589,
-1.3764846324920654,
-0.9990773797035217,
-0.5463224053382874,
-0.11000919342041016,
0.2649165987968445,
0.32450154423713684,
0.25226131081581116,
0.2061614990234375,
0.1712968945503235,
0.15062923729419708,
0.17619016766548157,
0.156005397439003,
0.13952279090881348,
0.11901608854532242,
0.10597807914018631,
0.09693195670843124,
0.1151207834482193,
0.105945885181427,
0.09873474389314651,
0.09757580608129501,
0.12471418082714081,
0.1453174501657486,
0.1097768098115921,
0.07246556878089905,
0.06480372697114944,
0.06123035028576851,
0.13408222794532776,
0.08714540302753448,
0.11289948970079422,
0.0673147514462471,
0.008917354047298431,
0.01731962524354458,
-0.0390174463391304,
-0.07484782487154007,
-0.1093583032488823,
-0.16856051981449127,
-0.2176220566034317,
-0.2718666195869446,
-0.3358011543750763,
-0.39217039942741394,
-0.4493444859981537,
-0.5174962282180786,
-0.5549362301826477,
-0.6313292980194092,
-0.7600353956222534,
-0.9500684142112732,
-1.2709321975708008,
-1.8444757461547852,
-2.4465041160583496
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 276.5974426269531,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 207.43858337402344,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 201.65966796875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 51
},
"expected": 1.0259233713150024,
"tolerance": {
"rel": 0.0002
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 52
},
"expected": -0.565402090549469,
"tolerance": {
"rel": 0.0002
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 55
},
"expected": -1.5073447227478027,
"tolerance": {
"rel": 0.0002
}
}
]
},
{
"id": "scm_call648_fractional_overlap",
"description": "Reference: WRF 4.8 em_scm_xy single-column run (GNU real32 build, dt = 60 s, 59 layers, mp=6 ra_lw=1 ra_sw=1 sf_sfclay=1 sf_surface=1 bl_pbl=1, radt = 30 min) dumped by the instrumented fork ctessum-claude/WRF, commit 592f693 (v4.8.0-5-g592f6931); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump scm_cloud_648.json, written by the same em_scm_xy run re-executed for 8 h with the cloudy calls added to ESM_DUMP_CALLS; the re-run reproduces the archived call 120 dump bit-for-bit, so it is the same trajectory). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: MULTI-LAYER OVERLAP. Call 648, 01:00 UTC (18:34 LST), thin residual cirrus: three adjacent fractional layers (53: CLDFRAC = 0.0698, TAUCLOUD = 0.00983; 54: 0.0194, 0.00160; 55: 0.0387, 0.00152) sandwiched between overcast layers (52: TAUCLOUD = 0.0237; 56: 0.00138; 57: 0.000387; 59: 6.5e-8), plus a layer with condensate but CLDFRAC = 0 (51, TAUCLOUD = 0.00314, which RTRN treats as clear because ICLDLYR = 0 when CLDFRAC = 0). The sweep therefore passes through clear, fractional and overcast layers in both directions and accumulates the clear-sky radiance from the first cloudy layer downward (ICLDDN, note N31). tbound = 281.17 K, glw = 262.7 W/m^2 against a clear-sky 261.4 W/m^2, olr (model top) = 242.4 W/m^2, TOA upward flux 235.5 W/m^2, HTR - HTRC = 0.099 K/day at layer 51 and 0.015 K/day in the fractional layer 53. Tolerances: measured against the real32 dump the component's flux columns agree to Linf 1.0e-4 (F_dn), 1.6e-4 (F_up), 8.9e-5 (F_dn_clr) and 1.9e-4 W/m^2 (F_up_clr) on fluxes up to 347 W/m^2 (4e-7 relative at the spot levels), the band fluxes to 1.5e-5 W/m^2, the Planck integrals to 1.1e-10, and HTR/HTRC to 2.8e-4 / 2.7e-4 K/day. As at call 240 the spot-checked heating rates are of order 1.3-1.8 K/day, so the flux noise is 5.3e-5 relative at layer 51 and the HTR spot tolerance is rel 2e-4. Everything else is the standard RTRN contract, 4-10x above the measured floors: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day.",
"parameter_overrides": {
"tbound": 281.1648254394531
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_scm_call648_fractional_overlap_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
262.68768310546875,
261.7593994140625,
260.3409729003906,
258.51568603515625,
256.4757995605469,
254.32431030273438,
252.11904907226562,
249.88096618652344,
247.62411499023438,
245.35780334472656,
243.10997009277344,
240.91925048828125,
238.8663330078125,
237.1367645263672,
236.4470672607422,
239.61770629882812,
240.04188537597656,
239.4208221435547,
238.54095458984375,
237.482666015625,
236.25717163085938,
234.83314514160156,
233.1837158203125,
231.2847900390625,
229.09109497070312,
226.52687072753906,
223.5403594970703,
220.33587646484375,
216.91262817382812,
213.2508544921875,
209.3054962158203,
205.09962463378906,
200.56651306152344,
195.66921997070312,
190.3541717529297,
184.512451171875,
177.91812133789062,
170.72569274902344,
162.99830627441406,
154.584228515625,
145.93043518066406,
136.93356323242188,
127.71710968017578,
118.44307708740234,
109.11112976074219,
100.04778289794922,
91.7024154663086,
86.2200927734375,
81.34864044189453,
76.31784057617188,
70.60887908935547,
62.58618927001953,
49.8953742980957,
41.36151123046875,
33.57252502441406,
26.617151260375977,
20.618755340576172,
16.209430694580078,
13.251144409179688,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
347.0325927734375,
349.92364501953125,
350.6648254394531,
350.6752624511719,
350.2071838378906,
349.4284973144531,
348.4396057128906,
347.2958679199219,
346.0287780761719,
344.6607666015625,
343.2024230957031,
341.6693115234375,
340.0821838378906,
338.48895263671875,
337.1910400390625,
338.11639404296875,
340.4257507324219,
341.1368408203125,
341.3268737792969,
341.2569580078125,
341.0186767578125,
340.6549987792969,
340.18402099609375,
339.6129455566406,
338.9423828125,
338.1649169921875,
337.2985534667969,
336.35943603515625,
335.33770751953125,
334.22528076171875,
333.0228576660156,
331.7357177734375,
330.3478698730469,
328.8565368652344,
327.2549133300781,
325.5290832519531,
323.59344482421875,
321.30670166015625,
318.7694396972656,
315.8301696777344,
312.2923583984375,
308.48468017578125,
304.59686279296875,
300.74786376953125,
296.9523010253906,
293.3098449707031,
289.9363098144531,
287.19329833984375,
284.2808532714844,
280.9301452636719,
276.99468994140625,
272.16705322265625,
263.90240478515625,
260.03863525390625,
256.6542663574219,
253.4994354248047,
250.25332641601562,
247.43101501464844,
244.8629608154297,
242.40232849121094,
242.0501251220703,
241.73963928222656,
241.4509735107422,
241.177978515625,
240.91526794433594,
240.64346313476562,
240.38021850585938,
240.12530517578125,
239.87879943847656,
239.6404571533203,
239.40599060058594,
239.1634521484375,
238.9243927001953,
238.69244384765625,
238.46566772460938,
238.2340087890625,
238.00657653808594,
237.79562377929688,
237.59844970703125,
237.404541015625,
237.1985321044922,
236.99566650390625,
236.81398010253906,
236.62158203125,
236.45025634765625,
236.301513671875,
236.1421661376953,
236.00021362304688,
235.86595153808594,
235.7379913330078,
235.6218719482422,
235.51185607910156,
235.4063262939453,
235.31051635742188,
235.2210693359375,
235.13890075683594,
235.07041931152344,
234.9951171875,
234.9364776611328,
234.91664123535156,
234.93946838378906,
235.037841796875,
235.2747344970703,
235.46080017089844
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
261.36004638671875,
260.4184875488281,
258.9876403808594,
257.1507568359375,
255.0992431640625,
252.93600463867188,
250.71871948242188,
248.46807861328125,
246.19821166992188,
243.91796875,
241.65567016601562,
239.4496612548828,
237.38067626953125,
235.63430786132812,
234.9272918701172,
238.08241271972656,
238.50181579589844,
237.8750457763672,
236.9876708984375,
235.920166015625,
234.68357849121094,
233.2460174560547,
231.57998657226562,
229.6612091064453,
227.44358825683594,
224.84994506835938,
221.8275604248047,
218.58377075195312,
215.11769104003906,
211.40904235839844,
207.41189575195312,
203.14968872070312,
198.55441284179688,
193.5883026123047,
188.19677734375,
182.26925659179688,
175.57882690429688,
168.28102111816406,
160.44003295898438,
151.9053955078125,
143.12539672851562,
133.9891357421875,
124.62133026123047,
115.1862564086914,
105.6848373413086,
96.45244598388672,
87.9524917602539,
82.38072204589844,
77.42721557617188,
72.29991149902344,
66.45709991455078,
58.190120697021484,
49.54702377319336,
41.113075256347656,
33.3102912902832,
26.3470458984375,
20.5578670501709,
16.205949783325195,
13.248382568359375,
11.51368236541748,
11.310155868530273,
11.109383583068848,
10.908330917358398,
10.706802368164062,
10.505855560302734,
10.306465148925781,
10.106494903564453,
9.90735912322998,
9.707226753234863,
9.509469032287598,
9.311296463012695,
9.112719535827637,
8.913742065429688,
8.719035148620605,
8.529072761535645,
8.346583366394043,
8.177145957946777,
8.00777816772461,
7.834914207458496,
7.661409378051758,
7.4731011390686035,
7.323272705078125,
7.172754287719727,
7.021735668182373,
6.87062406539917,
6.715531349182129,
6.551817893981934,
6.379502773284912,
6.197819232940674,
6.005823135375977,
5.797826290130615,
5.572765827178955,
5.326219081878662,
5.059614181518555,
4.772843360900879,
4.466707229614258,
4.143032550811768,
3.793062448501587,
3.424164056777954,
3.0341038703918457,
2.596677541732788,
2.084841012954712,
1.4432438611984253,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
346.9264831542969,
349.8184509277344,
350.5603942871094,
350.5718688964844,
350.1044921875,
349.3262939453125,
348.3382263183594,
347.19512939453125,
345.92864990234375,
344.5612487792969,
343.1036682128906,
341.57110595703125,
339.9845886230469,
338.3919372558594,
337.0946960449219,
338.02044677734375,
340.32989501953125,
341.0411376953125,
341.2312316894531,
341.1615905761719,
340.9236755371094,
340.5602111816406,
340.08953857421875,
339.5189514160156,
338.8486633300781,
338.0718688964844,
337.20623779296875,
336.2674865722656,
335.2462158203125,
334.1344909667969,
332.9326171875,
331.6458740234375,
330.2584533691406,
328.76763916015625,
327.166259765625,
325.44085693359375,
323.5057067871094,
321.21929931640625,
318.6822509765625,
315.7431640625,
312.2056579589844,
308.39813232421875,
304.51055908203125,
300.66168212890625,
296.8663330078125,
293.22393798828125,
289.8504638671875,
287.1075134277344,
284.1951904296875,
280.8445129394531,
276.90924072265625,
272.08172607421875,
267.88037109375,
264.076904296875,
260.65130615234375,
257.474609375,
254.51217651367188,
251.76258850097656,
249.16860961914062,
246.6819305419922,
246.33078002929688,
246.0164337158203,
245.72340393066406,
245.4462127685547,
245.1794891357422,
244.90330505371094,
244.6359405517578,
244.3769989013672,
244.12669372558594,
243.88465881347656,
243.64666748046875,
243.40023803710938,
243.15744018554688,
242.92202758789062,
242.69187927246094,
242.45668029785156,
242.2254638671875,
242.010986328125,
241.8102569580078,
241.61294555664062,
241.40310668945312,
241.19680786132812,
241.01177978515625,
240.81541442871094,
240.64039611816406,
240.48822021484375,
240.3249053955078,
240.17916870117188,
240.04116821289062,
239.9093475341797,
239.78945922851562,
239.67572021484375,
239.56637573242188,
239.4669647216797,
239.3739013671875,
239.288330078125,
239.2166748046875,
239.13775634765625,
239.07571411132812,
239.0526580810547,
239.07237243652344,
239.16819763183594,
239.40365600585938,
239.5889129638672
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 262.68768310546875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 70.60887908935547,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 26.617151260375977,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 347.0325927734375,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 51
},
"expected": 276.99468994140625,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 56
},
"expected": 253.4994354248047,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 235.46080017089844,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
23.058643341064453,
83.04934692382812,
49.13800048828125,
27.004653930664062,
25.645788192749023,
6.392815113067627,
4.695122718811035,
2.8759653568267822,
16.498491287231445,
6.72678279876709,
13.046442031860352,
3.3914923667907715,
0.536275327205658,
0.46528536081314087,
0.11248963326215744,
0.05014431104063988
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
22.884138107299805,
82.3243179321289,
51.10924530029297,
26.526235580444336,
39.8678092956543,
41.052425384521484,
19.82842254638672,
15.606593132019043,
22.96670913696289,
6.480722427368164,
12.515978813171387,
3.842548370361328,
0.9744172096252441,
0.43899184465408325,
0.36144399642944336,
0.2527003884315491
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
14.184721946716309,
59.43164825439453,
37.89569854736328,
5.745079040527344,
29.204879760742188,
39.83818054199219,
11.991050720214844,
14.385098457336426,
15.23933219909668,
2.1062231063842773,
2.2846407890319824,
2.097161293029785,
0.5630329251289368,
0.004804250318557024,
0.26838046312332153,
0.22083036601543427
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
3.306334972381592,
1.1571487188339233,
0.9749671816825867,
4.610371112823486,
0.7237650752067566,
0.00024454641970805824,
0.5752942562103271,
0.03678557276725769,
0.08743277192115784,
0.010651379823684692,
0.027840938419103622,
0.0006077774451114237,
0.0005835527554154396,
0.0015783201670274138,
7.129515870474279e-05,
3.4444299217284424e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007279418641701341,
0.002618456492200494,
0.001632314408197999,
0.0008430313318967819,
0.0013083959929645061,
0.0014026735443621874,
0.0006730451132170856,
0.0005320098716765642,
0.0007489555282518268,
0.00020560661505442113,
0.00039692717837169766,
0.00012356028310023248,
3.222936356905848e-05,
1.3900721569370944e-05,
1.2194173905299976e-05,
8.604341019236017e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007339440635405481,
0.002650800859555602,
0.001659206347540021,
0.0008590201032347977,
0.0013363722246140242,
0.0014377962797880173,
0.0006923146429471672,
0.0005487073212862015,
0.0007755353581160307,
0.00021381917758844793,
0.00041480991058051586,
0.0001302052551181987,
3.4185100957984105e-05,
1.4806271792622283e-05,
1.304726811213186e-05,
9.29955149331363e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.00045559791033156216,
0.0012617975007742643,
0.0006020346190780401,
0.00026538476231507957,
0.0003541620681062341,
0.0003028282953891903,
0.00011626370542217046,
7.765308691887185e-05,
8.555267413612455e-05,
1.787568544386886e-05,
2.5683619242045097e-05,
4.745976184494793e-06,
8.192528753170336e-07,
2.715882487791532e-07,
1.8054299744107993e-07,
7.229870391256554e-08
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0007343448232859373,
0.002652960829436779,
0.0016610042657703161,
0.0008600896690040827,
0.0013382455799728632,
0.0014401513617485762,
0.0006936081917956471,
0.0005498293903656304,
0.0007773238467052579,
0.000214372732443735,
0.00041601728298701346,
0.0001306552585447207,
3.431784352869727e-05,
1.4867821846564766e-05,
1.31053593577235e-05,
9.347071681986563e-06
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-5.389998912811279,
-2.973755121231079,
-2.466125726699829,
-2.059823989868164,
-1.7548397779464722,
-1.516622543334961,
-1.3308496475219727,
-1.174007773399353,
-1.0392557382583618,
-0.8908383250236511,
-0.7237405776977539,
-0.5000038146972656,
-0.14274992048740387,
0.6211729049682617,
2.2373757362365723,
-1.8358150720596313,
-1.265070915222168,
-0.9907050728797913,
-0.8924174308776855,
-0.8691498041152954,
-0.9102785587310791,
-0.9864332675933838,
-1.0837618112564087,
-1.212136149406433,
-1.3864554166793823,
-1.6041018962860107,
-1.6717737913131714,
-1.7286568880081177,
-1.7899271249771118,
-1.8784592151641846,
-1.9496879577636719,
-2.049346923828125,
-2.1646344661712646,
-2.3020036220550537,
-2.4887657165527344,
-2.7477195262908936,
-2.8224472999572754,
-2.9129345417022705,
-2.997493267059326,
-2.732414722442627,
-2.703378677368164,
-2.7079219818115234,
-2.689232110977173,
-2.6771631240844727,
-2.5570671558380127,
-2.287691593170166,
-1.2295491695404053,
-0.8576160669326782,
-0.7173460721969604,
-0.7385124564170837,
-1.2975014448165894,
-1.7531527280807495,
-1.8041939735412598,
-1.659703016281128,
-1.39676833152771,
-0.9865678548812866,
-0.5548313856124878,
-0.1330578476190567,
0.2404983639717102,
0.3136526346206665,
0.23149707913398743,
0.18481779098510742,
0.15079019963741302,
0.13031569123268127,
0.15275394916534424,
0.1335027664899826,
0.11769618839025497,
0.09783335030078888,
0.08563234657049179,
0.07655403017997742,
0.09274692088365555,
0.08456999063491821,
0.07858216762542725,
0.0776485800743103,
0.10375679284334183,
0.12233192473649979,
0.08775706589221954,
0.05128283053636551,
0.043041523545980453,
0.037343431264162064,
0.11190152168273926,
0.0657695084810257,
0.08727417141199112,
0.04265521094202995,
-0.013392127119004726,
-0.009207087568938732,
-0.06406329572200775,
-0.10005463659763336,
-0.13508020341396332,
-0.1938639134168625,
-0.24270009994506836,
-0.2975241243839264,
-0.3603319227695465,
-0.41631487011909485,
-0.47252318263053894,
-0.538389265537262,
-0.5794992446899414,
-0.6545723676681519,
-0.7810893654823303,
-0.9710257649421692,
-1.287414789199829,
-1.8534252643585205,
-2.449601173400879
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-5.410025596618652,
-2.991908550262451,
-2.4830987453460693,
-2.0759811401367188,
-1.7704828977584839,
-1.5326420068740845,
-1.3469009399414062,
-1.190170407295227,
-1.0560790300369263,
-0.9080215096473694,
-0.7411720156669617,
-0.5179067254066467,
-0.16094712913036346,
0.6027995944023132,
2.2215168476104736,
-1.840555191040039,
-1.2706352472305298,
-0.9977132678031921,
-0.9009870290756226,
-0.8792386651039124,
-0.922080934047699,
-1.0005851984024048,
-1.1003628969192505,
-1.2313952445983887,
-1.409804344177246,
-1.6317977905273438,
-1.701051115989685,
-1.7598172426223755,
-1.8233314752578735,
-1.914301872253418,
-1.9875844717025757,
-2.0901293754577637,
-2.20870041847229,
-2.3495640754699707,
-2.540904998779297,
-2.8046875,
-2.8832685947418213,
-2.9768128395080566,
-3.063600778579712,
-2.799983024597168,
-2.7760746479034424,
-2.7849526405334473,
-2.769137382507324,
-2.759204864501953,
-2.6368391513824463,
-2.358856678009033,
-1.2697182893753052,
-0.8935877084732056,
-0.7585667967796326,
-0.7943323254585266,
-1.3967448472976685,
-1.7593234777450562,
-1.7888966798782349,
-1.6493650674819946,
-1.3916258811950684,
-1.0132594108581543,
-0.5601819753646851,
-0.12397365272045135,
0.2500789165496826,
0.311431348323822,
0.23964181542396545,
0.19402487576007843,
0.15964317321777344,
0.1387823522090912,
0.16202542185783386,
0.14216257631778717,
0.1261950433254242,
0.10584931075572968,
0.09342296421527863,
0.08399052917957306,
0.100956030189991,
0.09245718270540237,
0.08588989078998566,
0.08476314693689346,
0.11122547835111618,
0.13031569123268127,
0.09519355744123459,
0.05878371000289917,
0.05022047460079193,
0.04542377591133118,
0.11914485692977905,
0.07281968742609024,
0.09564425051212311,
0.05044582486152649,
-0.006148789077997208,
-0.0008370079449377954,
-0.05607953295111656,
-0.0921674519777298,
-0.1269354671239853,
-0.1859123408794403,
-0.2348451167345047,
-0.2894759774208069,
-0.35273444652557373,
-0.40868520736694336,
-0.46534422039985657,
-0.5316932201385498,
-0.5718695521354675,
-0.6473934650421143,
-0.7742967009544373,
-0.9644584655761719,
-1.2820385694503784,
-1.850399136543274,
-2.448385238647461
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 262.68768310546875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 242.40232849121094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 235.46080017089844,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 51
},
"expected": -1.2975014448165894,
"tolerance": {
"rel": 0.0002
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 53
},
"expected": -1.8041939735412598,
"tolerance": {
"rel": 0.0002
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 55
},
"expected": -1.39676833152771,
"tolerance": {
"rel": 0.0002
}
}
]
},
{
"id": "qss_call268_mixed_phase_storm",
"description": "Reference: WRF 4.8 idealized supercell (em_quarter_ss, Weisman-Klemp sounding, 41 x 41 x 59 mass points, dx = 2 km, dt = 6 s, ztop = 12800 m so p_top = 177.07 hPa and NBUF = 44, i.e. the same 59 + 44 = 103-layer RRTM column as the em_scm_xy regimes) with mp=6 (WSM6), ra_lw=1, ra_sw=1, radt = 5 min, GNU real32 build, dumped by the instrumented fork ctessum-claude/WRF, commit 5cb62da (v4.8.0-6-g5cb62da7); module_esm_dump hooks inside SUBROUTINE RRTM after GASABS and inside RTRN of phys/module_ra_rrtm.F; dump qss_i20_268.json, call 268 = j-row 22 of radiation call 7, column i = 20 selected with the new ESM_DUMP_I). RRTM has no standalone real64 driver, so every expected value is the real32 in-model value and the tolerance contract is rel 1e-5. Inputs are the dumped extended-column state (TAVEL, TZ, PZ, CLDFRAC, TAUCLOUD, SEMISS, TBOUND) and the GASABS outputs PFRAC and ITR (140 g-points x 103 layers, injected as flattened columns); the gas optics themselves are not transcribed. Expected values: the RTRN fluxes TOTUFLUX/TOTDFLUX and clear-sky TOTUCLFL/TOTDCLFL at every RRTM level, the per-band fluxes at the surface, model top and top of the column, the Planck integrals PLANKBND/PLVL/PLAY, and the heating rates HTR/HTRC (K/day). The scheme is diagnostic (no time step). Regime: OPAQUE MIXED-PHASE STORM COLUMN -- the saturated limit of the cloudy branch, which the em_scm_xy regimes never reach. Model time 00:30:00 in a mature supercell: 46 of the 59 model layers are overcast (CLDFRAC = 1) and TAUCLOUD runs to 18.74, so ABSCLD = 1 - exp(-1.66 TAUCLOUD) is 1 to within 3e-14 in 25 of them, against a maximum of 0.72 anywhere in the SCM run; exactly one layer (RRTM layer 56, TAUCLOUD = 4.81e-3, below MM5ATM's 0.01 override threshold, N58) keeps a fractional CLDFRAC = 0.010691. tbound = 300.02 K. glw = 451.10 W/m^2 against a clear-sky 405.73 (a 45.4 W/m^2 surface cloud forcing), olr (model top) = 160.52 W/m^2 against a clear-sky 259.46 (the opaque cloud removes 98.9 W/m^2 of outgoing longwave), TOA upward flux 159.30 W/m^2, and HTR - HTRC reaches 41.0 K/day at layer 40, at the ice/liquid cloud top -- 1.6x the largest cloud-radiative heating anywhere in the SCM regimes. Tolerances: measured against the real32 dump the component's flux columns agree to Linf 1.8e-4 (F_dn), 1.5e-4 (F_up), 2.2e-4 (F_dn_clr) and 2.0e-4 W/m^2 (F_up_clr) on fluxes up to 458 W/m^2 (<= 4.0e-7 relative at the spot levels), the band fluxes to 1.2e-5 W/m^2, the Planck integrals to 2.0e-10, and HTR/HTRC to 2.0e-4 / 2.6e-4 K/day on a column maximum of 43.5 K/day (<= 2.1e-6 relative at the three cloud-top layers spot-checked). Tolerances are set 5-50x above those floors and are the same contract as the other RTRN regimes: fluxes rel 1e-5 spot / Linf abs 1e-3 W/m^2, band fluxes Linf abs 1e-4, Planck Linf abs 1e-9, HTR/HTRC Linf abs 2e-3 K/day and spot checks rel 1e-4 at layers 39, 40 and 41, the three largest |HTR| of the column.",
"parameter_overrides": {
"tbound": 300.0240478515625
},
"expression_template_imports": [
{
"ref": "./tests/rtrn_qss_call268_mixed_phase_storm_inputs.esm"
}
],
"time_span": {
"start": 0,
"end": 1
},
"tolerance": {
"rel": 1e-05
},
"assertions": [
{
"variable": "F_dn",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
451.1020812988281,
438.7317810058594,
427.3205871582031,
417.0210876464844,
406.4931335449219,
397.3553161621094,
389.3662109375,
382.09014892578125,
375.5185546875,
369.4921875,
363.9578857421875,
358.8951110839844,
353.9720458984375,
349.06695556640625,
344.23101806640625,
339.27496337890625,
334.0518493652344,
328.6300964355469,
322.9866943359375,
317.0305480957031,
310.7593078613281,
304.26153564453125,
297.6632080078125,
291.0287780761719,
284.2357177734375,
277.0783996582031,
269.54278564453125,
261.816162109375,
254.1793670654297,
246.7384033203125,
239.30328369140625,
231.84934997558594,
224.54344177246094,
217.50277709960938,
210.69981384277344,
203.91458129882812,
197.02903747558594,
189.93582153320312,
173.7034149169922,
145.65074157714844,
94.06707763671875,
79.94520568847656,
77.83184051513672,
75.44925689697266,
72.88056945800781,
70.33319091796875,
67.83781433105469,
65.4582748413086,
63.238616943359375,
61.153656005859375,
59.215518951416016,
52.091854095458984,
41.664363861083984,
35.21548843383789,
29.885705947875977,
26.595497131347656,
25.593303680419922,
24.461585998535156,
23.074317932128906,
21.328598022460938,
20.990650177001953,
20.659555435180664,
20.326656341552734,
19.996248245239258,
19.66387176513672,
19.327632904052734,
18.99074363708496,
18.657142639160156,
18.32473373413086,
17.9919490814209,
17.65515899658203,
17.312820434570312,
16.96954345703125,
16.63125228881836,
16.300806045532227,
15.979869842529297,
15.673426628112793,
15.3662748336792,
15.0513334274292,
14.704787254333496,
14.425320625305176,
14.14416217803955,
13.858597755432129,
13.569282531738281,
13.273588180541992,
12.966079711914062,
12.638023376464844,
12.296361923217773,
11.93270492553711,
11.543313026428223,
11.123775482177734,
10.674263000488281,
10.186602592468262,
9.662259101867676,
9.098729133605957,
8.497723579406738,
7.86720609664917,
7.1760711669921875,
6.451245307922363,
5.681639194488525,
4.8154449462890625,
3.7971713542938232,
2.54423189163208,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
458.1902770996094,
449.2149353027344,
436.9374694824219,
423.8332214355469,
411.1889953613281,
400.41064453125,
392.0720520019531,
384.5179443359375,
377.72607421875,
371.54443359375,
365.8332214355469,
360.4680480957031,
355.3011474609375,
350.2282409667969,
345.21478271484375,
340.1722106933594,
334.9040832519531,
329.4267272949219,
323.7503967285156,
317.765869140625,
311.4696044921875,
304.943603515625,
298.3123779296875,
291.6585388183594,
284.8811950683594,
277.77984619140625,
270.3131408691406,
262.6623229980469,
255.07296752929688,
247.69143676757812,
240.37423706054688,
233.0197296142578,
225.77098083496094,
218.76402282714844,
212.02029418945312,
205.35733032226562,
198.6823272705078,
192.19403076171875,
186.5701904296875,
183.32717895507812,
180.68699645996094,
179.92825317382812,
179.5533905029297,
178.95196533203125,
178.15713500976562,
177.29978942871094,
176.43368530273438,
175.5933837890625,
174.77642822265625,
173.9812469482422,
173.21804809570312,
170.54287719726562,
166.8692169189453,
164.685791015625,
162.8099365234375,
161.5399932861328,
161.1522216796875,
160.87741088867188,
160.6689910888672,
160.5190887451172,
160.43267822265625,
160.32566833496094,
160.20950317382812,
160.08901977539062,
159.9649658203125,
159.8335418701172,
159.70211791992188,
159.57070922851562,
159.4404754638672,
159.3107452392578,
159.17811584472656,
159.0392303466797,
158.89686584472656,
158.75234985351562,
158.60757446289062,
158.45782470703125,
158.32351684570312,
158.2078399658203,
158.10357666015625,
157.9882354736328,
157.85247802734375,
157.74752807617188,
157.65711975097656,
157.57618713378906,
157.51673889160156,
157.4745330810547,
157.4410400390625,
157.42494201660156,
157.41856384277344,
157.4252166748047,
157.4436492919922,
157.47328186035156,
157.51145935058594,
157.55555725097656,
157.60243225097656,
157.65380859375,
157.712890625,
157.7822723388672,
157.87527465820312,
158.01597595214844,
158.22747802734375,
158.5281219482422,
159.01242065429688,
159.30068969726562
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
405.7274475097656,
391.2638244628906,
377.3266906738281,
364.0372009277344,
350.8695983886719,
338.5311584472656,
327.3736267089844,
317.2132873535156,
307.8510437011719,
299.0271911621094,
290.5998840332031,
282.5123291015625,
274.6503601074219,
266.90557861328125,
259.26129150390625,
251.56126403808594,
243.74562072753906,
235.81910705566406,
227.75523376464844,
219.4873809814453,
211.0496368408203,
202.51605224609375,
193.93946838378906,
185.3119659423828,
176.47140502929688,
167.45907592773438,
158.3999481201172,
149.60736083984375,
141.1707000732422,
133.07131958007812,
125.22642517089844,
117.66887664794922,
110.44263458251953,
103.53724670410156,
96.95714569091797,
90.5894775390625,
84.39537811279297,
78.36189270019531,
72.44239807128906,
66.9505615234375,
62.82660675048828,
59.95216369628906,
57.52018356323242,
54.77153396606445,
51.779659271240234,
48.785606384277344,
45.824954986572266,
42.98025894165039,
40.306640625,
37.77106475830078,
35.38547134399414,
33.14380645751953,
31.07526969909668,
29.243961334228516,
27.733217239379883,
26.587055206298828,
25.593303680419922,
24.461585998535156,
23.074317932128906,
21.328598022460938,
20.990650177001953,
20.659555435180664,
20.326656341552734,
19.996248245239258,
19.66387176513672,
19.327632904052734,
18.99074363708496,
18.657142639160156,
18.32473373413086,
17.9919490814209,
17.65515899658203,
17.312820434570312,
16.96954345703125,
16.63125228881836,
16.300806045532227,
15.979869842529297,
15.673426628112793,
15.3662748336792,
15.0513334274292,
14.704787254333496,
14.425320625305176,
14.14416217803955,
13.858597755432129,
13.569282531738281,
13.273588180541992,
12.966079711914062,
12.638023376464844,
12.296361923217773,
11.93270492553711,
11.543313026428223,
11.123775482177734,
10.674263000488281,
10.186602592468262,
9.662259101867676,
9.098729133605957,
8.497723579406738,
7.86720609664917,
7.1760711669921875,
6.451245307922363,
5.681639194488525,
4.8154449462890625,
3.7971713542938232,
2.54423189163208,
0.0
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_up_clr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlev"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
451.38397216796875,
444.6969299316406,
436.8058166503906,
428.8614196777344,
421.0029296875,
413.4210205078125,
406.9761657714844,
401.0824890136719,
395.700439453125,
390.7310485839844,
386.0953063964844,
381.7706298828125,
377.70306396484375,
373.7728271484375,
369.9531555175781,
366.2104797363281,
362.4372863769531,
358.6200866699219,
354.7879333496094,
350.8952331542969,
346.94549560546875,
342.9659729003906,
339.0050048828125,
335.1076965332031,
331.2249755859375,
327.32232666015625,
323.3773498535156,
319.4679260253906,
315.6535949707031,
312.0036926269531,
308.4920654296875,
305.078369140625,
301.797607421875,
298.69268798828125,
295.7694091796875,
292.9803161621094,
290.3018798828125,
287.774658203125,
285.45050048828125,
283.5600891113281,
282.28009033203125,
281.35882568359375,
280.5379638671875,
279.53314208984375,
278.3434753417969,
277.1387023925781,
275.9656066894531,
274.8511962890625,
273.7874450683594,
272.7418518066406,
271.7497863769531,
270.81597900390625,
269.9432373046875,
269.1062927246094,
268.296142578125,
267.5582580566406,
266.9645690917969,
266.4961853027344,
266.08599853515625,
265.7265930175781,
265.5168151855469,
265.28985595703125,
265.0576477050781,
264.8247985839844,
264.5908203125,
264.33233642578125,
264.0782470703125,
263.82769775390625,
263.585693359375,
263.3480224609375,
263.1009521484375,
262.8372802734375,
262.5757751464844,
262.315185546875,
262.0588073730469,
261.7849426269531,
261.5243225097656,
261.2870178222656,
261.0657043457031,
260.8233947753906,
260.5628356933594,
260.3392333984375,
260.1335754394531,
259.9228820800781,
259.7396240234375,
259.57757568359375,
259.4080505371094,
259.2682189941406,
259.130126953125,
259.007568359375,
258.895751953125,
258.7992858886719,
258.7113342285156,
258.6354675292969,
258.56524658203125,
258.5037536621094,
258.4598388671875,
258.4040222167969,
258.3853759765625,
258.4227600097656,
258.53375244140625,
258.753662109375,
259.1931457519531,
259.4624328613281
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.001
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 451.1020812988281,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 40
},
"expected": 145.65074157714844,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 41
},
"expected": 94.06707763671875,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 0.0,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 1
},
"expected": 458.1902770996094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 40
},
"expected": 183.32717895507812,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 41
},
"expected": 180.68699645996094,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_up",
"time": 0.0,
"coords": {
"rlev": 104
},
"expected": 159.30068969726562,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "F_dn_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
25.21148681640625,
94.95567321777344,
61.73275375366211,
32.900394439697266,
51.62710189819336,
56.89725112915039,
28.238121032714844,
22.98019027709961,
34.422706604003906,
10.172675132751465,
20.822954177856445,
6.986172676086426,
1.8757988214492798,
0.9104730486869812,
0.7672827243804932,
0.6008840203285217
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
25.23381805419922,
95.17448425292969,
62.16058349609375,
33.04542922973633,
52.60197448730469,
58.684356689453125,
29.305356979370117,
23.895803451538086,
35.32957077026367,
10.234626770019531,
20.938936233520508,
7.162961959838867,
2.0034220218658447,
0.9168550968170166,
0.8369268178939819,
0.6650295257568359
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_up_band_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
15.454758644104004,
50.60385513305664,
26.71320915222168,
10.288825035095215,
17.408302307128906,
17.3900089263916,
6.439359664916992,
5.169262886047363,
5.999062538146973,
1.305152416229248,
1.8356090784072876,
0.5181991457939148,
0.09700842201709747,
0.033679183572530746,
0.028777506202459335,
0.015597998164594173
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "F_dn_band_mtop",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
4.06359338760376,
2.032174587249756,
2.1569736003875732,
8.887438774108887,
1.962701678276062,
0.0028518831823021173,
1.6156851053237915,
0.10797890275716782,
0.30611884593963623,
0.04573021084070206,
0.12399040907621384,
0.003987798001617193,
0.004736720584332943,
0.013760939240455627,
0.0008235716377384961,
4.841449117520824e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.0001
}
},
{
"variable": "plankbnd",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0008033430203795433,
0.0030307364650070667,
0.001981038134545088,
0.001052682287991047,
0.0016798446886241436,
0.0018780190730467439,
0.0009388126200065017,
0.0007657694513909519,
0.0011296680895611644,
0.0003261261445004493,
0.0006671574665233493,
0.0002289966942043975,
6.448775093303993e-05,
2.9220162105048075e-05,
2.7031350327888504e-05,
2.1528809156734496e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_sfc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0008025582646951079,
0.0030263825319707394,
0.0019772942177951336,
0.001050405902788043,
0.0016757654957473278,
0.0018727038986980915,
0.0009357869857922196,
0.0007630709442310035,
0.001125180278904736,
0.00032467421260662377,
0.0006638159975409508,
0.00022763689048588276,
6.405806925613433e-05,
2.901185507653281e-05,
2.6825027816812508e-05,
2.1339361410355195e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "plvl_toa",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.0005585657199844718,
0.0017454273765906692,
0.0009435921092517674,
0.00044767785584554076,
0.000640300044324249,
0.000607211550232023,
0.0002582954475656152,
0.00018632014689501375,
0.00022934304433874786,
5.432530815596692e-05,
8.906637958716601e-05,
2.0882647731923498e-05,
4.355850251158699e-06,
1.6283210015899385e-06,
1.2270361366972793e-06,
6.277022635003959e-07
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "play_bot",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "bands"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
0.000797941058408469,
0.0030007874593138695,
0.0019552954472601414,
0.0010370376985520124,
0.0016518172342330217,
0.0018415243830531836,
0.0009180530323646963,
0.0007472648285329342,
0.0010989174479618669,
0.00031618549837730825,
0.0006443035672418773,
0.00021971191745251417,
6.155761366244406e-05,
2.7800811949418858e-05,
2.5626852220739238e-05,
2.024202149186749e-05
]
},
"k"
]
}
},
"tolerance": {
"abs": 1e-09
}
},
{
"variable": "htr",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-1.0341639518737793,
0.27101802825927734,
0.9008008241653442,
0.6968073844909668,
0.5537106990814209,
0.12112397700548172,
0.0990363359451294,
0.08063261210918427,
0.05840636417269707,
0.06838299334049225,
0.12012872844934464,
0.09956089407205582,
0.07043471187353134,
0.07659245282411575,
0.038372837007045746,
0.020525675266981125,
0.026070278137922287,
0.015878183767199516,
0.014077377505600452,
0.012766935862600803,
0.014810833148658276,
0.01774877868592739,
0.010766533203423023,
-0.00896339863538742,
-0.032820530235767365,
-0.04155931994318962,
-0.04704075679183006,
-0.030300522223114967,
-0.039063502103090286,
-0.07971321791410446,
-0.06910201907157898,
-0.040842339396476746,
-0.0247602891176939,
-0.04472484067082405,
-0.09487682580947876,
-0.16790100932121277,
-0.49579086899757385,
-8.936203956604004,
-21.47955322265625,
-43.54969024658203,
-12.219832420349121,
-1.6335673332214355,
-1.7196286916732788,
-1.7596380710601807,
-1.7225834131240845,
-1.7063382863998413,
-1.6563708782196045,
-1.5509690046310425,
-1.4652705192565918,
-1.3714994192123413,
-5.335514068603516,
-8.323393821716309,
-5.401405334472656,
-4.4940185546875,
-2.7009429931640625,
-0.8440253138542175,
-1.2094931602478027,
-1.7095993757247925,
-2.377955675125122,
-0.5306951999664307,
-0.4727485179901123,
-0.45726385712623596,
-0.4429059624671936,
-0.4394935369491577,
-0.4321214258670807,
-0.43350571393966675,
-0.42658430337905884,
-0.4265199303627014,
-0.428419291973114,
-0.4307049512863159,
-0.42925629019737244,
-0.42388013005256653,
-0.4088139832019806,
-0.3917196989059448,
-0.36116892099380493,
-0.36316487193107605,
-0.40398508310317993,
-0.4444833993911743,
-0.48778247833251953,
-0.3031900227069855,
-0.3717602789402008,
-0.41174352169036865,
-0.43962231278419495,
-0.4984382092952728,
-0.559732973575592,
-0.6214461922645569,
-0.6868937611579895,
-0.7537578344345093,
-0.8355592489242554,
-0.9240245819091797,
-1.0108802318572998,
-1.1094218492507935,
-1.1992714405059814,
-1.287833333015442,
-1.376362919807434,
-1.4549129009246826,
-1.6045119762420654,
-1.725427508354187,
-1.9205468893051147,
-2.2736997604370117,
-2.782632827758789,
-3.6651611328125,
-4.7115254402160645
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "htrc",
"time": 0.0,
"reduce": "Linf_error",
"expected": 0.0,
"reference": {
"op": "aggregate",
"output_idx": [
"k"
],
"args": [],
"ranges": {
"k": {
"from": "rlay"
}
},
"expr": {
"op": "index",
"args": [
{
"op": "const",
"args": [],
"value": [
-2.3688831329345703,
-1.8915313482284546,
-1.7166829109191895,
-1.7480876445770264,
-1.6054179668426514,
-1.6333014965057373,
-1.5197311639785767,
-1.4569613933563232,
-1.4498622417449951,
-1.465592384338379,
-1.4948139190673828,
-1.5492994785308838,
-1.6010159254074097,
-1.6501545906066895,
-1.7551952600479126,
-1.843316912651062,
-1.926710844039917,
-2.0405454635620117,
-2.1701109409332275,
-2.2896876335144043,
-2.389387607574463,
-2.4901719093322754,
-2.6239025592803955,
-2.8275344371795654,
-2.9963321685791016,
-3.084380626678467,
-3.0302181243896484,
-2.952366590499878,
-2.9245071411132812,
-2.929264783859253,
-2.8800039291381836,
-2.8191897869110107,
-2.791748046875,
-2.761061906814575,
-2.7768728733062744,
-2.803647518157959,
-2.8737337589263916,
-3.0285582542419434,
-3.1180191040039062,
-2.530546188354492,
-1.7860652208328247,
-1.5138683319091797,
-1.6835949420928955,
-1.7877540588378906,
-1.8237379789352417,
-1.8721204996109009,
-1.8619568347930908,
-1.7800270318984985,
-1.6927223205566406,
-1.6266484260559082,
-1.5686488151550293,
-1.4736815690994263,
-1.259183406829834,
-0.9115656614303589,
-0.5458393096923828,
-0.5495481491088867,
-0.9362754821777344,
-1.4170095920562744,
-2.0657498836517334,
-0.2704179584980011,
-0.21968239545822144,
-0.21243904531002045,
-0.20583955943584442,
-0.20757797360420227,
-0.1640535593032837,
-0.17470930516719818,
-0.1752243936061859,
-0.19070903956890106,
-0.20068874955177307,
-0.1892925649881363,
-0.1659529209136963,
-0.1725202053785324,
-0.16392478346824646,
-0.15626294910907745,
-0.09931421279907227,
-0.09667441248893738,
-0.14737777411937714,
-0.19753387570381165,
-0.2199077308177948,
-0.03988664597272873,
-0.12143053859472275,
-0.16859270632266998,
-0.16588853299617767,
-0.23719516396522522,
-0.30689218640327454,
-0.33444905281066895,
-0.42584389448165894,
-0.475871205329895,
-0.5629522204399109,
-0.6492283940315247,
-0.7448726892471313,
-0.8432855010032654,
-0.9461730718612671,
-1.0407872200012207,
-1.138234257698059,
-1.2376128435134888,
-1.3403716087341309,
-1.4898741245269775,
-1.7025706768035889,
-2.0616471767425537,
-2.612301826477051,
-3.570643663406372,
-4.679925918579102
]
},
"k"
]
}
},
"tolerance": {
"abs": 0.002
}
},
{
"variable": "glw",
"time": 0.0,
"expected": 451.1020812988281,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr",
"time": 0.0,
"expected": 160.5190887451172,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "olr_toa",
"time": 0.0,
"expected": 159.30068969726562,
"tolerance": {
"rel": 1e-05
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 39
},
"expected": -21.47955322265625,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 40
},
"expected": -43.54969024658203,
"tolerance": {
"rel": 0.0001
}
},
{
"variable": "htr",
"time": 0.0,
"coords": {
"rlay": 41
},
"expected": -12.219832420349121,
"tolerance": {
"rel": 0.0001
}
}
]
}
]
}