|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
TwoStreamRadiation: the two-stream radiation model and its surface state. More...
#include <ERF_TwoStreamRadiation.H>#include <ERF_RadStruct.H>#include <AMReX_VisMF.H>#include <AMReX_PlotFileUtil.H>#include <AMReX_Utility.H>#include <AMReX_Math.H>#include <ERF_RadiationDiagnostics.H>#include <ERF_TwoStreamColumn.H>#include <ERF_TwoStreamCanopyForcing.H>#include <ERF_Constants.H>#include <ERF_PrognosticCloudFraction.H>#include <ERF_AerosolOpticalDepth.H>#include <ERF_SimplifiedSEB.H>#include <ERF_SurfaceMoisture.H>#include <ERF_SEBTurbulentFlux.H>#include <ERF_OrbCosZenith.H>#include <AMReX_Print.H>#include <AMReX_ParallelDescriptor.H>#include <AMReX_Gpu.H>#include <ERF_IndexDefines.H>#include <ERF_EOS.H>#include <algorithm>#include <cmath>#include <ctime>#include <limits>
Functions | |
| TwoStreamSunDate | two_stream_sun_date (const RadChoice &rc, TwoStreamRadiation::OrbitalCache &orbit, double epoch_time) |
| The calendar sun of the two-stream model at a UTC epoch time (start_time + t). More... | |
| void | copy_surface_plane (const MultiFab &src2d, MultiFab &dst) |
TwoStreamRadiation: the two-stream radiation model and its surface state.
Computes SW/LW fluxes and per-level heating rates using real per-column vertical sweeps over the atmospheric grid. Reads temperature and density from the state and properly accumulates optical depth through all vertical levels.
Capabilities include:
Includes support for:
Vertical orientation follows ERF: k = kmin is the surface layer and k = kmax the top layer. SW sweeps downward from kmax to kmin; LW sweeps downward (TOA -> surface) and then upward (surface -> TOA). Layer temperature is obtained from rho*theta through the Exner function.
CSV diagnostics (domain means unless noted): SW_surface is the SW absorbed by the surface, SW_TOA the incident SW at the top of the atmosphere, SW_up_TOA the reflected SW leaving the top, LW_net_surface the net (up - down) LW at the surface, LW_up_TOA the outgoing LW at the top, and heating_rate_max the max(|Q_sw|+|Q_lw|) over the column evaluations.
| void copy_surface_plane | ( | const MultiFab & | src2d, |
| MultiFab & | dst | ||
| ) |
Referenced by TwoStreamRadiation::write_land_forcing().


| TwoStreamSunDate two_stream_sun_date | ( | const RadChoice & | rc, |
| TwoStreamRadiation::OrbitalCache & | orbit, | ||
| double | epoch_time | ||
| ) |
The calendar sun of the two-stream model at a UTC epoch time (start_time + t).
The calendar sun of the two-stream model at a UTC epoch time: the calendar day with the time of day as its fraction, the declination and the Earth-Sun distance factor, from the date as the RRTMGP interface forms it and the orbital code of ERF_OrbCosZenith.H (orbital_params once per year into orbit, with the erf.rad_orbital_* overrides passed to it, then orbital_decl per call). set_solar_state() takes the sun of every sweep from here, and the immersed-boundary balance its erf.ibseb.sun_mode = two_stream sun, so the two cannot drift apart.
Referenced by ERF::ibseb_set_two_stream_sun().

