75 "The grid stretching ratio must be greater than 1");
79 amrex::Print() <<
"Turning terrain on to enable grid stretching" << std::endl;
84 amrex::Print() <<
"Nominal zsurface height != 0, may result in unexpected behavior"
87 pp.get(
"initial_dz",
dz0);
94 static std::string moisture_model_string =
"None";
95 pp.query(
"moisture_model", moisture_model_string);
96 if (moisture_model_string ==
"SAM") {
98 }
else if (moisture_model_string ==
"Kessler") {
100 }
else if (moisture_model_string ==
"Kessler_NoRain") {
120 amrex::Abort(
"buoyancy_type must be 1, 2, 3 or 4");
124 static std::string lsm_model_string =
"None";
125 pp.query(
"land_surface_model", lsm_model_string);
126 if (lsm_model_string ==
"SLM") {
128 }
else if (lsm_model_string ==
"MM5") {
135 static std::string terrain_type_string =
"Static";
136 pp.query(
"terrain_type",terrain_type_string);
137 if (terrain_type_string ==
"Moving" || terrain_type_string ==
"moving") {
139 }
else if (terrain_type_string ==
"Static" || terrain_type_string ==
"static") {
142 amrex::Abort(
"terrain_type can be either Moving/moving or Static/static");
149 amrex::Error(
"Can't turn off lagged_delta_rt when terrain not moving");
156 pp.query(
"c_p",
c_p);
160 #if defined(ERF_USE_POISSON_SOLVE)
162 pp.query(
"project_initial_velocity", project_initial_velocity);
176 #if defined(ERF_USE_POISSON_SOLVE)
180 amrex::Abort(
"If you specify incompressible, you must specific no_substepping");
197 static std::string abl_driver_type_string =
"None";
198 pp.query(
"abl_driver_type",abl_driver_type_string);
200 if (!abl_driver_type_string.compare(
"PressureGradient")) {
202 }
else if (!abl_driver_type_string.compare(
"GeostrophicWind")) {
204 }
else if (!abl_driver_type_string.compare(
"None")){
207 amrex::Error(
"Don't know this abl_driver_type");
210 amrex::Vector<amrex::Real> abl_pressure_grad_in = {0.0, 0.0, 0.0};
211 pp.queryarr(
"abl_pressure_grad",abl_pressure_grad_in);
212 for(
int i = 0; i < AMREX_SPACEDIM; ++i)
abl_pressure_grad[i] = abl_pressure_grad_in[i];
214 amrex::Vector<amrex::Real> abl_geo_forcing_in = {0.0, 0.0, 0.0};
215 if(
pp.queryarr(
"abl_geo_forcing",abl_geo_forcing_in)) {
216 amrex::Print() <<
"Specified abl_geo_forcing: (";
217 for (
int i = 0; i < AMREX_SPACEDIM; ++i) {
221 amrex::Print() <<
")" << std::endl;
246 "Numerical diffusion coefficient must be between 0 & 1.");
255 for (
int lev = 0; lev <= max_level; lev++) {
260 for (
int lev = 0; lev <= max_level; lev++) {
262 amrex::Warning(
"\n*** WARNING: Moisture may not yet be compatible with PBL models, \n proceed with caution ***");
267 static std::string coupling_type_string =
"OneWay";
268 pp.query(
"coupling_type",coupling_type_string);
269 if (coupling_type_string ==
"TwoWay") {
271 }
else if (coupling_type_string ==
"OneWay") {
274 amrex::Abort(
"Dont know this coupling_type");
278 static std::string windfarm_type_string =
"Fitch";
280 pp.query(
"windfarm_type", windfarm_type_string);
283 if (windfarm_type_string ==
"Fitch") {
286 else if(windfarm_type_string ==
"EWP"){
290 amrex::Abort(
"Dont know this windfarm_type. Currently only Fitch and EWP models are supported.");
constexpr amrex::Real CONST_GRAV
Definition: ERF_Constants.H:21
constexpr amrex::Real R_d
Definition: ERF_Constants.H:10
void init_params()
Definition: AdvStruct.H:21
void init_params()
Definition: DiffStruct.H:21
bool use_terrain
Definition: DataStruct.H:399
bool rayleigh_damp_T
Definition: DataStruct.H:409
amrex::Real dz0
Definition: DataStruct.H:422
bool use_lagged_delta_rt
Definition: DataStruct.H:412
bool use_explicit_most
Definition: DataStruct.H:441
bool rayleigh_damp_V
Definition: DataStruct.H:407
amrex::Real poisson_reltol
Definition: DataStruct.H:395
amrex::Real rdOcp
Definition: DataStruct.H:417
void build_coriolis_forcings()
Definition: DataStruct.H:345
int ncorr
Definition: DataStruct.H:393
LandSurfaceType lsm_type
Definition: DataStruct.H:454
amrex::Real c_p
Definition: DataStruct.H:416
amrex::Real gravity
Definition: DataStruct.H:415
bool custom_rhotheta_forcing
Definition: DataStruct.H:434
bool custom_w_subsidence
Definition: DataStruct.H:436
bool rayleigh_damp_U
Definition: DataStruct.H:406
bool custom_geostrophic_profile
Definition: DataStruct.H:437
amrex::Real grid_stretching_ratio
Definition: DataStruct.H:420
amrex::Real longitude_lo
Definition: DataStruct.H:466
amrex::Real NumDiffCoeff
Definition: DataStruct.H:448
bool do_precip
Definition: DataStruct.H:463
bool test_mapfactor
Definition: DataStruct.H:397
bool use_NumDiff
Definition: DataStruct.H:447
bool custom_moisture_forcing
Definition: DataStruct.H:435
amrex::Real zsurf
Definition: DataStruct.H:421
int constant_density
Definition: DataStruct.H:391
bool use_moist_background
Definition: DataStruct.H:464
MoistureType moisture_type
Definition: DataStruct.H:452
bool custom_forcing_prim_vars
Definition: DataStruct.H:438
bool rayleigh_damp_W
Definition: DataStruct.H:408
WindFarmType windfarm_type
Definition: DataStruct.H:453
int buoyancy_type
Definition: DataStruct.H:400
amrex::Real poisson_abstol
Definition: DataStruct.H:394
amrex::Real latitude_lo
Definition: DataStruct.H:466
bool time_avg_vel
Definition: DataStruct.H:444
bool do_cloud
Definition: DataStruct.H:462
int project_every_stage
Definition: DataStruct.H:392
int ave_plane
Definition: DataStruct.H:460
void init_params()
Definition: SpongeStruct.H:17