ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_Cloud_rad_props.H
Go to the documentation of this file.
1 //
2 // cloud radiation properties class
3 //
4 #ifndef ERF_CLOUD_RAD_PROPS_H_
5 #define ERF_CLOUD_RAD_PROPS_H_
6 
7 #include <AMReX_MultiFabUtil.H>
8 #include "ERF_Constants.H"
9 #include "ERF_Config.H"
10 #include "rrtmgp_const.h"
12 #include "ERF_Linear_interpolate.H"
13 
15  public:
16  // constructors and descturctors
17  CloudRadProps () = default;
18  ~CloudRadProps () = default;
19 
20  // initialization
21  void initialize ();
22 
23  // liquid optics
24  void gammadist_liq_optics_sw (const int& ncol,
25  const int& nlev,
26  const real2d& iclwpth,
27  const real2d& lamc,
28  const real2d& pgam,
29  real3d& tau,
30  real3d& tau_w,
31  real3d& tau_w_g,
32  real3d& tau_w_f);
33 
34  void gammadist_liq_optics_lw (const int& ncol,
35  const int& nlev,
36  const real2d& iclwpth,
37  const real2d& lamc,
38  const real2d& pgam,
39  real3d& abs_od);
40 
41  void mitchell_ice_optics_sw (const int& ncol,
42  const int& nlev,
43  const real2d& iciwpth,
44  const real2d& dei,
45  real3d& tau,
46  real3d& tau_w,
47  real3d& tau_w_g,
48  real3d& tau_w_f);
49 
50  void mitchell_ice_optics_lw (const int& ncol,
51  const int& nlev,
52  const real2d& iciwpth,
53  const real2d& dei,
54  real3d& abs_od);
55 
56  void gam_liquid_lw (const real& clwptn,
57  const real& lamc,
58  const real& pgam,
59  real1d abs_od);
60 
61 
62  // liquid optics (short wave)
63  void gam_liquid_sw (const real& clwptn,
64  const real& lamc,
65  const real& pgam,
66  real1d tau,
67  real1d tau_w,
68  real1d tau_w_g,
69  real1d tau_w_f);
70 
71  // lambda weight
72  void get_mu_lambda_weights (const real& lamc,
73  const real& pgam,
74  LinInterp::InterpType& mu_wgts,
75  LinInterp::InterpType& lambda_wgts);
76  private:
77  std::string name{"CloudRadProps"};
78  std::string liquid_file;
79  std::string ice_file;
80 
82 
83  real1d g_mu; // mu samples on grid
84  real2d g_lambda; // lambda scale samples on grid
85  real3d ext_sw_liq;
86  real3d ssa_sw_liq;
87  real3d asm_sw_liq;
88  real3d abs_lw_liq;
89 
90  real1d g_d_eff; // radiative effective diameter samples on grid
91  real2d ext_sw_ice;
92  real2d ssa_sw_ice;
93  real2d asm_sw_ice;
94  real2d abs_lw_ice;
95 };
96 #endif // ERF_CLOUDRADPROPS_H
Definition: ERF_Cloud_rad_props.H:14
std::string liquid_file
Definition: ERF_Cloud_rad_props.H:78
real2d abs_lw_ice
Definition: ERF_Cloud_rad_props.H:94
void mitchell_ice_optics_lw(const int &ncol, const int &nlev, const real2d &iciwpth, const real2d &dei, real3d &abs_od)
Definition: ERF_Cloud_rad_props.cpp:215
real1d g_mu
Definition: ERF_Cloud_rad_props.H:83
void gam_liquid_sw(const real &clwptn, const real &lamc, const real &pgam, real1d tau, real1d tau_w, real1d tau_w_g, real1d tau_w_f)
Definition: ERF_Cloud_rad_props.cpp:290
void gammadist_liq_optics_lw(const int &ncol, const int &nlev, const real2d &iclwpth, const real2d &lamc, const real2d &pgam, real3d &abs_od)
Definition: ERF_Cloud_rad_props.cpp:132
void mitchell_ice_optics_sw(const int &ncol, const int &nlev, const real2d &iciwpth, const real2d &dei, real3d &tau, real3d &tau_w, real3d &tau_w_g, real3d &tau_w_f)
Definition: ERF_Cloud_rad_props.cpp:153
~CloudRadProps()=default
real3d abs_lw_liq
Definition: ERF_Cloud_rad_props.H:88
int nlambda
Definition: ERF_Cloud_rad_props.H:81
int n_g_d
Definition: ERF_Cloud_rad_props.H:81
real2d ext_sw_ice
Definition: ERF_Cloud_rad_props.H:91
std::string ice_file
Definition: ERF_Cloud_rad_props.H:79
void gam_liquid_lw(const real &clwptn, const real &lamc, const real &pgam, real1d abs_od)
Definition: ERF_Cloud_rad_props.cpp:254
real2d g_lambda
Definition: ERF_Cloud_rad_props.H:84
real2d ssa_sw_ice
Definition: ERF_Cloud_rad_props.H:92
real3d ssa_sw_liq
Definition: ERF_Cloud_rad_props.H:86
std::string name
Definition: ERF_Cloud_rad_props.H:77
real3d ext_sw_liq
Definition: ERF_Cloud_rad_props.H:85
real3d asm_sw_liq
Definition: ERF_Cloud_rad_props.H:87
CloudRadProps()=default
void get_mu_lambda_weights(const real &lamc, const real &pgam, LinInterp::InterpType &mu_wgts, LinInterp::InterpType &lambda_wgts)
Definition: ERF_Cloud_rad_props.cpp:344
int nlwbands
Definition: ERF_Cloud_rad_props.H:81
void initialize()
Definition: ERF_Cloud_rad_props.cpp:11
void gammadist_liq_optics_sw(const int &ncol, const int &nlev, const real2d &iclwpth, const real2d &lamc, const real2d &pgam, real3d &tau, real3d &tau_w, real3d &tau_w_g, real3d &tau_w_f)
Definition: ERF_Cloud_rad_props.cpp:96
real1d g_d_eff
Definition: ERF_Cloud_rad_props.H:90
real2d asm_sw_ice
Definition: ERF_Cloud_rad_props.H:93
int nmu
Definition: ERF_Cloud_rad_props.H:81
int nswbands
Definition: ERF_Cloud_rad_props.H:81
Definition: ERF_Linear_interpolate.H:20