|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_NOAHMP.H>


Public Member Functions | |
| NOAHMP () | |
| virtual | ~NOAHMP ()=default |
| void | Define (SolverChoice &) override |
| void | Init (const int &lev, const amrex::MultiFab &cons_in, const amrex::Geometry &geom, const amrex::Geometry &geom0, amrex::Vector< amrex::BCRec > &domain_bcs_type, amrex::IntVect &refRatio, const amrex::Real &dt, amrex::Vector< amrex::Vector< std::string >> &nc_init_file) override |
| void | Advance_With_State (const int &lev, amrex::MultiFab &cons_in, amrex::MultiFab &xvel_in, amrex::MultiFab &yvel_in, amrex::MultiFab *hfx3_out, amrex::MultiFab *qfx3_out, const SurfacePrecipAccumulationSources &precip_sources, const amrex::Real &elapsed_time, const amrex::Real &dt, const int &nstep, const bool updated_lev0) override |
| void | Plot_Landfile (const int &nstep) override |
| amrex::MultiFab * | Lsm_Data_Ptr (const int &varIdx) override |
| amrex::MultiFab * | Lsm_Flux_Ptr (const int &varIdx) override |
| amrex::Geometry | Lsm_Geom () override |
| int | Lsm_Data_Size () override |
| int | Lsm_Flux_Size () override |
| std::string | Lsm_DataName (const int &varIdx) override |
| int | Lsm_DataIndex (std::string varname) override |
| std::string | Lsm_FluxName (const int &varIdx) override |
| int | Lsm_FluxIndex (std::string varname) override |
| void | Lsm_Set_Lev0_Data_Ptr (const int &varIdx, amrex::MultiFab *lev0_data_ptr) override |
| void | Lsm_Set_Lev0_Flux_Ptr (const int &varIdx, amrex::MultiFab *lev0_flux_ptr) override |
| bool | Get_Update_Status () override |
| int | Get_LSM_Step () const override |
| void | Set_LSM_Step (int step) override |
| void | Write_Lsm_Restart (const std::string &dir) const override |
| void | Read_Lsm_Restart (const std::string &dir) override |
| void | interp_from_lev0 (const int &lev, amrex::MultiFab &cons_in, const int &nstep) |
| bool | time_to_fire (const amrex::Real &elapsed_time) |
| void | stage_forcing (const amrex::MFIter &mfi, const erf_noahmp::NoahmpBlockViews &blk, const amrex::Box &bx, const int &klo, const int &lev, const bool is_moist, amrex::MultiFab &cons_in, amrex::MultiFab &xvel_in, amrex::MultiFab &yvel_in, const erf_noahmp::PrecipSlots &precip, amrex::Vector< erf_noahmp::ClampedPrecipCell > &clamped_cells, amrex::Vector< erf_noahmp::InvariantPrecipCell > &invariant_cells) |
| void | read_results (const amrex::MFIter &mfi, const erf_noahmp::NoahmpBlockViews &blk, const amrex::Box &bx, const amrex::Box &gbx, amrex::MultiFab &cons_in) |
| erf_noahmp::PrecipSlots | collect_precip_sources (const SurfacePrecipAccumulationSources &precip_sources) |
| void | prepare_precip_snapshots (const int &lev, const erf_noahmp::PrecipSlots &precip) |
| void | advance_precip_snapshots (const int &lev, const erf_noahmp::PrecipSlots &precip) |
| void | report_precip_diagnostics (const int &lev, const amrex::Vector< erf_noahmp::ClampedPrecipCell > &clamped_cells, const amrex::Vector< erf_noahmp::InvariantPrecipCell > &invariant_cells) |
| int | soil_data_idx (int g, int k) const |
| void | m_ensure_nsoil_resolved () |
Public Member Functions inherited from NullSurf | |
| NullSurf () | |
| virtual | ~NullSurf ()=default |
| virtual void | Advance (const double &) |
| virtual void | Update_Micro_Vars (amrex::MultiFab &) |
| virtual void | Update_State_Vars (amrex::MultiFab &) |
| virtual void | Copy_State_to_Micro (const amrex::MultiFab &) |
| virtual void | Copy_Micro_to_State (amrex::MultiFab &) |
| virtual std::unordered_map< std::string, std::string > & | Lsm_WRFInputNames () |
Static Public Member Functions | |
| static std::string | m_precip_snapshot_name (const std::string &dir, int l, int s) |
Public Attributes | |
| bool | m_nsoil_resolved = false |
Static Public Attributes | |
| static constexpr int | m_num_soil_groups = 3 |
Private Types | |
| using | FabPtr = std::shared_ptr< amrex::MultiFab > |
Private Member Functions | |
| void | with_land_comm (const std::function< void(NoahmpIO_type &)> &fn) const |
Private Attributes | |
| int | m_lsm_data_size = LsmData_NOAHMP::NumVars |
| int | m_lsm_flux_size = LsmFlux_NOAHMP::NumVars |
| amrex::Vector< int > | LsmDataMap |
| amrex::Vector< int > | LsmFluxMap |
| amrex::Vector< std::string > | LsmDataName |
| amrex::Vector< std::string > | LsmFluxName |
| amrex::Geometry | m_geom |
| amrex::Geometry | m_geom0 |
| amrex::Geometry | m_lsm_geom |
| amrex::IntVect | m_refRatio |
| amrex::Vector< amrex::BCRec > | m_domain_bcs_type |
| amrex::Real | m_dt |
| int | m_itimestep = 0 |
| amrex::Real | m_dtbl = std::numeric_limits<amrex::Real>::max() |
| int | khi_lsm = -1 |
| int | m_nz_lsm = 1 |
| amrex::Real | m_dz_lsm = one |
| amrex::Vector< FabPtr > | lsm_fab_data |
| amrex::Array< FabPtr, LsmFlux_NOAHMP::NumVars > | lsm_fab_flux |
| amrex::Vector< amrex::MultiFab * > | lsm_lev0_data |
| amrex::Array< amrex::MultiFab *, LsmFlux_NOAHMP::NumVars > | lsm_lev0_flux {} |
| int | m_nsoil = 4 |
| NoahmpIO_vector | noahmpio_vect |
| amrex::Vector< std::unique_ptr< amrex::FArrayBox > > | noahmp_input_tmp |
| amrex::Vector< std::unique_ptr< amrex::FArrayBox > > | noahmp_output_tmp |
| amrex::Vector< amrex::Array< std::unique_ptr< amrex::MultiFab >, NoahmpPrecipSlot::NumSlots > > | m_precip_accum_prev |
| amrex::Array< std::unique_ptr< amrex::MultiFab >, NoahmpPrecipSlot::NumSlots > | m_precip_accum_restored |
| int | m_lev = 0 |
| bool | m_updated = false |
| bool | m_has_nc_file = false |
|
private |
|
virtualdefault |
| void NOAHMP::advance_precip_snapshots | ( | const int & | lev, |
| const erf_noahmp::PrecipSlots & | precip | ||
| ) |
|
overridevirtual |
Reimplemented from NullSurf.
| erf_noahmp::PrecipSlots NOAHMP::collect_precip_sources | ( | const SurfacePrecipAccumulationSources & | precip_sources | ) |

|
inlineoverridevirtual |
Reimplemented from NullSurf.
|
inlineoverridevirtual |
Reimplemented from NullSurf.
|
inlineoverridevirtual |
|
overridevirtual |
Reimplemented from NullSurf.

| void NOAHMP::interp_from_lev0 | ( | const int & | lev, |
| amrex::MultiFab & | cons_in, | ||
| const int & | nstep | ||
| ) |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Reimplemented from NullSurf.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Reimplemented from NullSurf.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inline |
Referenced by Lsm_Data_Size().


|
inlinestatic |
|
overridevirtual |
Reimplemented from NullSurf.
| void NOAHMP::prepare_precip_snapshots | ( | const int & | lev, |
| const erf_noahmp::PrecipSlots & | precip | ||
| ) |
|
overridevirtual |
Reimplemented from NullSurf.
| void NOAHMP::read_results | ( | const amrex::MFIter & | mfi, |
| const erf_noahmp::NoahmpBlockViews & | blk, | ||
| const amrex::Box & | bx, | ||
| const amrex::Box & | gbx, | ||
| amrex::MultiFab & | cons_in | ||
| ) |

| void NOAHMP::report_precip_diagnostics | ( | const int & | lev, |
| const amrex::Vector< erf_noahmp::ClampedPrecipCell > & | clamped_cells, | ||
| const amrex::Vector< erf_noahmp::InvariantPrecipCell > & | invariant_cells | ||
| ) |
|
inlineoverridevirtual |
Reimplemented from NullSurf.
|
inline |
| void NOAHMP::stage_forcing | ( | const amrex::MFIter & | mfi, |
| const erf_noahmp::NoahmpBlockViews & | blk, | ||
| const amrex::Box & | bx, | ||
| const int & | klo, | ||
| const int & | lev, | ||
| const bool | is_moist, | ||
| amrex::MultiFab & | cons_in, | ||
| amrex::MultiFab & | xvel_in, | ||
| amrex::MultiFab & | yvel_in, | ||
| const erf_noahmp::PrecipSlots & | precip, | ||
| amrex::Vector< erf_noahmp::ClampedPrecipCell > & | clamped_cells, | ||
| amrex::Vector< erf_noahmp::InvariantPrecipCell > & | invariant_cells | ||
| ) |

| bool NOAHMP::time_to_fire | ( | const amrex::Real & | elapsed_time | ) |
|
private |
|
overridevirtual |
Reimplemented from NullSurf.
|
private |
|
private |
Referenced by Lsm_Data_Ptr().
|
private |
Referenced by Lsm_Flux_Ptr().
|
private |
Referenced by Lsm_Set_Lev0_Data_Ptr().
|
private |
Referenced by Lsm_Set_Lev0_Flux_Ptr().
|
private |
Referenced by Lsm_Data_Ptr(), and Lsm_DataName().
|
private |
Referenced by Lsm_DataIndex(), and Lsm_DataName().
|
private |
Referenced by Lsm_Flux_Ptr(), and Lsm_FluxName().
|
private |
Referenced by Lsm_FluxIndex(), and Lsm_FluxName().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by Get_LSM_Step(), and Set_LSM_Step().
|
private |
|
private |
Referenced by Lsm_Data_Size(), Lsm_DataIndex(), Lsm_Set_Lev0_Data_Ptr(), and m_ensure_nsoil_resolved().
|
private |
Referenced by Lsm_Flux_Size().
|
private |
Referenced by Lsm_Geom().
|
private |
Referenced by m_ensure_nsoil_resolved(), and soil_data_idx().
| bool NOAHMP::m_nsoil_resolved = false |
Referenced by m_ensure_nsoil_resolved().
|
staticconstexpr |
Referenced by m_ensure_nsoil_resolved().
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by Get_Update_Status().
|
private |
|
private |
|
private |
Referenced by Set_LSM_Step().