Derived Variables¶
ERF has the ability to create new temporary variables derived from the state variables.
Access to the derived variable is through one of two amrex:AmrLevel functions (which are inherited by ERF)
/**
* \brief Returns a MultiFab containing the derived data for this level.
* The user is responsible for deleting this pointer when done
* with it. If ngrow>0 the MultiFab is built on the appropriately
* grown BoxArray.
*/
virtual std::unique_ptr<MultiFab> derive (const std::string& name,
Real time,
int ngrow);
/**
* \brief This version of derive() fills the dcomp'th component of mf
* with the derived quantity.
*/
virtual void derive (const std::string& name,
Real time,
MultiFab& mf,
int dcomp);
Derived quantities as well as state variables can be output in the plotfiles.
MUCAPE¶
ERF provides mucape as an optional plotfile variable. The current ERF
implementation defines MUCAPE column-by-column using the following choices:
Search the lowest 300 hPa of each column for the most unstable parcel.
Define the most unstable parcel as the parcel in that search layer with the largest resulting CAPE.
Dry-lift the parcel to the LCL, then continue with a pseudoadiabatic moist ascent.
Compute buoyancy from virtual temperature.
Integrate only the positive buoyancy contribution, so the result has units of J/kg.
Store the single column value at every vertical level in that column, following the same column-diagnostic pattern used by quantities such as
precipitableandhelicity.
This definition is ERF-specific and may differ from other packages that choose a different parcel search layer, parcel-selection rule, ascent model, or buoyancy correction.