ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_Parameterizations.H File Reference
#include "rrtmgp_const.h"
#include "ERF_Rad_constants.H"
#include "ERF_Constants.H"
Include dependency graph for ERF_Parameterizations.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

AMREX_FORCE_INLINE real liquid_effective_radius (real temperature, real landfrac, real icefrac=0., real snowh=0.)
 
AMREX_FORCE_INLINE real ice_effective_radius (real temperature)
 

Function Documentation

◆ ice_effective_radius()

AMREX_FORCE_INLINE real ice_effective_radius ( real  temperature)
37  {
38  int index = int(temperature - (RadConstants::icesize_table_min_temp - 1.));
39  index = std::min(std::max(index, 1), 94);
40  real fraction = temperature-int(temperature);
41  return RadConstants::retab[index]*(1.-fraction)+RadConstants::retab[index+1]*fraction;
42  }
static constexpr real icesize_table_min_temp
Definition: ERF_Rad_constants.H:41
static constexpr real retab[]
Definition: ERF_Rad_constants.H:42

◆ liquid_effective_radius()

AMREX_FORCE_INLINE real liquid_effective_radius ( real  temperature,
real  landfrac,
real  icefrac = 0.,
real  snowh = 0. 
)
14  {
15  const real rliqland = 8.0; // liquid drop size if over land
16  const real rliqocean = 14.0; // liquid drop size if over ocean
17  const real rliqice = 14.0; // liquid drop size if over sea ice
18 
19  real reffective = 0.;
20  // jrm Reworked effective radius algorithm
21  // Start with temperature-dependent value appropriate for continental air
22  reffective = rliqland+(rliqocean-rliqland)*std::min(1.0, std::max(0.0, (tmelt-temperature)*0.05));
23 
24  // Modify for snow depth over land
25  reffective = reffective + (rliqocean-reffective)*std::min(1.0, std::max(0.0, snowh*10.));
26 
27  // Ramp between polluted value over land to clean value over ocean.
28  reffective = reffective + (rliqocean-reffective) * std::min(1.0, std::max(0.0, 1.0 - landfrac));
29 
30  // Ramp between the resultant value and a sea ice value in the presence of ice.
31  reffective = reffective + (rliqice-reffective) * std::min(1.0, std::max(0.0, icefrac));
32  return reffective;
33  }
constexpr amrex::Real tmelt
Definition: ERF_Constants.H:88