5#ifdef REMORA_USE_NETCDF
29 Box domain =
geom[
lev].Domain();
34 const auto&
dom_lo = amrex::lbound(domain);
35 const auto&
dom_hi = amrex::ubound(domain);
55 const Real
eps= Real(1.0e-20);
117#pragma omp parallel if (Gpu::notInLaunchRegion())
193 Real
Cx = std::sqrt(
g *
cff);
232 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) =
mask_arr(
i,
j,0) * (
dest_arr(
dom_lo.x-1+
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill) +
tau * (
bry_val -
calc_arr(
dom_lo.x-1+
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill_calc)));
252 Real
Cx = std::sqrt(
g *
cff);
291 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) = (
cff *
calc_arr(
dom_hi.x+1-
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill_calc) +
Cx *
dest_arr(
dom_hi.x-
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill)) *
mask_arr(
i,
j,0) / (
cff+
Cx);
292 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) =
mask_arr(
i,
j,0) * (
dest_arr(
dom_hi.x+1-
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill) +
tau * (
bry_val -
calc_arr(
dom_hi.x+1-
mf_index_type[0],
j,
k,
icomp+
icomp_to_fill_calc)));
312 Real
Ce = std::sqrt(
g *
cff);
352 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) =
mask_arr(
i,
j,0) * (
dest_arr(
i,
dom_lo.y-1+
mf_index_type[1],
k,
icomp+
icomp_to_fill) +
tau * (
bry_val -
calc_arr(
i,
dom_lo.y-1+
mf_index_type[1],
k,
icomp+
icomp_to_fill_calc)));
372 Real
Ce = std::sqrt(
g *
cff);
411 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) = (
cff*
calc_arr(
i,
dom_hi.y+1-
mf_index_type[1],
k,
icomp+
icomp_to_fill_calc) +
Ce*
dest_arr(
i,
dom_hi.y-
mf_index_type[1],
k,
icomp+
icomp_to_fill)) *
mask_arr(
i,
j,0) / (
cff+
Ce);
412 dest_arr(
i,
j,
k,
icomp+
icomp_to_fill) =
mask_arr(
i,
j,0) * (
dest_arr(
i,
dom_hi.y+1-
mf_index_type[1],
k,
icomp+
icomp_to_fill) +
tau * (
bry_val -
calc_arr(
i,
dom_hi.y+1-
mf_index_type[1],
k,
icomp+
icomp_to_fill_calc)));
constexpr amrex::Real one
constexpr amrex::Real zero
mf_h setVal(geomdata.ProbHi(2))
AMREX_ALWAYS_ASSERT(!NSPeriodic||!EWPeriodic)
int ncons
Number of conserved scalars in the state (temperature + salt + passive scalars + biology tracers)
amrex::Vector< amrex::BCRec > domain_bcs_type
vector (over BCVars) of BCRecs
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_h
multilevel data container for current step's z velocities (largely unused; W stored separately)
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_pm
horizontal scaling factor: 1 / dx (2D)
void fill_from_bdyfiles(int lev, amrex::MultiFab &mf_to_fill, const amrex::MultiFab &mf_mask, const amrex::Real time, const int bccomp, const int bdy_var_type, const int icomp_to_fill, const int icomp_calc=0, const amrex::MultiFab &mf_calc=amrex::MultiFab(), const amrex::Real=zero)
Fill boundary data from netcdf file.
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_msku
land/sea mask at x-faces (2D)
int zeta_bc() const noexcept
int bdy_zeta() const noexcept
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_mskv
land/sea mask at y-faces (2D)
static SolverChoice solverChoice
Container for algorithmic choices.
amrex::Vector< amrex::Vector< std::unique_ptr< NCTimeSeriesBoundary > > > boundary_series
Vector over BdyVars of boundary series data containers.
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_zeta
free surface height (2D)
int ubar_bc() const noexcept
int vbar_bc() const noexcept
amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > vec_nudg_coeff
Climatology nudging coefficients.
amrex::Vector< std::unique_ptr< amrex::MultiFab > > vec_pn
horizontal scaling factor: 1 / dy (2D)
static constexpr int t
cons component Temp_comp
int cons(int icomp) noexcept