ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_Radiation.H>
Public Member Functions | |
Radiation (const int &lev, SolverChoice &sc) | |
~Radiation ()=default | |
virtual void | Init (const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in) override |
virtual void | Run (int &level, int &step, amrex::Real &time, const amrex::Real &dt, const amrex::BoxArray &ba, amrex::Geometry &geom, amrex::MultiFab *cons_in, amrex::MultiFab *lsm_fluxes, amrex::MultiFab *lsm_zenith, amrex::MultiFab *qheating_rates, amrex::MultiFab *z_phys, amrex::MultiFab *lat, amrex::MultiFab *lon) override |
void | set_grids (int &level, int &step, amrex::Real &time, const amrex::Real &dt, const amrex::BoxArray &ba, amrex::Geometry &geom, amrex::MultiFab *cons_in, amrex::MultiFab *lsm_fluxes, amrex::MultiFab *lsm_zenith, amrex::MultiFab *qheating_rates, amrex::MultiFab *z_phys, amrex::MultiFab *lat, amrex::MultiFab *lon) |
template<typename LandSurfaceModelType > | |
void | set_lsm_inputs (LandSurfaceModelType *model) |
void | alloc_buffers () |
void | dealloc_buffers () |
void | mf_to_yakl_buffers () |
void | yakl_buffers_to_mf () |
void | write_rrtmgp_fluxes () |
void | initialize_impl () |
void | run_impl () |
void | finalize_impl () |
void | rad_run_impl () |
void | populateDatalogMF () |
virtual void | WriteDataLog (const amrex::Real &time) override |
![]() | |
virtual | ~IRadiation ()=default |
void | setupDataLog () |
void | setDataLogFrequency (const int nstep) |
bool | hasDatalog () |
Private Attributes | |
int | m_lev |
int | m_step |
amrex::Real | m_time |
amrex::Real | m_dt |
amrex::Geometry | m_geom |
amrex::BoxArray | m_ba |
bool | m_update_rad = false |
bool | m_rad_write_fluxes = false |
bool | m_first_step = true |
bool | m_moist = false |
bool | m_ice = false |
bool | m_lsm = false |
amrex::MultiFab * | m_cons_in = nullptr |
amrex::MultiFab * | m_qheating_rates = nullptr |
amrex::MultiFab * | m_z_phys = nullptr |
amrex::MultiFab * | m_lat = nullptr |
amrex::MultiFab * | m_lon = nullptr |
amrex::Real | m_lat_cons = 39.809860 |
amrex::Real | m_lon_cons = -98.555183 |
amrex::MultiFab * | m_lsm_fluxes = nullptr |
amrex::MultiFab * | m_lsm_zenith = nullptr |
amrex::MultiFab | datalog_mf |
std::string | rrtmgp_file_path = "." |
std::string | rrtmgp_coeffs_sw = "rrtmgp-data-sw-g224-2018-12-04.nc" |
std::string | rrtmgp_coeffs_lw = "rrtmgp-data-lw-g224-2018-12-04.nc" |
std::string | rrtmgp_cloud_optics_sw = "rrtmgp-cloud-optics-coeffs-sw.nc" |
std::string | rrtmgp_cloud_optics_lw = "rrtmgp-cloud-optics-coeffs-lw.nc" |
std::string | rrtmgp_coeffs_file_sw |
std::string | rrtmgp_coeffs_file_lw |
std::string | rrtmgp_cloud_optics_file_sw |
std::string | rrtmgp_cloud_optics_file_lw |
int | m_ngas = 8 |
const std::vector< std::string > | m_gas_names |
const std::vector< amrex::Real > | m_mol_weight_gas |
amrex::Real | m_co2vmr = 388.717e-6 |
amrex::Vector< amrex::Real > | m_o3vmr |
amrex::Real | m_n2ovmr = 323.141e-9 |
amrex::Real | m_covmr = 1.0e-7 |
amrex::Real | m_ch4vmr = 1807.851e-9 |
amrex::Real | m_o2vmr = 0.209448 |
amrex::Real | m_n2vmr = 0.7906 |
int | m_o3_size |
real1d | m_gas_mol_weights |
string1dv | gas_names_yakl_offset |
GasConcs | m_gas_concs |
int | m_ncol |
int | m_nlay |
amrex::Vector< int > | m_col_offsets |
bool | m_do_aerosol_rad = true |
bool | m_extra_clnsky_diag = false |
bool | m_extra_clnclrsky_diag = false |
int | m_orbital_year = -9999 |
int | m_orbital_mon = -9999 |
int | m_orbital_day = -9999 |
int | m_orbital_sec = -9999 |
bool | m_fixed_orbital_year = false |
amrex::Real | m_orbital_eccen = -9999. |
amrex::Real | m_orbital_obliq = -9999. |
amrex::Real | m_orbital_mvelp = -9999. |
amrex::Real | m_fixed_total_solar_irradiance = -9999. |
amrex::Real | m_fixed_solar_zenith_angle = -9999. |
int | m_nswbands = 14 |
int | m_nlwbands = 16 |
int | m_nswgpts = 112 |
int | m_nlwgpts = 128 |
int | m_rad_freq_in_steps = 1 |
bool | m_do_subcol_sampling = true |
real1d | o3_lay |
real1d | cosine_zenith |
real1d | mu0 |
real1d | sfc_alb_dir_vis |
real1d | sfc_alb_dir_nir |
real1d | sfc_alb_dif_vis |
real1d | sfc_alb_dif_nir |
real1d | sfc_flux_dir_vis |
real1d | sfc_flux_dir_nir |
real1d | sfc_flux_dif_vis |
real1d | sfc_flux_dif_nir |
real1d | lat |
real1d | lon |
real1d | sfc_emis |
real1d | t_sfc |
real1d | lw_src |
real2d | r_lay |
real2d | p_lay |
real2d | t_lay |
real2d | z_del |
real2d | p_del |
real2d | qv_lay |
real2d | qc_lay |
real2d | qi_lay |
real2d | cldfrac_tot |
real2d | eff_radius_qc |
real2d | eff_radius_qi |
real2d | tmp2d |
real2d | lwp |
real2d | iwp |
real2d | sw_heating |
real2d | lw_heating |
real2d | sw_clrsky_heating |
real2d | lw_clrsky_heating |
real2d | d_tint |
real2d | p_lev |
real2d | t_lev |
real2d | sw_flux_up |
real2d | sw_flux_dn |
real2d | sw_flux_dn_dir |
real2d | lw_flux_up |
real2d | lw_flux_dn |
real2d | sw_clnclrsky_flux_up |
real2d | sw_clnclrsky_flux_dn |
real2d | sw_clnclrsky_flux_dn_dir |
real2d | sw_clrsky_flux_up |
real2d | sw_clrsky_flux_dn |
real2d | sw_clrsky_flux_dn_dir |
real2d | sw_clnsky_flux_up |
real2d | sw_clnsky_flux_dn |
real2d | sw_clnsky_flux_dn_dir |
real2d | lw_clnclrsky_flux_up |
real2d | lw_clnclrsky_flux_dn |
real2d | lw_clrsky_flux_up |
real2d | lw_clrsky_flux_dn |
real2d | lw_clnsky_flux_up |
real2d | lw_clnsky_flux_dn |
real3d | sw_bnd_flux_up |
real3d | sw_bnd_flux_dn |
real3d | sw_bnd_flux_dir |
real3d | sw_bnd_flux_dif |
real3d | lw_bnd_flux_up |
real3d | lw_bnd_flux_dn |
real2d | sfc_alb_dir |
real2d | sfc_alb_dif |
real2d | emis_sfc |
real3d | aero_tau_sw |
real3d | aero_ssa_sw |
real3d | aero_g_sw |
real3d | aero_tau_lw |
real3d | cld_tau_sw_bnd |
real3d | cld_tau_lw_bnd |
real3d | cld_tau_sw_gpt |
real3d | cld_tau_lw_gpt |
Additional Inherited Members | |
![]() | |
std::unique_ptr< std::fstream > | datalog = nullptr |
std::string | datalogname |
int | datalog_int = -1 |
Radiation::Radiation | ( | const int & | lev, |
SolverChoice & | sc | ||
) |
|
default |
void Radiation::alloc_buffers | ( | ) |
void Radiation::dealloc_buffers | ( | ) |
void Radiation::finalize_impl | ( | ) |
Referenced by rad_run_impl().
|
inlineoverridevirtual |
Implements IRadiation.
void Radiation::initialize_impl | ( | ) |
Referenced by rad_run_impl().
void Radiation::mf_to_yakl_buffers | ( | ) |
void Radiation::populateDatalogMF | ( | ) |
|
inline |
Referenced by Run().
|
inlineoverridevirtual |
Implements IRadiation.
void Radiation::run_impl | ( | ) |
Referenced by rad_run_impl().
void Radiation::set_grids | ( | int & | level, |
int & | step, | ||
amrex::Real & | time, | ||
const amrex::Real & | dt, | ||
const amrex::BoxArray & | ba, | ||
amrex::Geometry & | geom, | ||
amrex::MultiFab * | cons_in, | ||
amrex::MultiFab * | lsm_fluxes, | ||
amrex::MultiFab * | lsm_zenith, | ||
amrex::MultiFab * | qheating_rates, | ||
amrex::MultiFab * | z_phys, | ||
amrex::MultiFab * | lat, | ||
amrex::MultiFab * | lon | ||
) |
Referenced by Run().
|
inline |
void Radiation::write_rrtmgp_fluxes | ( | ) |
|
overridevirtual |
Implements IRadiation.
void Radiation::yakl_buffers_to_mf | ( | ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by set_lsm_inputs().
|
private |
|
private |
|
private |
Referenced by Run().
|
private |
Referenced by Run().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by set_lsm_inputs().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by rad_run_impl().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Referenced by rad_run_impl(), and set_lsm_inputs().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |