1 #ifndef ERF_NOAHMP_RESULT_POLICY_H_
2 #define ERF_NOAHMP_RESULT_POLICY_H_
6 #include <AMReX_GpuQualifiers.H>
7 #include <AMReX_REAL.H>
23 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
32 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
38 if (output_comp == NoahmpOutputComp::o_noahmp_q2m_veg ||
39 output_comp == NoahmpOutputComp::o_noahmp_q2m_bare) {
42 if (output_comp == NoahmpOutputComp::o_noahmp_fveg) {
48 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
52 int output_comp) noexcept
55 ?
value : undefined_value;
63 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
67 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
70 int output_comp)
const noexcept
75 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
85 return {undefined_value, undefined_value, undefined_value, undefined_value};
87 return {
hfx / (density * cp_d),
88 latent_heat_flux / (density * latent_heat),
89 tau_ew_value / density,
90 tau_ns_value / density};
constexpr amrex::Real lsm_undefined
Definition: ERF_Constants.H:35
Real value
Definition: ERF_HurricaneDiagnostics.cpp:30
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_NOAHMP_ResultPolicy.H:13
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real select_result(bool cell_processed, amrex::Real value, amrex::Real undefined_value, int output_comp) noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:49
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool result_is_valid_for_output(amrex::Real value, int output_comp) noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:33
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool result_is_valid(amrex::Real value) noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:24
Definition: ERF_NOAHMP_ResultPolicy.H:59
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real select(amrex::Real value, amrex::Real undefined_value, int output_comp) const noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:68
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE CellPolicy(amrex::Real hfx_value) noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:64
amrex::Real hfx
Definition: ERF_NOAHMP_ResultPolicy.H:60
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE FluxSelection select_fluxes(amrex::Real latent_heat_flux, amrex::Real tau_ew_value, amrex::Real tau_ns_value, amrex::Real density, amrex::Real cp_d, amrex::Real latent_heat, amrex::Real undefined_value) const noexcept
Definition: ERF_NOAHMP_ResultPolicy.H:76
bool processed
Definition: ERF_NOAHMP_ResultPolicy.H:61
Definition: ERF_NOAHMP_ResultPolicy.H:16
amrex::Real tau_ew
Definition: ERF_NOAHMP_ResultPolicy.H:19
amrex::Real tau_ns
Definition: ERF_NOAHMP_ResultPolicy.H:20
amrex::Real mixing_ratio
Definition: ERF_NOAHMP_ResultPolicy.H:18
amrex::Real temperature
Definition: ERF_NOAHMP_ResultPolicy.H:17