1 #ifndef ERF_RRTMGP_SURFACE_TEMPERATURE_H_
2 #define ERF_RRTMGP_SURFACE_TEMPERATURE_H_
10 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
38 AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
41 const bool has_lsm_t_sfc,
42 const bool valid_lsm_t_sfc,
44 const bool has_surface_layer,
54 const bool use_lsm_t_sfc = is_land && has_lsm_t_sfc && valid_lsm_t_sfc;
58 }
else if (has_surface_layer &&
60 surface_layer_theta, surface_pressure,
rdOcp, t_sfc)) {
64 t_sfc = default_t_sfc;
69 if (lsm_t_sfc_out !=
nullptr && !use_lsm_t_sfc) {
70 *lsm_t_sfc_out = t_sfc;
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real getExnergivenP(const amrex::Real P, const amrex::Real rdOcp)
Definition: ERF_EOS.H:141
const Real rdOcp
Definition: ERF_InitCustomPert_ABL.H:72
constexpr amrex::Real one
Definition: ERF_NumericalConstants.H:30
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool theta_to_temperature(const amrex::Real theta, const amrex::Real pressure, const amrex::Real rdOcp, amrex::Real &temperature)
Definition: ERF_SurfaceTemperature.H:54
Definition: ERF_RRTMGP_SurfaceTemperature.H:8
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void resolve_surface_temperature(const bool is_land, const bool has_lsm_t_sfc, const bool valid_lsm_t_sfc, const amrex::Real lsm_t_sfc, const bool has_surface_layer, const amrex::Real surface_layer_theta, const amrex::Real surface_pressure, const amrex::Real rdOcp, const amrex::Real default_t_sfc, amrex::Real &t_sfc, amrex::Real *lsm_t_sfc_out)
Definition: ERF_RRTMGP_SurfaceTemperature.H:40
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real inverse_exner(const amrex::Real pressure, const amrex::Real rdOcp)
Definition: ERF_RRTMGP_SurfaceTemperature.H:12