1 #ifndef _DATA_STRUCT_H_
2 #define _DATA_STRUCT_H_
7 #include <AMReX_ParmParse.H>
8 #include <AMReX_Print.H>
50 static std::string hadv_string =
"upstream3";
51 pp.query(
"horizontal_advection_scheme",hadv_string);
52 if (hadv_string ==
"centered4")
54 else if (hadv_string ==
"upstream3")
57 amrex::Error(
"Advection scheme unknown.");
59 pp.query(
"rdrag",
rdrag);
83 pp.query(
"Tcoef",
Tcoef);
84 pp.query(
"Scoef",
Scoef);
85 pp.query(
"rho0",
rho0);
98 static std::string ic_bc_type_string =
"custom";
99 pp.query(
"ic_bc_type", ic_bc_type_string);
101 if ( !ic_bc_type_string.compare(
"Custom") ||
102 !ic_bc_type_string.compare(
"custom") ) {
104 }
else if ( !ic_bc_type_string.compare(
"Real") ||
105 !ic_bc_type_string.compare(
"real") ) {
108 amrex::Error(
"Don't know this ic_bc_type");
112 static std::string coupling_type_string =
"TwoWay";
113 pp.query(
"coupling_type",coupling_type_string);
114 if (coupling_type_string ==
"TwoWay") {
116 }
else if (coupling_type_string ==
"OneWay") {
119 amrex::Abort(
"Dont know this coupling_type");
124 static std::string coriolis_type_string =
"beta_plane";
125 pp.query(
"coriolis_type",coriolis_type_string);
126 if ( (coriolis_type_string ==
"Custom") || (coriolis_type_string ==
"custom") ) {
128 }
else if ((coriolis_type_string ==
"Beta_Plane") ||
129 (coriolis_type_string ==
"beta_Plane") ||
130 (coriolis_type_string ==
"beta_plane") ||
131 (coriolis_type_string ==
"Beta_plane")) {
133 }
else if ( (coriolis_type_string ==
"Real") || (coriolis_type_string ==
"real") ) {
136 amrex::Abort(
"Don't know this coriolis_type");
143 amrex::Print() <<
"SOLVER CHOICE: " << std::endl;
144 amrex::Print() <<
"use_salt : " <<
use_salt << std::endl;
145 amrex::Print() <<
"use_coriolis : " <<
use_coriolis << std::endl;
146 amrex::Print() <<
"use_prestep : " <<
use_prestep << std::endl;
147 amrex::Print() <<
"use_uv3dmix : " <<
use_uv3dmix << std::endl;
148 amrex::Print() <<
"use_barotropic : " <<
use_barotropic << std::endl;
149 amrex::Print() <<
"flat_bathymetry : " <<
flat_bathymetry << std::endl;
150 amrex::Print() <<
"spatial_order : " <<
spatial_order << std::endl;
153 amrex::Print() <<
"Using custom initial and boundary conditions (No mesoscale forcing!)" << std::endl;
156 amrex::Print() <<
"Using REAL initial and boundary conditions (Mesoscale forcing!)" << std::endl;
160 amrex::Print() <<
"Horizontal advection scheme: " <<
"Centered 4" << std::endl;
163 amrex::Print() <<
"Horizontal advection scheme: " <<
"Upstream 3" << std::endl;
166 amrex::Error(
"Invalid horizontal advection scheme.");
170 amrex::Print() <<
"Using two-way coupling " << std::endl;
172 amrex::Print() <<
"Using one-way coupling " << std::endl;
177 amrex::Print() <<
"Using custom coriolis forcing " << std::endl;
179 amrex::Print() <<
"Using beta plane coriolis forcing " << std::endl;
181 amrex::Print() <<
"Using coriolis forcing loaded from file " << std::endl;
222 amrex::Real
R0 = 1028;
223 amrex::Real
S0 = 35.0;
224 amrex::Real
T0 = 5.0;
234 amrex::Real
g = 9.81;
AdvectionScheme
Definition: DataStruct.H:25
PlotfileType
Definition: DataStruct.H:37
AdvectionDir
Definition: DataStruct.H:21
Coord
Definition: DataStruct.H:17
Cor_Type
Definition: DataStruct.H:33
IC_BC_Type
Definition: DataStruct.H:29
CouplingType
Definition: DataStruct.H:13
Definition: DataStruct.H:41
bool use_baroclinic
Definition: DataStruct.H:199
amrex::Real coriolis_beta
Definition: DataStruct.H:231
bool use_uv3dmix
Definition: DataStruct.H:198
bool use_barotropic
Definition: DataStruct.H:200
IC_BC_Type ic_bc_type
Definition: DataStruct.H:208
amrex::Real coriolis_f0
Definition: DataStruct.H:230
amrex::Real Tcoef
Definition: DataStruct.H:225
void init_params()
Definition: DataStruct.H:43
std::string pp_prefix
Definition: DataStruct.H:187
AdvectionScheme Hadv_scheme
Definition: DataStruct.H:202
bool flat_bathymetry
Definition: DataStruct.H:189
Cor_Type coriolis_type
Definition: DataStruct.H:211
amrex::Real theta_b
Definition: DataStruct.H:215
amrex::Real theta_s
Definition: DataStruct.H:214
amrex::Real R0
Definition: DataStruct.H:222
amrex::Real tcline
Definition: DataStruct.H:216
amrex::Real rho0
Definition: DataStruct.H:227
int spatial_order
Definition: DataStruct.H:237
bool use_coriolis
Definition: DataStruct.H:194
amrex::Real rdrag
Definition: DataStruct.H:219
amrex::Real T0
Definition: DataStruct.H:224
void display()
Definition: DataStruct.H:141
amrex::Real Scoef
Definition: DataStruct.H:226
amrex::Real g
Definition: DataStruct.H:234
bool use_prestep
Definition: DataStruct.H:197
amrex::Real S0
Definition: DataStruct.H:223
CouplingType coupling_type
Definition: DataStruct.H:205
bool use_salt
Definition: DataStruct.H:191