8 #include <AMReX_FArrayBox.H>
9 #include <AMReX_Geometry.H>
10 #include <AMReX_MultiFabUtil.H>
11 #include <AMReX_Vector.H>
12 #include <AMReX_MFIter.H>
51 using FabPtr = std::shared_ptr<amrex::MultiFab>;
70 const amrex::MultiFab& cons_in,
71 const amrex::Geometry& geom,
77 amrex::MultiFab& cons_in,
78 amrex::MultiFab& xvel_in,
79 amrex::MultiFab& yvel_in,
80 amrex::MultiFab* hfx3_out,
81 amrex::MultiFab* qfx3_out,
83 const int& nstep)
override;
90 AMREX_ALWAYS_ASSERT(lsmIdx < NOAHMP::m_lsm_data_size && lsmIdx>=0);
99 AMREX_ALWAYS_ASSERT(lsmIdx < NOAHMP::m_lsm_flux_size && lsmIdx>=0);
120 AMREX_ALWAYS_ASSERT(lsmIdx < NOAHMP::m_lsm_data_size && lsmIdx>=0);
129 std::string lc_varname = amrex::toLower(varname);
131 if (lc_varname == amrex::toLower(
LsmDataName[idx])) {
143 AMREX_ALWAYS_ASSERT(lsmIdx < NOAHMP::m_lsm_flux_size && lsmIdx>=0);
152 std::string lc_varname = amrex::toLower(varname);
154 if (lc_varname == amrex::toLower(
LsmFluxName[idx])) {
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_NOAHMP.H:49
int Lsm_DataIndex(std::string varname) override
Definition: ERF_NOAHMP.H:126
std::string Lsm_DataName(const int &varIdx) override
Definition: ERF_NOAHMP.H:117
int khi_lsm
Definition: ERF_NOAHMP.H:190
NOAHMP()
Definition: ERF_NOAHMP.H:55
void Define(SolverChoice &) override
Definition: ERF_NOAHMP.H:62
std::string Lsm_FluxName(const int &varIdx) override
Definition: ERF_NOAHMP.H:140
int m_plot_int_1
Definition: ERF_NOAHMP.H:208
int Lsm_FluxIndex(std::string varname) override
Definition: ERF_NOAHMP.H:149
amrex::Array< FabPtr, LsmFlux_NOAHMP::NumVars > lsm_fab_flux
Definition: ERF_NOAHMP.H:202
amrex::Vector< std::string > LsmDataName
Definition: ERF_NOAHMP.H:175
std::shared_ptr< amrex::MultiFab > FabPtr
Definition: ERF_NOAHMP.H:51
amrex::Vector< int > LsmDataMap
Definition: ERF_NOAHMP.H:169
void Init(const int &lev, const amrex::MultiFab &cons_in, const amrex::Geometry &geom, const amrex::Real &dt) override
Definition: ERF_NOAHMP.cpp:15
int Lsm_Flux_Size() override
Definition: ERF_NOAHMP.H:113
int Lsm_Data_Size() override
Definition: ERF_NOAHMP.H:109
amrex::Geometry Lsm_Geom() override
Definition: ERF_NOAHMP.H:105
NoahmpIO_vector noahmpio_vect
Definition: ERF_NOAHMP.H:205
int m_lsm_data_size
Definition: ERF_NOAHMP.H:163
virtual ~NOAHMP()=default
amrex::Geometry m_lsm_geom
Definition: ERF_NOAHMP.H:184
amrex::Array< FabPtr, LsmData_NOAHMP::NumVars > lsm_fab_data
Definition: ERF_NOAHMP.H:199
int m_nz_lsm
Definition: ERF_NOAHMP.H:193
int m_lsm_flux_size
Definition: ERF_NOAHMP.H:166
amrex::Vector< int > LsmFluxMap
Definition: ERF_NOAHMP.H:172
amrex::MultiFab * Lsm_Data_Ptr(const int &varIdx) override
Definition: ERF_NOAHMP.H:87
amrex::Vector< std::string > LsmFluxName
Definition: ERF_NOAHMP.H:178
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 amrex::Real &dt, const int &nstep) override
Definition: ERF_NOAHMP.cpp:207
amrex::Geometry m_geom
Definition: ERF_NOAHMP.H:181
amrex::Real m_dz_lsm
Definition: ERF_NOAHMP.H:196
amrex::MultiFab * Lsm_Flux_Ptr(const int &varIdx) override
Definition: ERF_NOAHMP.H:96
amrex::Real m_dt
Definition: ERF_NOAHMP.H:187
Definition: ERF_NullSurf.H:8
Definition: ERF_NOAHMP.H:22
@ sw_flux_dn
Definition: ERF_NOAHMP.H:32
@ sfc_emis
Definition: ERF_NOAHMP.H:26
@ sfc_alb_dir_vis
Definition: ERF_NOAHMP.H:27
@ sfc_alb_dif_nir
Definition: ERF_NOAHMP.H:30
@ lw_flux_dn
Definition: ERF_NOAHMP.H:33
@ cos_zenith_angle
Definition: ERF_NOAHMP.H:31
@ t_sfc
Definition: ERF_NOAHMP.H:25
@ NumVars
Definition: ERF_NOAHMP.H:34
@ sfc_alb_dir_nir
Definition: ERF_NOAHMP.H:28
@ sfc_alb_dif_vis
Definition: ERF_NOAHMP.H:29
Definition: ERF_NOAHMP.H:38
@ t_flux
Definition: ERF_NOAHMP.H:42
@ tau13
Definition: ERF_NOAHMP.H:43
@ q_flux
Definition: ERF_NOAHMP.H:41
@ NumVars
Definition: ERF_NOAHMP.H:45
@ tau23
Definition: ERF_NOAHMP.H:44
Definition: ERF_DataStruct.H:123