2D plotfile diagnostic reference¶
ERF writes each 2D output level as a one-cell-thick horizontal slab. The two 2D streams are independent. Each stream has its own prefix, interval, period, built-in variable list, and sampled-level list.
Fixed diagnostics appear in canonical catalog order, not request order. Sampled-level fields follow the fixed diagnostics and appear in level-set, target-value, and field order. ERF warns and skips an unknown or configuration-ineligible fixed name.
Three contracts govern a fixed diagnostic:
Descriptor metadata defines its public name, canonical order, long name, exact unit string, category, and missing-value policy.
Selectability determines whether ERF accepts the name for the active configuration and creates an output component.
Runtime value determines what ERF writes at each cell and output time after the name has been selected.
A variable may appear in the catalog without being available in every
simulation. A metadata policy also does not guarantee a non-missing value at
every cell. Internal provider sentinels are translated at the public output
boundary. Categorical source code 0 means that no source was selected; it is
not the continuous -999 fill value.
For the numerical production of the unified 2-m fields, see Land-surface and 2-m diagnostics. For fields sampled on pressure, height, or model-index levels, see 2D sampled-level output.
Built-in diagnostic catalog¶
The marked table is the authoritative fixed catalog. The three contracts in the introduction apply to every row; the selection table below gives the configuration and runtime details that cannot be inferred from metadata alone.
Variable |
Category |
Units |
Metadata policy |
Description |
|---|---|---|---|---|
|
|
|
|
Surface elevation |
|
|
|
|
Land-sea mask |
|
|
|
|
Map factor at mass points |
|
|
|
|
Latitude at unstaggered mass points |
|
|
|
|
Longitude at unstaggered mass points |
|
|
|
|
Friction velocity from the surface layer |
|
|
|
|
Convective velocity scale from the surface layer |
|
|
|
|
Temperature scale from the surface layer |
|
|
|
|
Humidity scale from the surface layer |
|
|
|
|
Obukhov length from the surface layer |
|
|
|
|
Planetary boundary layer height from the active PBL diagnostic provider |
|
|
|
|
Surface temperature from the surface layer |
|
|
|
|
Surface humidity from the surface layer |
|
|
|
|
Roughness height from the surface layer |
|
|
|
|
Outgoing longwave radiation at the model top |
|
|
|
|
Surface sensible heat flux |
|
|
|
|
Surface moisture flux (legacy output name) |
|
|
|
|
Surface pressure |
|
|
|
|
Sea-level pressure from the NMC/NGM reduction with Shuell correction |
|
|
|
|
Accumulated surface precipitation, liquid-water equivalent |
|
|
|
|
Accumulated surface rain precipitation, liquid-water equivalent |
|
|
|
|
Accumulated surface snow precipitation, liquid-water equivalent |
|
|
|
|
Accumulated surface graupel precipitation, liquid-water equivalent |
|
|
|
|
Accumulated surface hail precipitation, liquid-water equivalent |
|
|
|
|
Accumulated frozen surface precipitation, liquid-water equivalent |
|
|
|
|
Column-integrated water vapor |
|
|
|
|
Column-integrated cloud liquid water |
|
|
|
|
Column-integrated cloud ice |
|
|
|
|
Column-integrated rain water |
|
|
|
|
Column-integrated snow |
|
|
|
|
Column-integrated graupel |
|
|
|
|
Surface diagnostic source code |
|
|
|
|
Surface sensible heat flux |
|
|
|
|
Surface latent heat flux |
|
|
|
|
Native SHOC friction velocity diagnostic |
|
|
|
|
Native SHOC Obukhov length diagnostic |
|
|
|
|
Native SHOC surface virtual potential temperature flux |
|
|
|
|
Noah-MP radiative surface temperature |
|
|
|
|
Surface bulk emissivity |
|
|
|
|
Direct visible surface albedo |
|
|
|
|
Direct near-infrared surface albedo |
|
|
|
|
Diffuse visible surface albedo |
|
|
|
|
Diffuse near-infrared surface albedo |
|
|
|
|
Cosine of the solar zenith angle supplied to Noah-MP |
|
|
|
|
Downwelling shortwave flux supplied to Noah-MP |
|
|
|
|
Direct visible downwelling shortwave flux |
|
|
|
|
Direct near-infrared downwelling shortwave flux |
|
|
|
|
Diffuse visible downwelling shortwave flux |
|
|
|
|
Diffuse near-infrared downwelling shortwave flux |
|
|
|
|
Downwelling longwave flux supplied to Noah-MP |
|
|
|
|
Ground or snow heat flux |
|
|
|
|
Total net longwave flux, positive toward the atmosphere |
|
|
|
|
Solar radiation absorbed by vegetation |
|
|
|
|
Solar radiation absorbed by the ground |
|
|
|
|
Broadband surface albedo |
|
|
|
|
Accumulated surface runoff |
|
|
|
|
Accumulated subsurface runoff |
|
|
|
|
Noah-MP 2-m temperature over the vegetated fraction |
|
|
|
|
Noah-MP 2-m temperature over the bare fraction |
|
|
|
|
Noah-MP 2-m water-vapor mixing ratio over the vegetated fraction |
|
|
|
|
Noah-MP 2-m water-vapor mixing ratio over the bare fraction |
|
|
|
|
Noah-MP vegetation fraction |
|
|
|
|
Physical air temperature 2 m above the local surface |
|
|
|
|
Water-vapor mixing ratio 2 m above the local surface per unit dry-air mass |
|
|
|
|
Source code for the unified near-surface diagnostic bundle |
Note
For the landmask variable, land is 1 and sea is 0. Buildings are
2 when using ImmersedForcing.
If a requested fixed diagnostic is not selectable for the active configuration, ERF warns and skips it. The descriptor table above records metadata; it does not define request acceptance or guarantee a non-missing runtime value.
Selection and runtime-value rules¶
The selection contract and the value written after selection are separate:
Name or family |
Selectable when |
Runtime value |
|---|---|---|
|
Selectable: fixed geometry or state writer path. |
Value: ERF writes the corresponding geometry or state value. |
|
Selectable: fixed request names. |
Value: ERF writes the coordinate data, or zero when the coordinate source is absent. |
|
Selectable: ERF accepts these fixed request names; the runtime SurfaceLayer source may still be absent. |
Value: SurfaceLayer scalar values; |
|
Selectable: fixed request name. |
Value: native SHOC PBL height when present, otherwise SurfaceLayer; |
|
Selectable: fixed request name. |
Value: radiation output; |
|
Selectable: fixed request names. |
Value: legacy conservative surface flux outputs. |
|
Selectable: fixed request name. |
Value: pressure computed from the lowest atmospheric state. |
|
Selectable: fixed request name in dry and moist configurations. |
Value: pressure reduced hydrostatically from the local terrain surface
to ERF’s physical |
|
Selectable: fixed request name. |
Value: categorical code |
|
Selectable: fixed request names. |
Value: the selected conservative sources converted to energy-flux units; |
|
Selectable: fixed request names. |
Value: native SHOC diagnostics; |
|
Selectable: the active moisture scheme has any rain, snow, or graupel mass component. |
Value: normalized liquid-water-equivalent accumulations; |
|
Selectable: the active moisture scheme has a rain mass component. |
Value: normalized rain accumulation, or the derived rain value when a runtime total source is used without a direct rain source. |
|
Selectable: the active moisture scheme has a snow mass component. |
Value: normalized snow accumulation. |
|
Selectable: the active moisture scheme has a graupel mass component. |
Value: normalized graupel accumulation. |
|
Selectable: not selectable for any current moisture scheme. The fixed descriptor reserves this public name for future support. |
Value: no component is currently written. If a future scheme makes the field selectable, the descriptor’s zero-fill policy applies when its runtime source is unavailable. |
|
Selectable: always. |
Value: column-integrated water vapor; zero when moisture is disabled. |
|
Selectable: the active moisture model exposes the corresponding conserved mass component. |
Value: the corresponding column water path. An unsupported species is skipped during request validation. |
Fixed land-surface provider names from |
Selectable: the active land-surface inventory contains the exact name. |
Value: finite provider values pass through when valid; absent, nonfinite, or sentinel values become |
|
Selectable: a Noah-MP or SurfaceLayer pathway exists. |
Value: a coherent native or MOST value, or |
|
Selectable: moisture is enabled and a Noah-MP or SurfaceLayer pathway exists. |
Value: a coherent native or MOST mixing ratio, or |
|
Selectable: a Noah-MP or SurfaceLayer pathway exists, including a dry source-only request. |
Value: categorical code |
NMC/NGM sea-level pressure¶
sea_level_pressure is an opt-in surface-state diagnostic useful for
comparing model pressure with meteorological sea-level-pressure analyses. It
is an adaptation of the NMC/NGM sea-level-pressure reduction with the Shuell
correction from NOAA-EMC UPP sorc/ncep_post.fd/NGMSLP.f at immutable commit
1ee7b175c340a566287a987870d925e4708fe19b.
ERF preserves the method and empirical correction but uses its native physical
constants, so bit-for-bit equality with UPP is not expected.
ERF stores water-vapor mixing ratio per unit dry-air mass, r_v. The
reduction uses specific humidity q_v:
The original UPP routine uses the rounded coefficient 0.608; ERF computes
the equivalent coefficient from its shared R_d and R_v constants. ERF
diagnoses p_m and T_m from the lowest cell-centered conserved state
using its existing EOS.
Let z_m be the lowest cell-center physical height and z_s the lower
terrain-interface height. With Gamma = 0.0065 K m^-1,
The ground pressure p_s is reconstructed because ERF does not store the
UPP ground-interface pressure in its cell-centered state. The uncorrected
sea-level extrapolation is T_{v,0}=T_{v,m}+Gamma z_m. For T_c=290.66 K,
the Shuell correction is
The final reduction uses
The output units are pascals. It is pressure reduced to ERF’s physical
z=0 datum and represents mean sea-level pressure only when that datum is
mean sea level. The diagnostic uses the lowest model level, assumes the fixed
lapse rate below it, applies no horizontal smoothing, does not calculate
1000-hPa height, is computed independently on each AMR level, and does not
alter model state. surf_pres remains a separate lowest-cell-center field.
erf.plot2d_vars_1 = surf_pres sea_level_pressure
Dynamic soil diagnostic families¶
Dynamic soil fields are not part of the fixed catalog. ERF exposes only names
reported by the active land-surface provider inventory, in that inventory’s
runtime order. <layer> is a one-based layer index.
Name family |
Meaning |
Units |
Metadata |
|---|---|---|---|
|
Volumetric total soil moisture |
|
Category |
|
Volumetric liquid soil water |
|
Category |
|
Soil temperature |
|
Category |
Surface flux diagnostics¶
The 2D flux diagnostics report the conservative lower-boundary surface flux
that ERF used. sens_flux and laten_flux are the legacy conservative
scalar outputs. sensible_heat_flux and latent_heat_flux convert the
same selected conservative sources to W m^-2 with Cp_d and L_v.
For non-SHOC configurations and native SHOC host-diffusion mode, these outputs
use the host vertical surface flux arrays. In native SHOC state_update mode,
SHOC consumes those surface fluxes before the host diffusion path clears the
overlapping arrays. In that mode, the 2D flux diagnostics use SHOC’s preserved
consumed-flux snapshots, component by component. If the corresponding host flux
field was unavailable before SHOC consumed it, ERF writes -999 rather than a
zero SHOC snapshot.
The sign convention follows ERF’s lower-boundary flux convention. No source-specific Noah-MP, MOST, or SHOC conversion is applied in the 2D diagnostic layer. Noah-MP LSM kinematic-to-conservative conversion happens upstream in SurfaceLayer. Native SHOC converts the conservative host fluxes to kinematic column inputs internally, then the diagnostic snapshot preserves the consumed flux in conservative ERF output units.
In native SHOC state_update mode, SHOC is the transport owner. The
surface_diagnostic_source field still describes the upstream surface-flux
source path used before SHOC consumes it.
Surface precipitation accumulations¶
ERF can write cumulative surface precipitation accumulations from the active
microphysics scheme in 2D plotfiles. These diagnostics report the liquid-water
equivalent mass that has reached the lower boundary since model start or the
most recent restart. Some schemes store explicit rain/snow/graupel species
accumulators, while others store a total accumulator plus frozen-species
subsets. ERF normalizes each available scheme-native source to kg/m^2
before deriving the public 2D fields. Request acceptance follows the active
rain, snow, and graupel mass components: total and frozen require any one of
those components; each species field requires its own component; hail is not
selectable for current schemes. Runtime mapping may still derive rain from a
total source without a direct rain source. The public fields use kg/m^2
because downstream land-surface forcing consumes precipitation as mass over
area, even though 1 kg/m^2 is numerically equal to 1 mm of liquid-water
equivalent.
Field |
Meaning |
Units |
|---|---|---|
|
Accumulated surface precipitation, liquid-water equivalent |
kg/m^2 |
|
Accumulated surface rain precipitation, liquid-water equivalent |
kg/m^2 |
|
Accumulated surface snow precipitation, liquid-water equivalent |
kg/m^2 |
|
Accumulated surface graupel precipitation, liquid-water equivalent |
kg/m^2 |
|
Accumulated surface hail precipitation, liquid-water equivalent |
kg/m^2 |
|
Accumulated frozen surface precipitation, liquid-water equivalent |
kg/m^2 |
precip_total_accum is the normalized native total when one exists, or the
sum of normalized rain and frozen accumulations otherwise.
precip_frozen_accum is the sum of normalized snow, graupel, and hail
accumulations. Species absent from the active runtime source contribute zero to
derived totals. precip_hail_accum is a fixed descriptor reserved for a
future scheme that exposes a distinct hail accumulator.
To diagnose the frozen fraction over a coupling interval, use accumulation differences rather than a ratio of cumulative values:
with
and
Column water-path diagnostics¶
ERF can write scheme-aware 2D water-path diagnostics for prognostic condensed
water species. These diagnostics integrate the conserved rho*q species
component over the model column. They are available only when the active
microphysics scheme exposes the corresponding conserved mass component.
For a condensed species \(q_x\), ERF writes
where \(W_x\) has units of \(\mathrm{kg\,m^{-2}}\).
The discrete diagnostic uses the same metric convention as integrated_qv:
for constant-\(\Delta z\) meshes, and
when ERF uses the column metric factor \(J\).
integrated_qc |
Cloud liquid water path |
kg/m^2 |
integrated_qi |
Cloud ice water path |
kg/m^2 |
integrated_qr |
Rain water path |
kg/m^2 |
integrated_qs |
Snow water path |
kg/m^2 |
integrated_qg |
Graupel water path |
kg/m^2 |
A name is selectable only if the active moisture model has that species as a conserved mass component. Unsupported species are skipped during request validation. Two-moment number concentrations are not water mass paths and are not included.
The metadata sidecar records these fields as ColumnIntegral diagnostics
with FillZeroWhenUnavailable missing-value policy. Water-path diagnostics
use the built-in metadata fields and add no water-path-specific metadata keys.
Surface diagnostic source codes¶
surface_diagnostic_source is a cell-centered categorical diagnostic. It
reports the source path used by the SurfaceLayer scalar diagnostic path. It
does not report fractional land-cover contributions. The same code table
defines near_surface_diagnostic_source; that field reports the request-
aware source selected for the unified 2-m output bundle.
If an input dataset contains fractional land information, this diagnostic still reports the categorical source used by ERF’s active SurfaceLayer scalar flux path.
The fields do not describe fractional cover or complete staggered stress-face
provenance. Consumers must compare the numeric code with this table rather than
infer provenance from landmask.
Value |
Token |
Meaning |
|---|---|---|
0 |
|
No source was selected. |
1 |
|
SurfaceLayer supplied the land value. |
2 |
|
The land-surface model supplied the land value. |
3 |
|
A land-surface path existed, but its required result was invalid or incomplete; SurfaceLayer supplied the value. |
4 |
|
SurfaceLayer supplied the value over water. |
5 |
|
The custom surface pathway supplied the SurfaceLayer state. |
6 |
|
The RICO pathway supplied the SurfaceLayer state. |
AMReX metadata and NetCDF differences¶
Native AMReX 2D plotfiles write a JSON metadata sidecar named
2DMetadata.json in the plotfile directory. The sidecar lists selected
outputs in component order. Fixed outputs use descriptor metadata. Sampled-
level outputs add source-field and vertical-coordinate metadata.
The metadata policy maps to JSON as follows:
AlwaysAvailablerecordsmissing_value: null.FillZeroWhenUnavailablerecordsmissing_value: 0.FillMinus999WhenUnavailablerecordsmissing_value: -999.
The sidecar uses the same 2D diagnostic catalog that defines the built-in plotfile variables. Sampled-level outputs carry their own metadata record. The sidecar does not record the runtime source chosen at each cell. Source choice is carried by categorical output fields. It does not change field values.
NetCDF 2D output uses the same variable names but does not write this JSON
sidecar or sampled-level metadata attributes. The sidecar format version is
2.
Example built-in metadata:
{
"format_version": 2,
"kind": "ERF 2D plotfile metadata",
"n_variables": 2,
"variables": [
{
"component_index": 0,
"name": "z_surf",
"long_name": "Surface elevation",
"units": "m",
"category": "Geometry",
"missing_policy": "AlwaysAvailable",
"missing_value": null
},
{
"component_index": 1,
"name": "latent_heat_flux",
"long_name": "Surface latent heat flux",
"units": "W m^-2",
"category": "SurfaceFlux",
"missing_policy": "FillMinus999WhenUnavailable",
"missing_value": -999
}
]
}
Sampled-level entries add source_field and vertical_coordinate records.
See AMReX metadata and NetCDF limitations for their exact form.