ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_Aero_rad_props.H
Go to the documentation of this file.
1 //
2 // cloud radiation properties class
3 //
4 #ifndef ERF_AER_RAD_PROPS_H_
5 #define ERF_AER_RAD_PROPS_H_
6 
7 #include <AMReX_MultiFabUtil.H>
8 #include "ERF_Mam4_aero.H"
9 #include "YAKL_netcdf.h"
10 #include "rrtmgp_const.h"
11 #include "ERF_Rad_constants.H"
12 #include "ERF_Mam4_constituents.H"
13 
14 //
15 // AerRadProps class converts the aerosol mass to bulk optical properties for short wave
16 // and long wave radiation computations
17 //
18 class AerRadProps {
19  public:
20  AerRadProps () = default;
21  ~AerRadProps () = default;
22 
23  // initialization
24  void initialize (int num_gas, int num_modes, int naeroes,
25  int nswbands_, int nlwbands_,
26  int ncoloum, int nlevel, int num_rh, int top_levels,
27  const std::vector<std::string>& aerosol_names,
28  const real2d& zint, const real2d& pmiddle, const real2d& pdel,
29  const real2d& temperature, const real2d& qtotal,
30  const real2d& geom_rad);
31 
32  void aer_rad_props_sw (const int& list_idx,
33  const real& dt,
34  const int& nnite,
35  const int1d& idxnite,
36  const bool is_cmip6_volc,
37  const real3d& tau,
38  const real3d& tau_w,
39  const real3d& tau_w_g,
40  const real3d& tau_w_f,
41  const real2d& clear_rh);
42 
43  void aer_rad_props_lw (const bool& is_cmip6_volc,
44  const int& list_idx,
45  const real& dt,
46  const real2d& zi,
47  const real3d& odap_aer,
48  const real2d& clear_rh);
49 
50 
51  void get_hygro_rad_props (const int& ncol,
52  const int2d& krh,
53  const real2d& wrh,
54  const real2d& mass,
55  const real2d& ext,
56  const real2d& ssa,
57  const real2d& assm,
58  const real3d& tau,
59  const real3d& tau_w,
60  const real3d& tau_w_g,
61  const real3d& tau_w_f);
62 
63  void get_nonhygro_rad_props (const int& ncol,
64  const real2d& mass,
65  const real1d& ext,
66  const real1d& ssa,
67  const real1d& assm,
68  const real3d& tau,
69  const real3d& tau_w,
70  const real3d& tau_w_g,
71  const real3d& tau_w_f);
72 
73  void get_volcanic_radius_rad_props (const int& ncol,
74  const real2d& mass,
75  const real2d& r_ext,
76  const real2d& r_scat,
77  const real2d& r_ascat,
78  const real1d& r_mu,
79  const real3d& tau,
80  const real3d& tau_w,
81  const real3d& tau_w_g,
82  const real3d& tau_w_f);
83 
84  void volcanic_cmip_sw (const int1d& trop_level,
85  const real2d& zi, // zone interface
86  const real3d& ext_cmip6_sw_inv_m,
87  const real3d& ssa_cmip6_sw, // ssa from the volcanic inputs
88  const real3d& af_cmip6_sw, // asymmetry factor (af) from volcanic inputs
89  const real3d& tau,
90  const real3d& tau_w,
91  const real3d& tau_w_g,
92  const real3d& tau_w_f);
93 
94  void get_volcanic_rad_props (const int& ncol,
95  const real2d& mass,
96  const real1d& ext,
97  const real1d& scat,
98  const real1d& ascat,
99  const real3d& tau,
100  const real3d& tau_w,
101  const real3d& tau_w_g,
102  const real3d& tau_w_f);
103 
104  void aer_vis_diag_out (const int& ncol,
105  const int& nnite,
106  const int1d& idxnite,
107  const int& iaer,
108  const real2d& tau,
109  const int& diag_idx);
110 
111  private:
113  std::vector<std::string> aero_names;
114 
117 
118  // aero constituents
120 
121  // aero
123 
124  // pdel dry
125  real2d pdeldry;
126  // pmid
127  real2d pmid, temp, qt;
128  // geometric radius
130  // vertical grid
131  real2d zi;
132  // cmip6 short wave
134 };
135 #endif
Definition: ERF_Aero_rad_props.H:18
real3d ssa_cmip6_sw
Definition: ERF_Aero_rad_props.H:133
real2d temp
Definition: ERF_Aero_rad_props.H:127
real2d pdeldry
Definition: ERF_Aero_rad_props.H:125
real2d geometric_radius
Definition: ERF_Aero_rad_props.H:129
int nlev
Definition: ERF_Aero_rad_props.H:116
int nmodes
Definition: ERF_Aero_rad_props.H:112
void aer_rad_props_sw(const int &list_idx, const real &dt, const int &nnite, const int1d &idxnite, const bool is_cmip6_volc, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f, const real2d &clear_rh)
Definition: ERF_Aero_rad_props.cpp:56
int ncol
Definition: ERF_Aero_rad_props.H:116
void get_volcanic_radius_rad_props(const int &ncol, const real2d &mass, const real2d &r_ext, const real2d &r_scat, const real2d &r_ascat, const real1d &r_mu, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f)
Definition: ERF_Aero_rad_props.cpp:560
MamConstituents mam_consti
Definition: ERF_Aero_rad_props.H:119
void get_hygro_rad_props(const int &ncol, const int2d &krh, const real2d &wrh, const real2d &mass, const real2d &ext, const real2d &ssa, const real2d &assm, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f)
Definition: ERF_Aero_rad_props.cpp:513
void aer_rad_props_lw(const bool &is_cmip6_volc, const int &list_idx, const real &dt, const real2d &zi, const real3d &odap_aer, const real2d &clear_rh)
Definition: ERF_Aero_rad_props.cpp:304
std::vector< std::string > aero_names
Definition: ERF_Aero_rad_props.H:113
void get_volcanic_rad_props(const int &ncol, const real2d &mass, const real1d &ext, const real1d &scat, const real1d &ascat, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f)
Definition: ERF_Aero_rad_props.cpp:681
int top_lev
Definition: ERF_Aero_rad_props.H:116
real2d qt
Definition: ERF_Aero_rad_props.H:127
void aer_vis_diag_out(const int &ncol, const int &nnite, const int1d &idxnite, const int &iaer, const real2d &tau, const int &diag_idx)
int nrh
Definition: ERF_Aero_rad_props.H:116
void volcanic_cmip_sw(const int1d &trop_level, const real2d &zi, const real3d &ext_cmip6_sw_inv_m, const real3d &ssa_cmip6_sw, const real3d &af_cmip6_sw, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f)
Definition: ERF_Aero_rad_props.cpp:624
real2d pmid
Definition: ERF_Aero_rad_props.H:127
real2d zi
Definition: ERF_Aero_rad_props.H:131
real3d ext_cmip6_sw
Definition: ERF_Aero_rad_props.H:133
void initialize(int num_gas, int num_modes, int naeroes, int nswbands_, int nlwbands_, int ncoloum, int nlevel, int num_rh, int top_levels, const std::vector< std::string > &aerosol_names, const real2d &zint, const real2d &pmiddle, const real2d &pdel, const real2d &temperature, const real2d &qtotal, const real2d &geom_rad)
Definition: ERF_Aero_rad_props.cpp:12
int nswbands
Definition: ERF_Aero_rad_props.H:115
AerRadProps()=default
int ngas
Definition: ERF_Aero_rad_props.H:112
~AerRadProps()=default
int num_aeroes
Definition: ERF_Aero_rad_props.H:112
int nlwbands
Definition: ERF_Aero_rad_props.H:115
void get_nonhygro_rad_props(const int &ncol, const real2d &mass, const real1d &ext, const real1d &ssa, const real1d &assm, const real3d &tau, const real3d &tau_w, const real3d &tau_w_g, const real3d &tau_w_f)
Definition: ERF_Aero_rad_props.cpp:538
Mam4_aer mam_aer
Definition: ERF_Aero_rad_props.H:122
real3d af_cmip6_sw
Definition: ERF_Aero_rad_props.H:133
Definition: ERF_Mam4_aero.H:23
Definition: ERF_Mam4_constituents.H:18