ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_RadStruct.H File Reference

Radiation model type and control parameters. More...

#include <cmath>
#include <string>
#include <iostream>
#include <AMReX_ParmParse.H>
#include <AMReX_ParallelDescriptor.H>
#include <AMReX_Print.H>
#include <AMReX_Gpu.H>
#include <ERF_IndexDefines.H>
#include <ERF_TurbStruct.H>
Include dependency graph for ERF_RadStruct.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  RadChoice
 Container holding radiation-related choices and parameters. More...
 

Functions

 AMREX_ENUM (TauProfileType, Constant, CloudLayer)
 Optical depth profile type for the two-stream solver. More...
 
 AMREX_ENUM (AerosolProfileType, Constant, Exponential, Table)
 Aerosol optical depth profile type for the two-stream solver. More...
 
 AMREX_ENUM (TauModel, PerLayer, Mass)
 How the clear-sky optical depth of a layer is obtained. More...
 

Detailed Description

Radiation model type and control parameters.

Function Documentation

◆ AMREX_ENUM() [1/3]

AMREX_ENUM ( AerosolProfileType  ,
Constant  ,
Exponential  ,
Table   
)

Aerosol optical depth profile type for the two-stream solver.

  • Constant: uniform aerosol tau_per_layer applied at every level.
  • Exponential: aerosol tau decays exponentially with height via tau_aerosol(k) = tau_surface * exp(-z(k) / scale_height).
  • Table: aerosol tau prescribed per level via lookup (future extension).

◆ AMREX_ENUM() [2/3]

AMREX_ENUM ( TauModel  ,
PerLayer  ,
Mass   
)

How the clear-sky optical depth of a layer is obtained.

  • PerLayer: the fixed tau_per_layer / tau_lw_per_layer for every layer regardless of its thickness (the original model; the column optical depth then scales with the number of vertical cells).
  • Mass: from the layer mass path, tau = rho dz (k_dry + k_vapor qv + ...), so the column optical depth is set by the atmosphere, not by the grid. Shortwave uses sw_kabs_dry, sw_kscat_dry (Rayleigh, scattering), sw_kabs_vapor and sw_kext_cloud with sw_cloud_omega / sw_cloud_g; longwave uses lw_kabs_dry, lw_kabs_vapor and lw_kabs_cloud.

◆ AMREX_ENUM() [3/3]

AMREX_ENUM ( TauProfileType  ,
Constant  ,
CloudLayer   
)

Optical depth profile type for the two-stream solver.

  • Constant: tau_per_layer / tau_lw_per_layer applied uniformly at every level, independent of layer thickness.
  • CloudLayer: an additional cloud optical depth is added within [cloud_base_height_m, cloud_top_height_m], on top of the clear-sky background tau_per_layer / tau_lw_per_layer.