|
REMORA
Regional Modeling of Oceans Refined Adaptively
|
Class that stores all relevant simulation state data with methods for time stepping. More...
#include <REMORA.H>


Public Types | |
| enum class | DriverAtmosForcingMode : int { State = 0 , Flux } |
Public Member Functions | |
| REMORA () | |
| REMORA (const amrex::RealBox &rb, int max_level_in, const amrex::Vector< int > &n_cell_in, int coord, const amrex::Vector< amrex::IntVect > &ref_ratio, const amrex::Array< int, AMREX_SPACEDIM > &is_per, std::string prefix) | |
| virtual | ~REMORA () |
| void | Evolve () |
| Advance solution to final time. | |
| void | WriteAtFinalTime () |
| Write checkpoint and plotfiles at end of simulation. | |
| void | WriteAtIntermediateTime (int step, amrex::Real cur_time) |
| Write checkpoint and plotfiles at intermediate point of simulation, if needed. | |
| virtual void | ErrorEst (int lev, amrex::TagBoxArray &tags, amrex::Real time, int ngrow) override |
| Tag cells for refinement. | |
| void | InitData () |
| Initialize multilevel data. | |
| amrex::Real | EvolveOneStep (amrex::Real time, amrex::Real dt_request) |
| void | SetStartTime (double time) noexcept |
| Set remora.start_time. Call before InitData, which starts the clock from it. | |
| void | ConfigureDriverAtmosToOceanCoupling (bool use_coupling_driver, bool use_two_way_coupling, DriverAtmosForcingMode active_mode) |
| void | SetDriverAtmosToOceanForcingMode (DriverAtmosForcingMode mode) |
| void | SetLongwaveFromDriver () |
| void | GetDeckConfiguredAtmosStateLanes (std::array< bool, AtmosState::NumTypes > &deck_configured) const |
| void | GetAtmosToOceanRhoLayout (amrex::BoxArray &ba, amrex::DistributionMapping &dm) const |
| void | GetAtmosToOceanUFaceLayout (amrex::BoxArray &ba, amrex::DistributionMapping &dm) const |
| void | GetAtmosToOceanVFaceLayout (amrex::BoxArray &ba, amrex::DistributionMapping &dm) const |
| void | GetAtmosToOceanPsiCoordinates (const amrex::MultiFab *&x_psi, const amrex::MultiFab *&y_psi) const |
| void | GetAtmosToOceanPsiLonLat (const amrex::MultiFab *&lon_psi, const amrex::MultiFab *&lat_psi) const |
| void | GetLandSeaMasks (const amrex::MultiFab *&mskr, const amrex::MultiFab *&msku, const amrex::MultiFab *&mskv) const |
| void | init_only (int lev, amrex::Real time) |
| Init (NOT restart or regrid) | |
| void | restart () |
| void | post_timestep (int nstep, amrex::Real time, amrex::Real dt_lev) |
| Called after every level 0 timestep. | |
| void | PackSurfaceState (amrex::Vector< amrex::MultiFab * > &state, amrex::Real time, const amrex::MultiFab *weight_o2a_mf, const amrex::iMultiFab *index_o2a_mf, int max_stencil_size, const amrex::iMultiFab *dst_land_mask=nullptr) |
| Extracts SST from the 3D conservative state for the atmospheric driver. | |
| void | ApplyAtmosphericStates (const amrex::Vector< amrex::MultiFab * > &states, amrex::Real time) |
| Receives atmospheric states from the driver and applies unit conversions. | |
| void | ApplyAtmosphericFluxes (const amrex::Vector< amrex::MultiFab * > &states, amrex::Real time) |
| Receives atmospheric flux lanes from the driver and assembles REMORA flux inputs. | |
| void | sum_integrated_quantities (amrex::Real time) |
| Integrate conserved quantities for diagnostics. | |
| amrex::Real | volWgtSumMF (int lev, const amrex::MultiFab &mf, int comp, bool local, bool finemask) |
| Perform the volume-weighted sum. | |
| bool | is_it_time_for_action (int nstep, amrex::Real time, amrex::Real dt, int action_interval, amrex::Real action_per) |
| Decide if it is time to take an action. | |
| virtual void | MakeNewLevelFromCoarse (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| Make a new level using provided BoxArray and DistributionMapping and fill with interpolated coarse level data. Overrides the pure virtual function in AmrCore. | |
| virtual void | RemakeLevel (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| Remake an existing level using provided BoxArray and DistributionMapping and fill with existing fine and coarse data. Overrides the pure virtual function in AmrCore. | |
| virtual void | ClearLevel (int lev) override |
| Delete level data Overrides the pure virtual function in AmrCore. | |
| virtual void | MakeNewLevelFromScratch (int lev, amrex::Real time, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) override |
| Make a new level from scratch using provided BoxArray and DistributionMapping. Only used during initialization. Overrides the pure virtual function in AmrCore. | |
| void | set_grid_scale (int lev) |
| Set pm and pn arrays and x/y coords on level lev. | |
| void | set_grid_coords_from_grid_scale (int lev) |
| Set x/y coords on level lev based on pm and pn. | |
| void | set_curvilinear_terms_from_grid_scale (int lev) |
| Set curvilinear derivative terms on level lev based on pm and pn. | |
| void | set_grid_vars_averaged_down (int lev) |
| Set pm/pn by averaging down from higher-resolution grid. | |
| void | set_zeta_to_Ztavg (int lev, bool apply_eminusp=true) |
| Set zeta components to be equal to time-averaged Zt_avg1. | |
| void | calculate_nodal_masks (int lev) |
| Calculate u-, v-, and psi-point masks based on rho-point masks after analytic initialization. | |
| void | fill_3d_masks (int lev) |
| Copy maskr to all z levels. | |
| amrex::Real | estTimeStep (int lev) const |
| compute dt from CFL considerations | |
| void | remora_advance (int level, amrex::MultiFab &cons_old, amrex::MultiFab &cons_new, amrex::MultiFab &xvel_old, amrex::MultiFab &yvel_old, amrex::MultiFab &zvel_old, amrex::MultiFab &xvel_new, amrex::MultiFab &yvel_new, amrex::MultiFab &zvel_new, amrex::MultiFab &source, const amrex::Geometry fine_geom, const amrex::Real dt, const amrex::Real time) |
| Interface for advancing the data at one level by one "slow" timestep. | |
| amrex::MultiFab & | build_fine_mask (int lev) |
| Make mask to zero out covered cells (for mesh refinement) | |
| void | WritePlotFile (int istep) |
| main driver for writing AMReX plotfiles | |
| void | WriteMultiLevelPlotfileWithBathymetry (const std::string &plotfilename, int nlevels, const amrex::Vector< const amrex::MultiFab * > &mf, const amrex::Vector< const amrex::MultiFab * > &mf_nd, const amrex::Vector< const amrex::MultiFab * > &mf_u, const amrex::Vector< const amrex::MultiFab * > &mf_v, const amrex::Vector< const amrex::MultiFab * > &mf_w, const amrex::Vector< const amrex::MultiFab * > &mf_2d_rho, const amrex::Vector< const amrex::MultiFab * > &mf_2d_u, const amrex::Vector< const amrex::MultiFab * > &mf_2d_v, const amrex::Vector< std::string > &varnames_3d, const amrex::Vector< std::string > &varnames_2d_rho, const amrex::Vector< std::string > &varnames_2d_u, const amrex::Vector< std::string > &varnames_2d_v, const amrex::Vector< amrex::Geometry > &my_geom, double time, const amrex::Vector< int > &level_steps, const amrex::Vector< amrex::IntVect > &rr, const std::string &versionName="HyperCLaw-V1.1", const std::string &levelPrefix="Level_", const std::string &mfPrefix="Cell", const amrex::Vector< std::string > &extra_dirs=amrex::Vector< std::string >()) const |
| write out particular data to an AMReX plotfile | |
| void | WriteGenericPlotfileHeaderWithBathymetry (std::ostream &HeaderFile, int nlevels, const amrex::Vector< amrex::BoxArray > &bArray, const amrex::Vector< std::string > &varnames_3d, const amrex::Vector< std::string > &varnames_2d_rho, const amrex::Vector< std::string > &varnames_2d_u, const amrex::Vector< std::string > &varnames_2d_v, const amrex::Vector< amrex::Geometry > &my_geom, double time, const amrex::Vector< int > &level_steps, const amrex::Vector< amrex::IntVect > &rr, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix) const |
| write out header data for an AMReX plotfile | |
| void | Advance (int lev, amrex::Real time, amrex::Real dt_lev, int iteration, int ncycle) |
| advance a single level for a single time step | |
| void | register_coarse_data (int lev, amrex::Real time, amrex::Real dt_lev) |
| register this level's completed step as the coarse bracket the next finer level interpolates within | |
| void | roll_2d_snapshot (amrex::Vector< std::unique_ptr< amrex::MultiFab > > &old_v, amrex::Vector< std::unique_ptr< amrex::MultiFab > > &new_v, int lev, const amrex::MultiFab &src, const amrex::MultiFab &like) |
| roll a two-snapshot history of a level's end-of-step 2D state | |
| void | set_2d_cf_bcs (int lev, amrex::Real time, int know, int knew) |
| set this level's barotropic contact points from its parent, mass-conservingly | |
| void | set_2d_cf_flux (int lev, amrex::Real time, amrex::MultiFab &mf_DUon, amrex::MultiFab &mf_DVom) |
| impose the parent's barotropic mass flux on the coarse-fine interface faces | |
| void | store_2d_flux (int lev) |
| store this level's barotropic mass flux per unit cell edge length | |
| void | reflux_to (int lev) |
| apply the lev/lev+1 tracer flux correction onto lev | |
| void | check_cf_metrics (int crse_lev) |
| check that fine cell edges sum to the coarse edge across an interface | |
| void | check_plot_nodal_z (const amrex::Vector< const amrex::MultiFab * > &nd, const amrex::Vector< amrex::Geometry > &g) |
| void | setup_step (int lev, amrex::Real time, amrex::Real dt_lev) |
| Set everything up for a step on a level. | |
| void | advance_3d_ml (int lev, amrex::Real dt_lev) |
| 3D advance on a single level | |
| void | advance_2d_onestep (int lev, amrex::Real dt_lev, amrex::Real dtfast_lev, int my_iif, int nfast_counter) |
| 2D advance, one predictor/corrector step | |
| void | advance_2d (int lev, amrex::MultiFab const *mf_rhoS, amrex::MultiFab const *mf_rhoA, amrex::MultiFab *mf_ru2d, amrex::MultiFab *mf_rv2d, amrex::MultiFab *mf_rufrc, amrex::MultiFab *mf_rvfrc, amrex::MultiFab *mf_Zt_avg1, std::unique_ptr< amrex::MultiFab > &mf_DU_avg1, std::unique_ptr< amrex::MultiFab > &mf_DU_avg2, std::unique_ptr< amrex::MultiFab > &mf_DV_avg1, std::unique_ptr< amrex::MultiFab > &mf_DV_avg2, std::unique_ptr< amrex::MultiFab > &mf_rubar, std::unique_ptr< amrex::MultiFab > &mf_rvbar, std::unique_ptr< amrex::MultiFab > &mf_rzeta, std::unique_ptr< amrex::MultiFab > &mf_ubar, std::unique_ptr< amrex::MultiFab > &mf_vbar, amrex::MultiFab *mf_zeta, amrex::MultiFab const *mf_h, amrex::MultiFab const *mf_pm, amrex::MultiFab const *mf_pn, amrex::MultiFab const *mf_fcor, amrex::MultiFab const *mf_visc2_p, amrex::MultiFab const *mf_visc2_r, amrex::MultiFab const *mf_mskr, amrex::MultiFab const *mf_msku, amrex::MultiFab const *mf_mskv, amrex::MultiFab const *mf_mskp, amrex::Real dtfast_lev, bool predictor_2d_step, bool first_2d_step, int my_iif, int &next_indx1) |
| Perform a 2D predictor (predictor_2d_step=True) or corrector (predictor_2d_step=False) step. | |
| void | advance_3d (int lev, amrex::MultiFab &mf_cons, amrex::MultiFab &mf_u, amrex::MultiFab &mf_v, amrex::MultiFab *mf_sstore, amrex::MultiFab *mf_ru, amrex::MultiFab *mf_rv, std::unique_ptr< amrex::MultiFab > &mf_DU_avg1, std::unique_ptr< amrex::MultiFab > &mf_DU_avg2, std::unique_ptr< amrex::MultiFab > &mf_DV_avg1, std::unique_ptr< amrex::MultiFab > &mf_DV_avg2, std::unique_ptr< amrex::MultiFab > &mf_ubar, std::unique_ptr< amrex::MultiFab > &mf_vbar, std::unique_ptr< amrex::MultiFab > &mf_Akv, std::unique_ptr< amrex::MultiFab > &mf_Akt, std::unique_ptr< amrex::MultiFab > &mf_Hz, std::unique_ptr< amrex::MultiFab > &mf_Huon, std::unique_ptr< amrex::MultiFab > &mf_Hvom, std::unique_ptr< amrex::MultiFab > &mf_z_w, amrex::MultiFab const *mf_h, amrex::MultiFab const *mf_pm, amrex::MultiFab const *mf_pn, amrex::MultiFab const *mf_mskr, amrex::MultiFab const *mf_msku, amrex::MultiFab const *mf_mskv, const int N, const amrex::Real dt_lev) |
| Advance the 3D variables. | |
| void | advance_biology (int lev, amrex::MultiFab const &mf_cons_old, amrex::MultiFab &mf_cons_new, int N, amrex::Real dt_lev) |
| Apply biological tracer source/sink terms. | |
| void | bulk_fluxes (int lev, amrex::MultiFab *mf_cons, amrex::MultiFab *mf_uwind, amrex::MultiFab *mf_vwind, amrex::MultiFab *mf_Tair, amrex::MultiFab *mf_qair, amrex::MultiFab *mf_Pair, amrex::MultiFab *mf_srflx, amrex::MultiFab *mf_longwave_down, amrex::MultiFab *mf_evap, amrex::MultiFab *mf_sustr, amrex::MultiFab *mf_svstr, amrex::MultiFab *mf_stflux, amrex::MultiFab *mf_lrflx, amrex::MultiFab *mf_lhflx, amrex::MultiFab *mf_shflx, const int N) |
| Calculate bulk temperature, salinity, wind fluxes. | |
| void | prestep (int lev, amrex::MultiFab &mf_uold, amrex::MultiFab &mf_vold, amrex::MultiFab &mf_u, amrex::MultiFab &mf_v, amrex::MultiFab *mf_ru, amrex::MultiFab *mf_rv, amrex::MultiFab &S_old, amrex::MultiFab &S_new, amrex::MultiFab &mf_W, amrex::MultiFab &mf_DC, const amrex::MultiFab *mf_z_r, const amrex::MultiFab *mf_z_w, const amrex::MultiFab *mf_h, const amrex::MultiFab *mf_pm, const amrex::MultiFab *mf_pn, const amrex::MultiFab *mf_sustr, const amrex::MultiFab *mf_svstr, const amrex::MultiFab *mf_bustr, const amrex::MultiFab *mf_bvstr, const amrex::MultiFab *mf_msku, const amrex::MultiFab *mf_mskv, const int iic, const int nfirst, const int nnew, int nstp, int nrhs, int N, const amrex::Real dt_lev) |
| Wrapper function for prestep. | |
| void | prestep_t_advection (int lev, const amrex::Box &tbx, const amrex::Box &gbx, const amrex::Array4< amrex::Real > &tempold, const amrex::Array4< amrex::Real > &tempcache, const amrex::Array4< amrex::Real > &Hz, const amrex::Array4< amrex::Real > &Huon, const amrex::Array4< amrex::Real > &Hvom, const amrex::Array4< amrex::Real > &W, const amrex::Array4< amrex::Real > &DC, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real > &sstore, const amrex::Array4< amrex::Real const > &z_w, const amrex::Array4< amrex::Real const > &h, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const amrex::Array4< int const > &river_pos, const amrex::Array4< amrex::Real const > &river_source, int iic, int ntfirst, int nrhs, int N, const amrex::Real dt_lev) |
| Prestep advection calculations for the tracers. | |
| void | rhs_t_3d (int lev, const amrex::Box &bx, const amrex::Array4< amrex::Real > &t, const amrex::Array4< amrex::Real const > &tempstore, const amrex::Array4< amrex::Real const > &Huon, const amrex::Array4< amrex::Real const > &Hvom, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &W, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real const > &mskr, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const amrex::Array4< int const > &river_pos, const amrex::Array4< amrex::Real const > &river_source, int nrhs, int nnew, int N, const amrex::Real dt_lev, const amrex::Array4< amrex::Real > &fx_reg=amrex::Array4< amrex::Real >(), const amrex::Array4< amrex::Real > &fy_reg=amrex::Array4< amrex::Real >()) |
| RHS terms for tracer. | |
| void | rhs_uv_3d (int lev, const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Array4< amrex::Real const > &uold, const amrex::Array4< amrex::Real const > &vold, const amrex::Array4< amrex::Real > &ru, const amrex::Array4< amrex::Real > &rv, const amrex::Array4< amrex::Real > &rufrc, const amrex::Array4< amrex::Real > &rvfrc, const amrex::Array4< amrex::Real const > &sustr, const amrex::Array4< amrex::Real const > &svstr, const amrex::Array4< amrex::Real const > &bustr, const amrex::Array4< amrex::Real const > &bvstr, const amrex::Array4< amrex::Real const > &Huon, const amrex::Array4< amrex::Real const > &Hvom, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &W, const amrex::Array4< amrex::Real > &FC, int nrhs, int N) |
| RHS terms for 3D momentum. | |
| void | rhs_uv_2d (int lev, const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Array4< amrex::Real const > &uold, const amrex::Array4< amrex::Real const > &vold, const amrex::Array4< amrex::Real > &ru, const amrex::Array4< amrex::Real > &rv, const amrex::Array4< amrex::Real const > &Duon, const amrex::Array4< amrex::Real const > &Dvom, const int nrhs) |
| RHS terms for 2D momentum. | |
| void | rho_eos (const amrex::Box &bx, const amrex::Array4< amrex::Real const > &state, const amrex::Array4< amrex::Real > &rho, const amrex::Array4< amrex::Real > &rhoA, const amrex::Array4< amrex::Real > &rhoS, const amrex::Array4< amrex::Real > &bvf, const amrex::Array4< amrex::Real > &alpha, const amrex::Array4< amrex::Real > &beta, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_w, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &h, const amrex::Array4< amrex::Real const > &mskr, const int N) |
| Wrapper around equation of state calculation. | |
| void | lin_eos (const amrex::Box &bx, const amrex::Array4< amrex::Real const > &state, const amrex::Array4< amrex::Real > &rho, const amrex::Array4< amrex::Real > &rhoA, const amrex::Array4< amrex::Real > &rhoS, const amrex::Array4< amrex::Real > &bvf, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_w, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &h, const amrex::Array4< amrex::Real const > &mskr, const int N) |
| Calculate density and related quantities from linear equation of state. | |
| void | nonlin_eos (const amrex::Box &bx, const amrex::Array4< amrex::Real const > &state, const amrex::Array4< amrex::Real > &rho, const amrex::Array4< amrex::Real > &rhoA, const amrex::Array4< amrex::Real > &rhoS, const amrex::Array4< amrex::Real > &bvf, const amrex::Array4< amrex::Real > &alpha, const amrex::Array4< amrex::Real > &beta, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_w, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &h, const amrex::Array4< amrex::Real const > &mskr, const int N) |
| Calculate density and related quantities from nonlinear equation of state. | |
| void | prsgrd (const amrex::Box &bx, const amrex::Box &gbx, const amrex::Box &utbx, const amrex::Box &vtbx, const amrex::Array4< amrex::Real > &ru, const amrex::Array4< amrex::Real > &rv, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &rho, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &z_w, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const int nrhs, const int N) |
| Calculate pressure gradient. | |
| void | prestep_diffusion (const amrex::Box &bx, const amrex::Box &gbx, const int ioff, const int joff, const amrex::Array4< amrex::Real > &vel, const amrex::Array4< amrex::Real const > &vel_old, const amrex::Array4< amrex::Real > &rvel, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &Akv, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real const > &sstr, const amrex::Array4< amrex::Real const > &bstr, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const int iic, const int ntfirst, const int nnew, int nstp, int nrhs, int N, const amrex::Real lambda, const amrex::Real dt_lev) |
| Update velocities or tracers with diffusion/viscosity as the last part of the prestep. | |
| void | vert_visc_3d (const amrex::Box &bx, const int ioff, const int joff, const amrex::Array4< amrex::Real > &phi, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real > &Hzk, const amrex::Array4< amrex::Real > &AK, const amrex::Array4< amrex::Real const > &Akv, const amrex::Array4< amrex::Real > &BC, const amrex::Array4< amrex::Real > &DC, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real > &CF, const int nnew, const int N, const amrex::Real dt_lev) |
| Calculate effects of vertical viscosity or diffusivity. | |
| void | update_massflux_3d (int lev, const amrex::Box &bx, const int ioff, const int joff, const amrex::Array4< amrex::Real > &phi, const amrex::Array4< amrex::Real > &phibar, const amrex::Array4< amrex::Real > &Hphi, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pm_or_pn, const amrex::Array4< amrex::Real const > &Dphi1, const amrex::Array4< amrex::Real const > &Dphi2, const amrex::Array4< amrex::Real > &DC, const amrex::Array4< amrex::Real > &FC, const amrex::Array4< amrex::Real const > &msk, const int nnew) |
| Correct mass flux. | |
| void | vert_mean_3d (const amrex::Box &bx, const int ioff, const int joff, const amrex::Array4< amrex::Real > &phi, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &Dphi_avg1, const amrex::Array4< amrex::Real > &DC, const amrex::Array4< amrex::Real > &CF, const amrex::Array4< amrex::Real const > &pm_or_pn, const amrex::Array4< amrex::Real const > &msk, const int nnew, const int N) |
| Adjust 3D momentum variables based on vertical mean momentum. | |
| void | uv3dmix (const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Array4< amrex::Real > &u, const amrex::Array4< amrex::Real > &v, const amrex::Array4< amrex::Real const > &uold, const amrex::Array4< amrex::Real const > &vold, const amrex::Array4< amrex::Real > &rufrc, const amrex::Array4< amrex::Real > &rvfrc, const amrex::Array4< amrex::Real const > &visc2_p, const amrex::Array4< amrex::Real const > &visc2_r, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &mskp, int nrhs, int nnew, const amrex::Real dt_lev) |
| Harmonic viscosity. | |
| void | t3dmix2 (const amrex::Box &bx, const amrex::Array4< amrex::Real > &state, const amrex::Array4< amrex::Real > &state_rhs, const amrex::Array4< amrex::Real const > &diff2, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const amrex::Real dt_lev, const int ncomp, const int N) |
| Wrapper for harmonic diffusivity for tracers. | |
| void | t3dmix2_s (const amrex::Box &bx, const amrex::Array4< amrex::Real > &state, const amrex::Array4< amrex::Real > &state_rhs, const amrex::Array4< amrex::Real const > &diff2, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const amrex::Real dt_lev, const int ncomp) |
| Harmonic diffusivity for tracers along S-coordinate level surfaces. | |
| void | t3dmix2_geo (const amrex::Box &bx, const amrex::Array4< amrex::Real > &state, const amrex::Array4< amrex::Real > &state_rhs, const amrex::Array4< amrex::Real const > &diff2, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &z_r, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Array4< amrex::Real const > &msku, const amrex::Array4< amrex::Real const > &mskv, const amrex::Real dt_lev, const int ncomp, const int N) |
| Harmonic diffusivity for tracers along geopotential surfaces. | |
| void | coriolis (const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Array4< amrex::Real const > &uold, const amrex::Array4< amrex::Real const > &vold, const amrex::Array4< amrex::Real > &ru, const amrex::Array4< amrex::Real > &rv, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &fomn, int nrhs, int nr) |
| Calculate Coriolis terms. | |
| void | curvilinear (const amrex::Box &bx, const amrex::Box &xbx, const amrex::Box &ybx, const amrex::Array4< amrex::Real const > &uold, const amrex::Array4< amrex::Real const > &vold, const amrex::Array4< amrex::Real > &ru, const amrex::Array4< amrex::Real > &rv, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &dndx, const amrex::Array4< amrex::Real const > &dmde, int nrhs, int nr) |
| Calculate curvilinear advection terms. | |
| void | apply_clim_nudg (const amrex::Box &bx, int ioff, int joff, const amrex::Array4< amrex::Real > &var, const amrex::Array4< amrex::Real const > &var_old, const amrex::Array4< amrex::Real const > &var_clim, const amrex::Array4< amrex::Real const > &clim_coeff, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Real dt_lev=zero) |
| Apply climatology nudging. | |
| void | set_2darrays (int lev) |
| Set 2D momentum arrays from 3D momentum. | |
| void | set_zeta_average (int lev) |
| Set Zt_avg1 to zeta. | |
| void | set_zeta (int lev) |
| Initialize zeta from file or analytic. | |
| void | set_zeta_averaged_down (int lev) |
| Copy over zeta data that has been averaged down from high res. | |
| void | set_bathymetry (int lev) |
| Initialize bathymetry from file or analytic. | |
| void | set_bathymetry_averaged_down (int lev) |
| Copy over bathymetry data that has been averaged down from high resolution input netcdf file. | |
| void | set_coriolis (int lev) |
| Initialize Coriolis factor from file or analytic. | |
| void | set_masks (int lev) |
| Initialize land-sea masks from file or analytic. | |
| void | set_masks_averaged_down (int lev) |
| Copy this level's land-sea mask out of the full-domain mask that was coarsened down from hires_grid_level. | |
| void | coarsen_masks_with_grow_cells (int crse_lev) |
| Coarsen the full-domain rho-mask from crse_lev+1 onto crse_lev, grow cells included, by the rule that a coarse cell is land only if all its fine cells are land. | |
| void | coarsen_bathymetry_with_grow_cells (int crse_lev) |
| Coarsen the full-domain bathymetry from crse_lev+1 onto crse_lev, grow cells included, weighted by the land/sea mask. | |
| void | refine_masks_with_grow_cells (int fine_lev) |
| Inject the full-domain rho-mask from fine_lev-1 onto fine_lev, piecewise constant, grow cells included. | |
| void | ensure_full_domain_masks (int top_lev) |
| Make sure the full-domain rho-mask exists on levels 0 through top_lev. | |
| void | update_nodal_masks (int lev) |
| Rebuild the u-, v- and psi-point masks from vec_mskr and fill their ghosts. | |
| void | update_avgdown_masks (int crse_lev) |
| Make sure the coarse masks the average-down kernels read sit on the coarsened layout of level crse_lev+1, rebuilding them if a regrid has moved it. | |
| void | clear_avgdown_masks (int lev) |
| Drop the cached average-down masks of every level pair that involves lev. | |
| void | check_mask_consistency () |
| Check every level pair's masks against each other, and every level's mask values, reporting according to remora.mask_consistency. | |
| void | stretch_transform (int lev) |
| Calculate vertical stretched coordinates. | |
| void | stretch_transform_full_domain (int lev, const amrex::MultiFab &mf_h, const amrex::MultiFab &mf_zeta, amrex::MultiFab &mf_z_r, amrex::MultiFab &mf_z_w) |
| Calculate z_r and z_w on full-domain arrays at a level not yet created. | |
| void | init_set_vmix (int lev) |
| Initialize vertical mixing coefficients from file or analytic. | |
| void | set_analytic_vmix (int lev) |
| Set vertical mixing coefficients from analytic. | |
| void | init_gls_vmix (int lev, SolverChoice solver_choice) |
| Initialize GLS variables. | |
| void | gls_prestep (int lev, amrex::MultiFab *mf_gls, amrex::MultiFab *mf_tke, amrex::MultiFab &mf_W, amrex::MultiFab *mf_msku, amrex::MultiFab *mf_mskv, const int nstp, const int nnew, const int iic, const int ntfirst, const int N, const amrex::Real dt_lev) |
| Prestep for GLS calculation. | |
| void | gls_corrector (int lev, amrex::MultiFab *mf_gls, amrex::MultiFab *mf_tke, amrex::MultiFab &mf_W, amrex::MultiFab *mf_Akv, amrex::MultiFab *mf_Akt, amrex::MultiFab *mf_Akk, amrex::MultiFab *mf_Akp, amrex::MultiFab *mf_mskr, amrex::MultiFab *mf_msku, amrex::MultiFab *mf_mskv, const int nstp, const int nnew, const int N, const amrex::Real dt_lev) |
| Corrector step for GLS calculation. | |
| void | scale_rhs_vars (int lev) |
| Scale RHS momentum variables by 1/cell area, needed before FillPatch to different levels. | |
| void | scale_rhs_vars_inv (int lev) |
| Scale RHS momentum variables by cell area, needed after FillPatch to different levels. | |
| void | set_smflux (int lev) |
| Initialize or calculate surface momentum flux from file or analytic. | |
| void | set_surface_state (int lev) |
| Initialize or calculate wind speed and other surface state vars from file or analytic. | |
| void | set_hmixcoef (int lev) |
| Initialize horizontal mixing coefficients. | |
| void | set_drag (int lev) |
| Initialize or calculate bottom drag. | |
| void | set_weights (int lev) |
| Set weights for averaging 3D variables to 2D. | |
| void | FillBdyCCVels (int lev, amrex::MultiFab &mf_cc_vel) |
| Fill the physical boundary conditions for cell-centered velocity (diagnostic only) | |
| void | FillPatch (int lev, amrex::Real time, amrex::MultiFab &mf_to_be_filled, amrex::Vector< amrex::MultiFab * > const &mfs, const int bccomp, const int bdy_var_type=BdyVars::null, const int icomp=0, const bool fill_all=true, const bool fill_set=false, const int n_not_fill=0, const int icomp_calc=0, const amrex::Real dt=zero, const amrex::MultiFab &mf_calc=amrex::MultiFab(), amrex::Vector< amrex::MultiFab * > const &mfs_crse_old={}, amrex::Vector< amrex::MultiFab * > const &mfs_crse_new={}) |
| Fill a new MultiFab by copying in phi from valid region and filling ghost cells. | |
| void | FillPatchNoBC (int lev, amrex::Real time, amrex::MultiFab &mf_to_be_filled, amrex::Vector< amrex::MultiFab * > const &mfs, const int bdy_var_type=BdyVars::null, const int icomp=0, const bool fill_all=true, const bool fill_set=false, amrex::Vector< amrex::MultiFab * > const &mfs_crse_old={}, amrex::Vector< amrex::MultiFab * > const &mfs_crse_new={}) |
| Fill a new MultiFab by copying in phi from valid region and filling ghost cells without applying boundary conditions. | |
| 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. | |
| void | FillCoarsePatchPC (int lev, amrex::Real time, amrex::MultiFab *mf_fine, amrex::MultiFab *mf_crse, const int bccomp, const int bdy_var_type=BdyVars::null, const int icomp=0, const bool fill_all=true, const int n_not_fill=0, const int icomp_calc=0, const amrex::Real dt=zero, const amrex::MultiFab &mf_calc=amrex::MultiFab()) |
| fill an entire multifab by interpolating from the coarser level using the piecewise constant interpolater | |
| void | FillCoarsePatch (int lev, amrex::Real time, amrex::MultiFab *mf_fine, amrex::MultiFab *mf_crse, const int bccomp, const int bdy_var_type=BdyVars::null, const int icomp=0, const bool fill_all=true, const int n_not_fill=0, const int icomp_calc=0, const amrex::Real dt=zero, const amrex::MultiFab &mf_calc=amrex::MultiFab()) |
| fill an entire multifab by interpolating from the coarser level | |
| void | FillCoarsePatchMap (int lev, amrex::Real time, amrex::MultiFab *mf_fine, amrex::MultiFab *mf_crse, const int bccomp, const int bdy_var_type=BdyVars::null, const int icomp=0, const bool fill_all=true, const int n_not_fill=0, const int icomp_calc=0, const amrex::Real dt=zero, const amrex::MultiFab &mf_calc=amrex::MultiFab(), amrex::Interpolater *mapper=nullptr) |
| fill an entire multifab by interpolating from the coarser level, explicitly specifying interpolator to use | |
| void | init_stretch_coeffs () |
| initialize and calculate stretch coefficients | |
| void | calc_stretch_coeffs () |
| calculate vertical stretch coefficients | |
| void | init_beta_plane_coriolis (int lev) |
| Calculate Coriolis parameters from beta plane parametrization. | |
| void | init_bathymetry_full_domain_from_analytic () |
| Full domain bathymetry data initialization from analytic. | |
| void | init_masks_full_domain_from_analytic () |
| Full domain land-sea mask initialization from analytic. | |
| void | set_init_data_averaged_down (int lev) |
| Problem initialization from averaged-down high resolution data. | |
| void | init_data_from_netcdf (int lev) |
| Problem initialization from NetCDF file. | |
| void | init_biology_from_netcdf (int lev) |
| Biology initialization from NetCDF file. | |
| void | init_scalars_from_netcdf (int lev) |
| Passive (dye) scalar initialization from NetCDF file. Called from init_data_from_netcdf: dye follows remora.ic_type rather than having a source flag of its own. | |
| void | init_biology_ic (int lev) |
| Initialize biology tracers from whichever source remora.biology_ic_type selects. Call after the physical fields exist: the analytic profiles are functions of temperature. | |
| void | init_biology_ic_full_domain () |
| Full-domain counterpart of init_biology_ic, for the hires_init_level average-down path. | |
| void | init_data_full_domain_from_netcdf () |
| High resolution roblem initialization from NetCDF file. | |
| void | init_biology_full_domain_from_netcdf () |
| Full-domain high-res biology initialization from NetCDF file. | |
| void | init_scalars_full_domain_from_netcdf () |
| Full-domain high-res passive (dye) scalar initialization from NetCDF file. | |
| void | init_bdry_from_netcdf (int lev) |
| Boundary data initialization from NetCDF file. | |
| void | init_masks_from_netcdf (int lev) |
| Mask data initialization from NetCDF file. | |
| void | init_masks_full_domain_from_netcdf () |
| Full domain high-res mask data initialization from NetCDF file. | |
| void | init_bathymetry_from_netcdf (int lev) |
| Bathymetry data initialization from NetCDF file. | |
| void | init_bathymetry_full_domain_from_netcdf () |
| Full domain high-res bathymetry data initialization from NetCDF file. | |
| void | init_grid_vars_from_netcdf (int lev) |
| Grid variable initialization from NetCDF file. | |
| void | init_grid_vars_full_domain_from_netcdf () |
| Full domain high-res grid variable initialization from NetCDF file. | |
| void | extrapolate_metric_to_physical_boundaries (amrex::MultiFab &mf, const amrex::Geometry &geom) |
| Extrapolate grid metrics to edge of MultiFab. | |
| void | init_zeta_from_netcdf (int lev) |
| Sea-surface height data initialization from NetCDF file. | |
| void | init_zeta_full_domain_from_netcdf () |
| Full-domain high res sea-surface height data initialization from NetCDF file. | |
| void | init_coriolis_from_netcdf (int lev) |
| Coriolis parameter data initialization from NetCDF file. | |
| void | init_clim_nudg_coeff_from_netcdf (int lev) |
| Climatology nudging coefficient initialization from NetCDF file. | |
| void | init_clim_nudg_coeff (int lev) |
| Wrapper to initialize climatology nudging coefficient. | |
| void | init_riv_pos_from_netcdf (int lev) |
| const amrex::DistributionMapping & | full_domain_dmap () |
| The shared full-domain DistributionMapping, built on first use. | |
| void | allocate_bathymetry_grid_vars_full_domain () |
| Allocate multifabs for storing full-domain bathymetry and grid vars data. | |
| void | allocate_init_full_domain () |
| Allocate multifabs for storing full-domain high resolution initial data. | |
| void | convert_inv_days_to_inv_s (amrex::MultiFab *) |
| Convert data in a multifab from inverse days to inverse seconds. | |
| void | mask_arrays_for_write (int lev, amrex::Real fill_value, amrex::Real fill_where) |
| Mask data arrays before writing output. | |
| void | average_down_with_grow_cells (int lev, amrex::Vector< std::unique_ptr< amrex::MultiFab > > &mf, bool use_mask=false) |
| Average down from level lev+1 to lev in mf, including grow cells. | |
| void | build_covered_mask (int crse_lev, amrex::MultiFab &covered) |
| Average one field down a level, weighted by the land/sea mask. | |
| void | restore_perimeter_faces (const amrex::MultiFab &saved, amrex::MultiFab &mf, const amrex::MultiFab &covered, int dir, int ncomp) |
| put back the coarse normal-velocity faces on the fine patch's perimeter | |
| void | average_down_masked (int crse_lev, const amrex::MultiFab &S_fine, amrex::MultiFab &S_crse, const amrex::MultiFab &msk_fine, const amrex::MultiFab &cmsk, int ncomp, int face_dir) |
| void | init_full_domain_from_analytic () |
| Initialize high-resolution initial data, zeta included, from analytic functions. | |
| int | xvel_bc () const noexcept |
| int | yvel_bc () const noexcept |
| int | zvel_bc () const noexcept |
| int | ubar_bc () const noexcept |
| int | vbar_bc () const noexcept |
| int | zeta_bc () const noexcept |
| int | tke_bc () const noexcept |
| int | foextrap_periodic_bc () const noexcept |
| int | foextrap_bc () const noexcept |
| int | u2d_simple_bc () const noexcept |
| int | v2d_simple_bc () const noexcept |
| int | num_bc_vars () const noexcept |
| int | num_passive_scalars () const noexcept |
| Number of passive (dye) scalars in the state, not counting biology tracers. | |
| void | writeJobInfo (const std::string &dir) const |
| Write job info to stdout. | |
| amrex::Real | get_t_old (int lev) const |
| Accessor method for t_old to expose to outside classes. | |
| double | model_time (amrex::Real elapsed) const noexcept |
| Time on the model clock, in seconds, of an elapsed time such as t_new. | |
| amrex::Real | elapsed_time (double time) const noexcept |
| Elapsed time since start_time of a time on the model clock. | |
| int | bio_comp_start () const noexcept |
| First cons component of the biology block. Problem setups need this to write biology initial conditions, since the passive scalars sit between salinity and the biology tracers. | |
| int | num_bio () const noexcept |
| Number of biology tracers carried in the state. | |
| int | num_scalar () const noexcept |
| Number of passive (dye) scalars carried in the state. | |
| int | bdy_cons (int icomp) const noexcept |
| Accessors for the ncons-dependent entries of BdyVars. | |
| int | bdy_ubar () const noexcept |
| int | bdy_vbar () const noexcept |
| int | bdy_zeta () const noexcept |
| int | num_bdy_vars () const noexcept |
Static Public Member Functions | |
| static constexpr bool | DriverUsesStateForcing (DriverAtmosForcingMode mode) noexcept |
| static amrex::Box | clim_nudg_momentum_box (const amrex::Box &nodal_bx, int dir, const amrex::Box &domain, bool is_periodic) |
| Shrink an x- or y-nodal momentum tilebox to the faces ROMS nudges. | |
| static void | writeBuildInfo (std::ostream &os) |
| Write build info to os. | |
| static void | print_banner (MPI_Comm, std::ostream &) |
| static void | print_usage (MPI_Comm, std::ostream &) |
| static void | print_error (MPI_Comm, const std::string &msg) |
| static void | print_summary (std::ostream &) |
| static void | print_tpls (std::ostream &) |
| AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE amrex::Real | bulk_psiu (amrex::Real ZoL) |
| Evaluate stability function psi for wind speed. | |
| AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE amrex::Real | bulk_psit (amrex::Real ZoL) |
| Evaluate stability function psi for moisture and heat. | |
Public Attributes | |
| bool | m_reported_atm_flux_validation = false |
| Latch so the flux validation block prints once per run unless remora.v >= 1. | |
| amrex::Real | m_warned_surface_temp_min = amrex::Real(273.15 - 2.5) |
| amrex::Real | m_warned_surface_temp_max = amrex::Real(273.15 + 40.0) |
| amrex::Long | m_warned_surface_temp_nan = 0 |
| std::string | pp_prefix {"remora"} |
| default prefix for input file parameters | |
| amrex::Vector< amrex::MultiFab * > | cons_old |
| multilevel data container for last step's scalar data: temperature, salinity, passive tracer | |
| amrex::Vector< amrex::MultiFab * > | xvel_old |
| multilevel data container for last step's x velocities (u in ROMS) | |
| amrex::Vector< amrex::MultiFab * > | yvel_old |
| multilevel data container for last step's y velocities (v in ROMS) | |
| amrex::Vector< amrex::MultiFab * > | zvel_old |
| multilevel data container for last step's z velocities (largely unused; W stored separately) | |
| amrex::Vector< amrex::MultiFab * > | cons_new |
| multilevel data container for current step's scalar data: temperature, salinity, passive tracer | |
| amrex::Vector< amrex::MultiFab * > | xvel_new |
| multilevel data container for current step's x velocities (u in ROMS) | |
| amrex::Vector< amrex::MultiFab * > | yvel_new |
| multilevel data container for current step's y velocities (v in ROMS) | |
| amrex::Vector< amrex::MultiFab * > | zvel_new |
| multilevel data container for current step's z velocities (largely unused; W stored separately) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_cons_full_domain |
| multilevel data container for high res initial data: temperature, salinity, passive tracer | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_xvel_full_domain |
| multilevel data container for high res initial x velocities (u in ROMS) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_yvel_full_domain |
| multilevel data container for high res initial y velocities (v in ROMS) | |
| 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_h_full_domain |
| Bathymetry data on the whole domain at each potential level. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskr_full_domain |
| Land/sea mask at cell centers on the whole domain at each potential level. Specified at hires_grid_level and coarsened down from there, so that a refined coastline and the bathymetry it goes with come from the same grid. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Hz |
| Width of cells in the vertical (z-) direction (3D, Hz in ROMS) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Huon |
| u-volume flux (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Hvom |
| v-volume flux (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_ru |
| u velocity RHS (3D, includes horizontal and vertical advection) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rv |
| v velocity RHS (3D, includes horizontal and vertical advection) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_ru2d |
| u velocity RHS (2D, includes horizontal and vertical advection) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rv2d |
| v velocity RHS (2D, includes horizontal and vertical advection) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rufrc |
| u velocity RHS, integrated, including advection and bottom/surface stresses (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rvfrc |
| v velocity RHS, integrated, including advection and bottom/surface stresses (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Akv |
| Vertical viscosity coefficient (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Akt |
| Vertical diffusion coefficient (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_visc2_p |
| Harmonic viscosity defined on the psi points (corners of horizontal grid cells) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_visc2_r |
| Harmonic viscosity defined on the rho points (centers) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_diff2 |
| Harmonic diffusivity for temperature / salinity. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_z_r |
| z coordinates at rho points (cell centers) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_z_w |
| z coordinates at w points (faces between z-cells) | |
| amrex::Gpu::DeviceVector< amrex::Real > | s_r |
| Scaled vertical coordinate (range [0,1]) that transforms to z, defined at rho points (cell centers) | |
| amrex::Gpu::DeviceVector< amrex::Real > | s_w |
| Scaled vertical coordinate (range [0,1]) that transforms to z, defined at w-points (cell faces) | |
| amrex::Gpu::DeviceVector< amrex::Real > | Cs_r |
| Stretching coefficients at rho points. | |
| amrex::Gpu::DeviceVector< amrex::Real > | Cs_w |
| Stretching coefficients at w points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_z_phys_nd |
| z coordinates at psi points (cell nodes) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Zt_avg1 |
| Average of the free surface, zeta (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_sustr |
| Surface stress in the u direction. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_svstr |
| Surface stress in the v direction. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_uwind |
| Wind in the u direction, defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_vwind |
| Wind in the v direction, defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Tair |
| Air temperature [°C], defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_qair |
| Specific humidity [kg/kg], defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Pair |
| Air pressure [mb], defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_srflx |
| Shortwave radiation flux [W/m²], defined at rho-points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_lrflx |
| longwave radiation | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_longwave_down |
| Downward longwave radiation. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_lhflx |
| latent heat flux | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_shflx |
| sensible heat flux | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_stflx |
| Surface tracer flux; working arrays. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_stflux |
| Surface tracer flux; input arrays. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_btflx |
| Bottom tracer flux; working arrays. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_btflux |
| Bottom tracer flux; input arrays. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rain |
| precipitation rate [kg/m^2/s] | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_evap |
| evaporation rate [kg/m^2/s] | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_cloud |
| cloud cover fraction [0-1], defined at rho-points | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_EminusP |
| evaporation minus precipitation [kg/m^2/s], defined at rho-points | |
| std::array< bool, AtmosState::NumTypes > | driver_atmos_state_from_driver {} |
| provenance flags for driver-supplied atmospheric forcing lanes | |
| bool | running_with_coupling_driver = false |
| True once REMORA has received forcing through the coupling driver. | |
| bool | driver_uses_two_way_coupling = false |
| Driver-level direction flag copied in before InitData. | |
| DriverAtmosForcingMode | driver_atmos_forcing_mode = DriverAtmosForcingMode::State |
| Active atmosphere-to-ocean forcing contract on the most recent driver apply. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rdrag |
| Linear drag coefficient [m/s], defined at rho points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rdrag2 |
| Quadratic drag coefficient [unitless], defined at rho points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_ZoBot |
| Bottom roughness length [m], defined at rho points. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_bustr |
| Bottom stress in the u direction. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_bvstr |
| Bottom stress in the v direction. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_DU_avg1 |
| time average of barotropic x velocity flux (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_DU_avg2 |
| correct time average of barotropic x velocity flux for coupling (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_DV_avg1 |
| time average of barotropic y velocity flux | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_DV_avg2 |
| correct time average of barotropic y velocity flux for coupling (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Dubar_old |
| DU_avg2 per unit cell edge length, at the start and end of this level's step. What a subcycled finer level interpolates to get a mass-conserving ubar (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Dubar_new |
| see vec_Dubar_old (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Dvbar_old |
| DV_avg2 per unit cell edge length, see vec_Dubar_old (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Dvbar_new |
| see vec_Dvbar_old (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_zeta_crse_old |
| free surface at the start and end of this level's step, every leapfrog component holding the same value. What a subcycled finer level interpolates in time to get its contact points, as ROMS's put_refine2d does (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_zeta_crse_new |
| see vec_zeta_crse_old (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rubar |
| barotropic x velocity for the RHS (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rvbar |
| barotropic y velocity for the RHS (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rzeta |
| free surface height for the RHS (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_ubar |
| barotropic x velocity (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_vbar |
| barotropic y velocity (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_zeta |
| free surface height (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_zeta_full_domain |
| high resolution initial free surface height (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskr |
| land/sea mask at cell centers (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_msku |
| land/sea mask at x-faces (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskv |
| land/sea mask at y-faces (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskp |
| land/sea mask at cell corners (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskr3d |
| land/sea mask at cell centers, copied to all z levels (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskr_crse_on_fine |
| the level's rho-, u- and v-masks copied onto the layout of the level above it coarsened, which is the layout the two-way average-down computes on. Indexed by the coarse level of the pair. Built on demand and reused until a regrid, since the masks are a function of position alone and so do not change between them. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_msku_crse_on_fine |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_mskv_crse_on_fine |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_pm |
| horizontal scaling factor: 1 / dx (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_pn |
| horizontal scaling factor: 1 / dy (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_pm_full_domain |
| horizontal scaling factor: 1 / dx (2D) on whole domain | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_pn_full_domain |
| horizontal scaling factor: 1 / dy (2D) on whole domain | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_fcor |
| coriolis factor (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_xr |
| x_grid on rho points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_yr |
| y_grid on rho points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_xu |
| x_grid on u-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_yu |
| y_grid on u-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_xv |
| x_grid on v-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_yv |
| y_grid on v-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_xp |
| x_grid on psi-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_yp |
| y_grid on psi-points (2D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_lonp |
| longitude on psi-points (2D, degrees east); only filled when the grid NetCDF file carries lon_psi | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_latp |
| latitude on psi-points (2D, degrees north); only filled when the grid NetCDF file carries lat_psi | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_dndx |
| d(1/n)/d(xi) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_dmde |
| d(1/m)/d(eta) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_sstore |
| additional scratch space for calculations on temp, salt, etc | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rhoS |
| density perturbation | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_rhoA |
| vertically-averaged density | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_bvf |
| Brunt-Vaisala frequency (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_alpha |
| Thermal expansion coefficient (3D) | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_beta |
| Saline contraction coefficient (3D) | |
| amrex::Vector< amrex::Real > | vec_weight1 |
| Weights for calculating avg1 in 2D advance. | |
| amrex::Vector< amrex::Real > | vec_weight2 |
| Weights for calculating avg2 in 2D advance. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_tke |
| Turbulent kinetic energy. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_gls |
| Turbulent generic length scale. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Lscale |
| Vertical mixing turbulent length scale. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Akk |
| Turbulent kinetic energy vertical diffusion coefficient. | |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > | vec_Akp |
| Turbulent length scale vertical diffusion coefficient. | |
| amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab > > > | vec_nudg_coeff |
| Climatology nudging coefficients. | |
| amrex::DistributionMapping | dm_full_domain |
| the DistributionMapping every full-domain multifab is built on. Each of those covers the domain in a single box, so the map holds one entry, and which rank it names is whichever holds the least fab memory when it is built. Building one per allocator therefore put the mask and the data it weights on different ranks under MPI. Empty until full_domain_dmap first needs it. | |
Static Public Attributes | |
| static int | total_nc_plot_file_step = 1 |
Private Member Functions | |
| void | ReadParameters () |
| read in some parameters from inputs file | |
| void | init_scalar_metadata () |
| Build runtime scalar names after nscalar is known. | |
| void | AverageDown () |
| set covered coarse cells to be the average of overlying fine cells | |
| void | init_bcs () |
| Read in boundary parameters from input file and set up data structures. | |
| void | init_analytic (int lev) |
| Initialize initial problem data from analytic functions. | |
| ProbCoords | prob_coords (int lev) const |
| Coordinate arrays of level lev, for the prob functions. | |
| void | init_stuff (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
| Allocate MultiFabs for state and evolution variables. | |
| void | init_masks (int lev, const amrex::BoxArray &ba, const amrex::DistributionMapping &dm) |
| Allocate MultiFabs for masks. | |
| void | resize_stuff (int lev) |
| Resize variable containers to accommodate data on levels 0 to max_lev. | |
| void | AverageDownTo (int crse_lev) |
| more flexible version of AverageDown() that lets you average down across multiple levels | |
| void | Construct_REMORAFillPatchers (int lev) |
| Construct FillPatchers. | |
| void | Define_REMORAFillPatchers (int lev) |
| Define FillPatchers. | |
| TimeInterpolatedData | GetDataAtTime (int lev, amrex::Real time) |
| utility to copy in data from old and/or new state into another multifab | |
| void | timeStep (int lev, amrex::Real time, int iteration) |
| advance a level by dt, includes a recursive call for finer levels | |
| void | timeStepML (amrex::Real time, int iteration) |
| advance all levels by dt, loops over finer levels | |
| void | ComputeDt () |
| a wrapper for estTimeStep() | |
| void | print_timestep_hierarchy () const |
| report the per-level slow/fast timestep hierarchy; call after ComputeDt | |
| void | set_nsubsteps (int nlevs_max) |
| size nsubsteps and set how many steps each level takes per parent step | |
| std::string | PlotFileName (int lev) const |
| get plotfile name | |
| void | set2DPlotVariables (const std::string &pp_plot_var_names_2d) |
| void | set3DPlotVariables (const std::string &pp_plot_var_names_3d) |
| void | append2DPlotVariables (const std::string &pp_plot_var_names_2d) |
| void | append3DPlotVariables (const std::string &pp_plot_var_names_3d) |
| void | WriteNCPlotFile (int istep, amrex::MultiFab const *plotMF, int lev=0) |
| Write plotfile using NetCDF (wrapper) | |
| void | WriteNCPlotFile_which (int lev, int which_subdomain, amrex::MultiFab const *plotMF, bool write_header, ncutils::NCFile &ncf, bool is_history) |
| Write a particular NetCDF plotfile. | |
| void | WriteNCMultiFab (const amrex::FabArray< amrex::FArrayBox > &fab, const std::string &name, bool set_ghost=false) const |
| Write MultiFab in NetCDF format. | |
| void | ReadNCMultiFab (amrex::FabArray< amrex::FArrayBox > &fab, const std::string &name, int coordinatorProc=amrex::ParallelDescriptor::IOProcessorNumber(), int allow_empty_mf=0) |
| Read MultiFab in NetCDF format. | |
| void | WriteCheckpointFile () |
| write checkpoint file to disk | |
| void | ReadCheckpointFile () |
| read checkpoint file from disk | |
| void | InitializeFromFile () |
| Read the file passed to remora.restart and use it as an initial condition for the current simulation. | |
| void | InitializeLevelFromData (int lev, const amrex::MultiFab &initial_data) |
| Initialize the new-time data at a level from the initial_data MultiFab. | |
| amrex::YAFluxRegister * | getAdvFluxReg (int lev) |
| flux register between lev and lev-1 | |
| void | define_flux_register (int lev) |
| build or rebuild the flux register between lev and lev-1 | |
| void | refinement_criteria_setup () |
| Set refinement criteria. | |
| void | init_ref_ratios () |
| Reject vertical refinement and accumulate the refinement ratios. | |
| AMREX_FORCE_INLINE std::ostream & | DataLog (int i) |
| Helper function for IO stream. | |
| AMREX_FORCE_INLINE int | NumDataLogs () noexcept |
| amrex::Real | getCPUTime () const |
| Get CPU time used. | |
| void | setRecordDataInfo (int i, const std::string &filename) |
| const std::string | DataLogName (int i) const noexcept |
| The filename of the ith datalog file. | |
Static Private Member Functions | |
| static void | GotoNextLine (std::istream &is) |
| utility to skip to next line in Header | |
Private Attributes | |
| std::unique_ptr< NCTimeSeries > | sustr_data_from_file |
| Data container for u-component surface momentum flux read from file. | |
| std::unique_ptr< NCTimeSeries > | svstr_data_from_file |
| Data container for v-component surface momentum flux read from file. | |
| std::unique_ptr< NCTimeSeries > | Uwind_data_from_file |
| Data container for u-direction wind read from file. | |
| std::unique_ptr< NCTimeSeries > | Vwind_data_from_file |
| Data container for v-direction wind read from file. | |
| std::unique_ptr< NCTimeSeries > | Tair_data_from_file |
| Data container for air temperature read from file. | |
| std::unique_ptr< NCTimeSeries > | qair_data_from_file |
| Data container for specific humidity read from file. | |
| std::unique_ptr< NCTimeSeries > | Pair_data_from_file |
| Data container for air pressure read from file. | |
| std::unique_ptr< NCTimeSeries > | srflx_data_from_file |
| Data container for shortwave radiation flux read from file. | |
| std::unique_ptr< NCTimeSeries > | longwave_down_data_from_file |
| Data container for downward longwave radiation flux read from file. | |
| std::unique_ptr< NCTimeSeries > | rain_data_from_file |
| Data container for precipitation rate read from file. | |
| std::unique_ptr< NCTimeSeries > | cloud_data_from_file |
| Data container for cloud cover fraction read from file. | |
| std::unique_ptr< NCTimeSeries > | EminusP_data_from_file |
| Data container for evaporation minus precipitation read from file. | |
| std::unique_ptr< NCTimeSeries > | ubar_clim_data_from_file |
| Data container for ubar climatology data read from file. | |
| std::unique_ptr< NCTimeSeries > | vbar_clim_data_from_file |
| Data container for vbar climatology data read from file. | |
| std::unique_ptr< NCTimeSeries > | u_clim_data_from_file |
| Data container for u-velocity climatology data read from file. | |
| std::unique_ptr< NCTimeSeries > | v_clim_data_from_file |
| Data container for v-velocity climatology data read from file. | |
| amrex::Vector< std::unique_ptr< NCTimeSeries > > | cons_clim_data_from_file |
| Vector over cons components of climatology data read from file. | |
| amrex::Vector< std::unique_ptr< NCTimeSeriesRiver > > | river_source_cons |
| Vector of data containers for scalar data in rivers. | |
| std::unique_ptr< NCTimeSeriesRiver > | river_source_transport |
| Data container for momentum transport in rivers. | |
| std::unique_ptr< NCTimeSeriesRiver > | river_source_transportbar |
| Data container for vertically integrated momentum transport in rivers. | |
| amrex::Vector< amrex::Vector< std::unique_ptr< NCTimeSeriesBoundary > > > | boundary_series |
| Vector over BdyVars of boundary series data containers. | |
| amrex::Vector< std::unique_ptr< amrex::iMultiFab > > | vec_river_position |
| iMultiFab for river positions; contents are indices of rivers | |
| amrex::Gpu::DeviceVector< int > | river_direction |
| Vector over rivers of river direction: 0: u-face; 1: v-face; 2: w-face. | |
| int | cf_width {0} |
| Nudging width at coarse-fine interface. | |
| int | cf_set_width {0} |
| Width for fixing values at coarse-fine interface. | |
| amrex::Vector< REMORAFillPatcher > | FPr_c |
| Vector over levels of FillPatchers for scalars. | |
| amrex::Vector< REMORAFillPatcher > | FPr_u |
| Vector over levels of FillPatchers for u (3D) | |
| amrex::Vector< REMORAFillPatcher > | FPr_v |
| Vector over levels of FillPatchers for v (3D) | |
| amrex::Vector< REMORAFillPatcher > | FPr_w |
| Vector over levels of FillPatchers for w. | |
| amrex::Vector< REMORAFillPatcher > | FPr_ubar |
| Vector over levels of FillPatchers for ubar (2D) | |
| amrex::Vector< REMORAFillPatcher > | FPr_vbar |
| Vector over levels of FillPatchers for vbar (2D) | |
| amrex::Vector< REMORAFillPatcher > | FPr_Dubar |
| Vector over levels of FillPatchers for Dubar (2D) | |
| amrex::Vector< REMORAFillPatcher > | FPr_Dvbar |
| Vector over levels of FillPatchers for Dvbar (2D) | |
| std::unique_ptr< ProblemBase > | prob = nullptr |
| Pointer to container of analytical functions for problem definition. | |
| amrex::Vector< int > | num_boxes_at_level |
| how many boxes specified at each level by tagging criteria | |
| amrex::Vector< int > | num_files_at_level |
| how many netcdf input files specified at each level | |
| amrex::Vector< amrex::Vector< amrex::Box > > | boxes_at_level |
| the boxes specified at each level by tagging criteria | |
| amrex::Vector< int > | istep |
| which step? | |
| amrex::Vector< int > | nsubsteps |
| How many substeps on each level? | |
| amrex::Vector< amrex::Real > | t_new |
| new time at each level, in seconds since start_time | |
| amrex::Vector< amrex::Real > | t_old |
| old time at each level, in seconds since start_time | |
| amrex::Vector< amrex::Real > | dt |
| time step at each level | |
| bool | set_bcs_by_var |
| whether to set boundary conditions by variable rather than just by side | |
| amrex::Vector< std::unique_ptr< REMORAPhysBCFunct > > | physbcs |
| Vector (over level) of functors to apply physical boundary conditions. | |
| amrex::Vector< std::unique_ptr< amrex::YAFluxRegister > > | advflux_reg |
| array of flux registers for refluxing in multilevel | |
| amrex::Vector< amrex::BCRec > | domain_bcs_type |
| vector (over BCVars) of BCRecs | |
| amrex::Gpu::DeviceVector< amrex::BCRec > | domain_bcs_type_d |
| GPU vector (over BCVars) of BCRecs. | |
| amrex::Array< std::string, 2 *AMREX_SPACEDIM > | domain_bc_type |
| Array of strings describing domain boundary conditions. | |
| amrex::Vector< amrex::GpuArray< amrex::Real, AMREX_SPACEDIM *2 > > | m_bc_extdir_vals |
| Array holding the Dirichlet values at walls which need them. | |
| amrex::Vector< amrex::GpuArray< REMORA_BC, AMREX_SPACEDIM *2 > > | phys_bc_type |
| Array holding the "physical" boundary condition types (e.g. "inflow") | |
| amrex::Vector< amrex::GpuArray< bool, AMREX_SPACEDIM *2 > > | phys_bc_need_data |
| These are flags that indicate whether we need to read in boundary data from file. | |
| amrex::Vector< int > | bdy_index |
| Container to connect boundary data being read in boundary condition containers. | |
| int | last_plot_file_step |
| Step when we last output a plotfile. | |
| amrex::Real | last_plot_file_time |
| Simulation time when we last output a plotfile. | |
| int | last_check_file_step |
| Step when we last output a checkpoint file. | |
| amrex::Real | last_check_file_time |
| Simulation time when we last output a checkpoint file. | |
| int | plot_file_on_restart = 1 |
| Whether to output a plotfile on restart from checkpoint. | |
| int | max_step = std::numeric_limits<int>::max() |
| maximum number of steps | |
| double | stop_time = std::numeric_limits<amrex::Real>::max() |
| Whether max_step was set in the inputs; the default above is not a distinguishable sentinel. | |
| double | start_time = 0.0 |
| Time of the start of the simulation, in seconds on the model clock. | |
| std::string | restart_chkfile = "" |
| If set, restart from this checkpoint file. | |
| int | nscalar = 0 |
| Number of passive (dye) scalars carried in the state, beyond temperature and salinity. Does not count biology tracers. Dye is opt-in: a run carries one only when remora.nscalar asks for it. | |
| int | nbio = 0 |
| Number of biology tracers, set by the active biology model. Zero when no biology model is active. | |
| int | Bio_comp = Tracer_comp |
| First cons component of the biology block, i.e. Tracer_comp + nscalar. The state is laid out as temp, salt, the passive scalars, then biology. | |
| int | ncons = Tracer_comp + 1 |
| Number of conserved scalars in the state (temperature + salt + passive scalars + biology tracers) | |
| REMORABiology::BiologyModel | biology_model = REMORABiology::BiologyModel::none |
| Active biology package. | |
| REMORABiology::FennelParameters | fennel_params |
| Runtime parameters for the Fennel biology package. | |
| REMORABiology::BiologyICType | biology_ic_type = REMORABiology::BiologyICType::follow_ic_type |
| Source of the biology tracer initial condition, independent of remora.ic_type. Default follows ic_type. | |
| int | use_biology_cpp_answer = 1 |
| Select the native C++ biology kernel (1) or the ROMS Fortran bridge oracle (0). Only meaningful when built with USE_FENNEL_FORT=TRUE; ignored otherwise. Runtime-controlled so the two paths can be compared without a rebuild. | |
| int | biology_debug = 0 |
| Biology diagnostic verbosity: 0 off, 1 target column, 2 all columns. See Source/Biology/Fortran/tag_map.md. | |
| int | biology_debug_i = 2 |
| Target column i index for biology_debug = 1. | |
| int | biology_debug_j = 2 |
| Target column j index for biology_debug = 1. | |
| int | nfast |
| Number of fast steps to take. | |
| int | do_substep = 1 |
| Whether to substep fine levels in time. | |
| bool | time_interp_flux = false |
| interpolate the parent's barotropic mass flux in time at the coarse-fine interface, rather than holding its step average. Off matches most ROMS configurations. | |
| int | cf_impose_flux = 0 |
| impose the parent's barotropic mass flux on DUon/DVom at the coarse-fine interface, rather than relying on the velocity written by set_2d_cf_bcs being turned back into the same flux. Off by default: it improves conservation but does not cure the two-level barotropic instability seen in Channel_Test. | |
| int | do_reflux = 1 |
| correct the coarse tracer with the finer level's accumulated advective flux at their interface. Only has an effect under remora.do_substep with two-way coupling. | |
| int | cf_avgdown_perimeter = 1 |
| exclude the coarse-fine perimeter's normal-velocity faces from the fine-to-coarse average, as ROMS does. 1 (default) matches ROMS; 0 restores the old behaviour. | |
| int | cf_fill_vel_after = 0 |
| re-fill the child's 3D velocity from the parent after the step, so the coarse-fine boundary carries the parent's shear profile rather than the one vert_mean_3d left there. Diagnostic; off, so it changes no answer unless set. Both drivers do it only under this knob – see the comment in Advance. On the ratio-3 Dogbone it moves level-1 x-velocity by 4.1e-3 relative and level 0 by 1.9e-4 after 20 steps. | |
| int | cf_set_2d_bcs = 1 |
| 0 = never impose the 2D coarse-fine interface condition, 1 = every fast step, 2 = only the first fast step of each baroclinic step. | |
| int | cf_avgdown_bar = 1 |
| int | cf_fill_all_kcomp = 1 |
| write every leapfrog record of the coarse-fine ghost band, as put_refine2d does when it sets zeta(:,:,1:3) and Zt_avg1 to one value; without it those records go a whole parent step stale. On by default. Roundoff on the ROMS-matched deck, where the fine zeta halo is barely read, but the dominant cost to volume conservation on the subcycled dogbone: 2.0e-09 to 2.9e-08 of drift over 20 steps, volume being the integral of the free surface this writes. ROMS makes the same trade. | |
| int | cf_time_interp_zeta = 1 |
| interpolate the parent in time onto the child's own sub-time, as put_refine2d does, rather than freezing it at the end of the parent step. On by default, and non-conservative for the same reason as cf_fill_all_kcomp: 1.4e-08 of volume drift on its own. | |
| int | cf_flux_pc = 1 |
| distribute the parent's interface mass flux piecewise-constantly over the fine faces under each parent face, as ROMS's get_persisted2d does, instead of with the linear tangential variation of AMReX's face interpolator. Both conserve the total; they differ in the profile along the interface. On by default: it removes the fine level's own excess divergence there. | |
| int | cf_avgdown_stencil = 1 |
| average the fine velocity onto the coarse over ROMS's nine-point stencil (fine2coarse2d, half-width (Rscale-1)/2 in both directions) instead of only the faces that tile the coarse face. On by default: with cf_flux_pc it takes the interface refinement perturbation from 1.29x ROMS's to 1.01x on the matched dogbone, the residual 1% closing only with cf_impose_flux, which stays off. Not conservative in principle – the nine-point mean does not preserve transport across the interface – but only about 3e-10 of volume drift in practice, well under the free-surface ghost band's cost. | |
| int | cf_print_iface = -1 |
| print the imposed coarse-fine interface velocity at this baroclinic step (-1 = off). Diagnostic only; the fine level is not in the NetCDF output. | |
| int | reflux_clamp = 1 |
| stop that correction driving a tracer negative, as ROMS does. On by default to match ROMS; costs exact conservation on any step that clamps. | |
| int | check_cf_metrics_flag = 0 |
| measure whether fine cell edges tile the coarse ones at a coarse-fine interface, which is what makes the imposed mass flux conservative | |
| amrex::Real | check_cf_tol = 1.e-12 |
| tolerance for the above | |
| int | check_plot_z = 0 |
| check the nodal z a viewer rebuilds from the plotfile's Nu_nd set against z_phys_nd on each level, and fine against coarse at coincident nodes | |
| amrex::Real | check_plot_z_tol = -1.0 |
| abort when the coarse-fine mismatch at interior nodes exceeds this; negative (the default) only reports it, since where a finer level carries finer bathymetry the two levels' bottoms legitimately differ | |
| int | regrid_int = 2 |
| how often each level regrids the higher levels of refinement (after a level advances that many time steps) | |
| std::string | plot_file_name {"plt_"} |
| Plotfile prefix. | |
| int | plot_int = -1 |
| Plotfile output interval in iterations. | |
| amrex::Real | plot_int_time = amrex::Real(-one) |
| Plotfile output interval in seconds. | |
| std::string | check_file {"chk"} |
| Checkpoint file prefix. | |
| int | check_int = -1 |
| Checkpoint output interval in iterations. | |
| amrex::Real | check_int_time = amrex::Real(-one) |
| Checkpoint output interval in seconds. | |
| bool | chunk_history_file = false |
| Whether to split the netcdf history file into fixed-length chunks. | |
| int | steps_per_history_file = -1 |
| Time steps per netcdf history file. Must be > 0 if chunk_history_file. | |
| int | history_count = 0 |
| Counter for which time index we are writing to in the netcdf history file. | |
| amrex::Vector< std::string > | plot_var_names_3d |
| Names of 3D variables to output to AMReX plotfile. | |
| amrex::Vector< std::string > | plot_var_names_2d |
| Names of 2D variables to output to AMReX plotfile. | |
| amrex::Vector< std::string > | cons_names {"temp", "salt", "tracer"} |
| Names of scalars for plotfile output. | |
| const amrex::Vector< std::string > | derived_names_3d {"vorticity"} |
| Names of derived fields for 3d plotfile fields. | |
| const amrex::Vector< std::string > | derived_names_2d {} |
| Names of derived fields for 2d plotfile fields. | |
| bool | expand_plotvars_to_unif_rr = false |
| whether plotfile variables should be expanded to a uniform refinement ratio | |
| amrex::Real | plotfile_fill_value = zero |
| fill value for masked arrays in amrex plotfiles | |
| amrex::Real | netcdf_fill_value = amrex::Real(1.0e37) |
| fill value for masked arrays in netcdf output | |
| int | hires_grid_level = -1 |
| Which level the high resolution bathymetry is at. | |
| std::string | nc_grid_file_hires |
| Grid file for high resolution bathymetry. | |
| amrex::Box | nc_hires_grid_box |
| Box for the full domain at nc_hires_grid_level. | |
| int | hires_init_level = -1 |
| Which level the high resolution initialization data is at. | |
| std::string | nc_init_file_hires |
| Init file for high resolution. | |
| amrex::Box | nc_hires_init_box |
| Box for the full domain at nc_hires_init_level. | |
| amrex::Vector< amrex::IntVect > | cum_ref_ratios |
| Cumulative refinement ratio between level 0 and level i. | |
| amrex::Vector< std::string > | nc_frc_file |
| NetCDF forcing file(s) | |
| amrex::Vector< std::string > | nc_riv_file |
| NetCDF river file(s) | |
| amrex::Vector< std::string > | nc_clim_his_file |
| NetCDF climatology history file(s) | |
| std::string | nc_clim_coeff_file |
| NetCDF climatology coefficient file. | |
| std::string | bdry_time_varname = "ocean_time" |
| Default name of time field for boundary data. | |
| amrex::Vector< std::string > | bdry_time_name_byvar |
| Name of time fields for boundary data. | |
| std::string | clim_ubar_time_varname = "ocean_time" |
| Name of time field for ubar climatology data. | |
| std::string | clim_vbar_time_varname = "ocean_time" |
| Name of time field for vbar climatology data. | |
| std::string | clim_u_time_varname = "ocean_time" |
| Name of time field for u climatology data. | |
| std::string | clim_v_time_varname = "ocean_time" |
| Name of time field for v climatology data. | |
| amrex::Vector< std::string > | clim_cons_time_varname |
| Vector over cons components of the name of the time field for that tracer's climatology data. | |
| std::string | riv_time_varname = "river_time" |
| Name of time field for river time. | |
| std::string | frc_time_varname = "" |
| Name of time field for forcing data. | |
| amrex::MultiFab | fine_mask |
| Mask that zeroes out values on a coarse level underlying grids on the next finest level. | |
| amrex::Vector< std::unique_ptr< std::fstream > > | datalog |
| amrex::Vector< std::string > | datalogname |
Static Private Attributes | |
| static bool | write_history_file = true |
| Whether to output NetCDF files as a single history file with several time steps. | |
| static amrex::Real | cfl = Real(0.8) |
| CFL condition. | |
| static amrex::Real | change_max = Real(1.1) |
| Fraction maximum change in subsequent time steps. | |
| static amrex::Real | fixed_dt = -one |
| User specified fixed baroclinic time step. | |
| static int | ndtfast = 0 |
| User specified, number of barotropic steps per baroclinic step. | |
| static SolverChoice | solverChoice |
| Container for algorithmic choices. | |
| static int | verbose = 0 |
| Verbosity level of output. | |
| static int | sum_interval = -1 |
| Diagnostic sum output interval in number of steps. | |
| static amrex::Real | sum_per = -one |
| Diagnostic sum output interval in time. | |
| static int | file_min_digits = 5 |
| Minimum number of digits in plotfile name or chunked history file. | |
| static bool | plot_staggered_vels = false |
| Whether to write the staggered velocities (not averaged to cell centers) | |
| static bool | plot_nodal_data = true |
| Whether to write nodal data (Nu_nd) to plotfiles. | |
| static PlotfileType | plotfile_type = PlotfileType::amrex |
| Native or NetCDF plotfile output. | |
| static amrex::Vector< amrex::Vector< std::string > > | nc_init_file = {{""}} |
| NetCDF initialization file. | |
| static amrex::Vector< amrex::Vector< std::string > > | nc_grid_file = {{""}} |
| NetCDF grid file. | |
| static amrex::Vector< std::string > | nc_bdry_file = {""} |
| NetCDF boundary data. | |
| static amrex::Vector< REMORAErrorTag > | ref_tags |
| Holds info for dynamically generated tagging criteria. | |
| static amrex::Real | startCPUTime = zero |
| Variable for CPU timing. | |
| static amrex::Real | previousCPUTimeUsed = zero |
| Accumulator variable for CPU time used thusfar. | |
Class that stores all relevant simulation state data with methods for time stepping.
|
strong |
| REMORA::REMORA | ( | ) |
constructor:
Definition at line 69 of file REMORA.cpp.

| REMORA::REMORA | ( | const amrex::RealBox & | rb, |
| int | max_level_in, | ||
| const amrex::Vector< int > & | n_cell_in, | ||
| int | coord, | ||
| const amrex::Vector< amrex::IntVect > & | ref_ratio, | ||
| const amrex::Array< int, AMREX_SPACEDIM > & | is_per, | ||
| std::string | prefix | ||
| ) |
|
virtual |
Definition at line 205 of file REMORA.cpp.
| void REMORA::Advance | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::Real | dt_lev, | ||
| int | iteration, | ||
| int | ncycle | ||
| ) |
advance a single level for a single time step
| [in] | lev | level of refinement |
| [in] | time | simulation time at start of step |
| [in] | dt_lev | baroclinic time step at level |
| [in] | iteration | iteration in subcycling, if using |
| [in] | ncycle | total number of subcycles, if using |
Definition at line 17 of file REMORA_Advance.cpp.
Referenced by timeStep().


| void REMORA::advance_2d | ( | int | lev, |
| amrex::MultiFab const * | mf_rhoS, | ||
| amrex::MultiFab const * | mf_rhoA, | ||
| amrex::MultiFab * | mf_ru2d, | ||
| amrex::MultiFab * | mf_rv2d, | ||
| amrex::MultiFab * | mf_rufrc, | ||
| amrex::MultiFab * | mf_rvfrc, | ||
| amrex::MultiFab * | mf_Zt_avg1, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DU_avg1, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DU_avg2, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DV_avg1, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DV_avg2, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_rubar, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_rvbar, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_rzeta, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_ubar, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_vbar, | ||
| amrex::MultiFab * | mf_zeta, | ||
| amrex::MultiFab const * | mf_h, | ||
| amrex::MultiFab const * | mf_pm, | ||
| amrex::MultiFab const * | mf_pn, | ||
| amrex::MultiFab const * | mf_fcor, | ||
| amrex::MultiFab const * | mf_visc2_p, | ||
| amrex::MultiFab const * | mf_visc2_r, | ||
| amrex::MultiFab const * | mf_mskr, | ||
| amrex::MultiFab const * | mf_msku, | ||
| amrex::MultiFab const * | mf_mskv, | ||
| amrex::MultiFab const * | mf_mskp, | ||
| amrex::Real | dtfast_lev, | ||
| bool | predictor_2d_step, | ||
| bool | first_2d_step, | ||
| int | my_iif, | ||
| int & | next_indx1 | ||
| ) |
Perform a 2D predictor (predictor_2d_step=True) or corrector (predictor_2d_step=False) step.
Nonlinear shallow-water rpimitive equations predictor (Leap-frog) and corrector (Adams-Moulton) time-stepping engine. Corresponds to Nonlinear/step2d_LF_AM3.h in ROMS.
| [in] | lev | level of refinement (coarsest level is 0) |
| [in] | mf_rhoS | density perturbation |
| [in] | mf_rhoA | vertically-averaged density |
| [in,out] | mf_ru2d | RHS contributions to 2D u-momentum |
| [in,out] | mf_rv2d | RHS contribtuions to 2D v-momentum |
| [in,out] | mf_rufrc | before first predictor, vertical integral of 3D RHS for uvel, converted to forcing terms |
| [in,out] | mf_rvfrc | before first predictor, vertical integral of 3D RHS for vvel, converted to forcing term |
| [in,out] | mf_Zt_avg1 | average of sea surface height over all fast steps |
| [in,out] | mf_DU_avg1 | time-averaged u-flux for 2D equations |
| [in,out] | mf_DU_avg2 | time-averaged u-flux for 3D equation coupling |
| [in,out] | mf_DV_avg1 | time-averaged v-flux for 2D equations |
| [in,out] | mf_DV_avg2 | time-averaged v-flux for 3D equation coupling |
| [in,out] | mf_rubar | RHS of vertically integrated u-momentum |
| [in,out] | mf_rvbar | RHS of vertically integrated v-momentum |
| [in,out] | mf_rzeta | RHS of sea surface height |
| [in,out] | mf_ubar | vertically integrated u-momentum |
| [in,out] | mf_vbar | vertically integrated v-momentum |
| [in,out] | mf_zeta | Sea-surface height |
| [in] | mf_h | Bathymetry |
| [in] | mf_pm | 1 / dx |
| [in] | mf_pn | 1 / dy |
| [in] | mf_fcor | Coriolis factor |
| [in,out] | mf_visc2_p | Harmonic viscosity at psi points |
| [in,out] | mf_visc2_r | Harmoic viscosity at rho points |
| [in] | mf_mskr | Land-sea mask at rho-points |
| [in] | mf_msku | Land-sea mask at u-points |
| [in] | mf_mskv | Land-sea mask at v-points |
| [in] | mf_mskp | Land-sea mask at psi-points |
| [in] | dtfast_lev | Length of current barotropic step |
| [in] | predictor_2d_step | Is this a predictor step? |
| [in] | first_2d_step | Is this the first barotropic step? |
| [in] | my_iif | Which barotropic predictor-corrector pair? |
| [in,out] | next_indx1 | Cached index for |
Definition at line 97 of file REMORA_advance_2d.cpp.
Referenced by advance_2d_onestep().


| void REMORA::advance_2d_onestep | ( | int | lev, |
| amrex::Real | dt_lev, | ||
| amrex::Real | dtfast_lev, | ||
| int | my_iif, | ||
| int | nfast_counter | ||
| ) |
2D advance, one predictor/corrector step
| [in] | lev | level of refinement |
| [in] | dt_lev | baroclinic time step at level |
| [in] | dtfast_lev | barotropic time step at level |
| [in] | my_iif | current barotropic time step |
| [in] | nfast_counter | how many bartropicc time steps to do per baroclinic step |
Definition at line 12 of file REMORA_advance_2d_onestep.cpp.
Referenced by Advance(), and timeStepML().


| void REMORA::advance_3d | ( | int | lev, |
| amrex::MultiFab & | mf_cons, | ||
| amrex::MultiFab & | mf_u, | ||
| amrex::MultiFab & | mf_v, | ||
| amrex::MultiFab * | mf_sstore, | ||
| amrex::MultiFab * | mf_ru, | ||
| amrex::MultiFab * | mf_rv, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DU_avg1, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DU_avg2, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DV_avg1, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_DV_avg2, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_ubar, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_vbar, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_Akv, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_Akt, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_Hz, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_Huon, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_Hvom, | ||
| std::unique_ptr< amrex::MultiFab > & | mf_z_w, | ||
| amrex::MultiFab const * | mf_h, | ||
| amrex::MultiFab const * | mf_pm, | ||
| amrex::MultiFab const * | mf_pn, | ||
| amrex::MultiFab const * | mf_mskr, | ||
| amrex::MultiFab const * | mf_msku, | ||
| amrex::MultiFab const * | mf_mskv, | ||
| const int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Advance the 3D variables.
Corresponds to step3d_uv.F and step3d_t.F in ROMS
| [in] | lev | level of refinement (coarsest level is 0) |
| [in,out] | mf_cons | scalar variables (temp, salt, scalar, etc) |
| [in,out] | mf_u | u-velocity |
| [in,out] | mf_v | v-velocity |
| [in,out] | mf_sstore | intermediate-step scalar variables |
| [in,out] | mf_ru | RHS of total u-velocity |
| [in,out] | mf_rv | RHS of total v-velocity |
| [in] | mf_DU_avg1 | time-averaged u-flux for 2D equations |
| [in] | mf_DU_avg2 | time-averaged u-flux for 3D equation coupling |
| [in] | mf_DV_avg1 | time-averaged v-flux for 2D equations |
| [in] | mf_DV_avg2 | time-averaged v-flux for 3D equation coupling |
| [in,out] | mf_ubar | vertically integrated u-momentum |
| [in,out] | mf_vbar | vertically integrated v-momentum |
| [in,out] | mf_Akv | vertical viscosity coefficient |
| [in,out] | mf_Akt | vertical diffusivity coefficient |
| [in,out] | mf_Hz | vertical height of cells |
| [in,out] | mf_Huon | u-volume flux |
| [in,out] | mf_Huon | v-volume flux |
| [in,out] | mf_z_w | vertical coordinates on w points |
| [in] | mf_h | bathymetry |
| [in] | mf_pm | 1 / dx |
| [in] | mf_pn | 1 / dy |
| [in] | mf_msku | land-sea mask at u-points |
| [in] | mf_mskv | land-sea mask at v-points |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this refinement level |
Definition at line 35 of file REMORA_advance_3d.cpp.
Referenced by advance_3d_ml().


| void REMORA::advance_3d_ml | ( | int | lev, |
| amrex::Real | dt_lev | ||
| ) |
3D advance on a single level
| [in] | lev | refinement level |
| [in] | dt_lev | time step at refinement level |
Definition at line 9 of file REMORA_advance_3d_ml.cpp.
Referenced by Advance(), and timeStepML().


| void REMORA::advance_biology | ( | int | lev, |
| amrex::MultiFab const & | mf_cons_old, | ||
| amrex::MultiFab & | mf_cons_new, | ||
| int | N, | ||
| amrex::Real | dt_lev | ||
| ) |
Apply biological tracer source/sink terms.
Definition at line 498 of file REMORA_Biology.cpp.
Referenced by advance_3d().


| void REMORA::allocate_bathymetry_grid_vars_full_domain | ( | ) |
Allocate multifabs for storing full-domain bathymetry and grid vars data.
Definition at line 344 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::allocate_init_full_domain | ( | ) |
Allocate multifabs for storing full-domain high resolution initial data.
Definition at line 413 of file REMORA_init.cpp.
Referenced by init_only().


| pp_plot_var_names_2d | variables to add to plot list |
Definition at line 254 of file REMORA_SetPlotVars.cpp.
Referenced by InitData().


| pp_plot_var_names | variables to add to plot list |
Definition at line 216 of file REMORA_SetPlotVars.cpp.
Referenced by InitData().


| void REMORA::apply_clim_nudg | ( | const amrex::Box & | bx, |
| int | ioff, | ||
| int | joff, | ||
| const amrex::Array4< amrex::Real > & | var, | ||
| const amrex::Array4< amrex::Real const > & | var_old, | ||
| const amrex::Array4< amrex::Real const > & | var_clim, | ||
| const amrex::Array4< amrex::Real const > & | clim_coeff, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Real | dt_lev = zero |
||
| ) |
Apply climatology nudging.
| [in] | bx | box to apply climatology on |
| [in] | ioff | offset in x-direction |
| [in] | joff | offset in y-direction |
| [in,out] | var | variable to update |
| [in] | var_old | variable to compare against for nudging |
| [in] | var_clim | climatology value to nudge towards |
| [in] | clim_coeff | nudging time scale (1/s) |
| [in] | Hz | vertical cell height |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | dt_lev | time step |
Definition at line 19 of file REMORA_apply_clim_nudg.cpp.
Referenced by advance_2d(), advance_3d(), and setup_step().


| void REMORA::ApplyAtmosphericFluxes | ( | const amrex::Vector< amrex::MultiFab * > & | states, |
| amrex::Real | time | ||
| ) |
Receives atmospheric flux lanes from the driver and assembles REMORA flux inputs.
Expected active-lane order matches the driver FluxPassing contract: tau_x, tau_y, SHflux, LHflux, SWrad, LWrad, rain, evap.
This routine copies imported forcing lanes into REMORA's existing flux arrays and assembles vec_stflux directly from those imported values. It intentionally leaves the downstream salt_old multiplication to setup_step().
Definition at line 656 of file REMORA_Coupling.cpp.

| void REMORA::ApplyAtmosphericStates | ( | const amrex::Vector< amrex::MultiFab * > & | states, |
| amrex::Real | time | ||
| ) |
Receives atmospheric states from the driver and applies unit conversions.
Fills REMORA's internal forcing MultiFabs from states and records which lanes were successfully updated in driver_atmos_state_from_driver. Unit conversions applied: Pair Pa to mb; Tair K to Celsius.
| [in] | states | ATM2OCN forcing slab buffer from the driver (Warner et al. 2010, Block B state-passing contract), indexed by AtmosState. Expected units per lane: Uwind/Vwind: 10-m winds [m/s]; Pair: mean sea-level pressure [Pa, converted to mb]; Qair: near-surface specific humidity [kg/kg]; Tair: 2-m air temperature [K, converted to degC]; Cloud: cloud fraction [0-1]; Rain: precipitation rate [kg/m^2/s]; SWrad/LWrad: downwelling shortwave/longwave radiation [W/m^2]. Missing lanes (null pointer or index out of range) are skipped; driver_atmos_state_from_driver tracks populated lanes for the bulk-flux parameterization fallback logic. |
| [in] | time | Current ocean model time (unused; retained for driver interface conformance). |
Definition at line 571 of file REMORA_Coupling.cpp.

| void REMORA::average_down_masked | ( | int | crse_lev, |
| const amrex::MultiFab & | S_fine, | ||
| amrex::MultiFab & | S_crse, | ||
| const amrex::MultiFab & | msk_fine, | ||
| const amrex::MultiFab & | cmsk, | ||
| int | ncomp, | ||
| int | face_dir | ||
| ) |
Average one field from crse_lev+1 onto crse_lev, weighting by the land/sea mask.
Follows amrex::average_down's non-MFIter-safe branch, since coarsen(grids[flev]) does not match grids[crse_lev] in general: compute onto a temporary on the coarsened-fine layout, then ParallelCopy that onto the coarse level.
| [in] | crse_lev | level to average down to |
| [in] | S_fine | fine-level field |
| [out] | S_crse | coarse-level field |
| [in] | msk_fine | fine-level mask, on S_fine's layout and nodality |
| [in] | cmsk | coarse-level mask, already on the coarsened-fine layout |
| [in] | ncomp | number of components to average |
| [in] | face_dir | face direction, or -1 for a cell-centered field |
Definition at line 3113 of file REMORA.cpp.
Referenced by AverageDownTo().


| void REMORA::average_down_with_grow_cells | ( | int | lev, |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > & | mf, | ||
| bool | use_mask = false |
||
| ) |
Average down from level lev+1 to lev in mf, including grow cells.
Average a full-domain field from crse_lev+1 onto crse_lev, grow cells included.
With use_mask this takes REMORAMaskedAvgDown's mask-weighted mean instead of the plain one, so the initial state on a coarse cell only partly covered by water comes from that water. It is the formula AverageDownTo applies every step, so the initial and the running state agree on what a land point holds. Leave use_mask off for grid metrics: a cell size is well defined under land, and masking pm/pn would corrupt it.
| [in] | crse_lev | level to average data down to |
| [in,out] | vec_mf | vector over levels of multifabs containing data to average |
| [in] | use_mask | weight by the land/sea mask rather than averaging every fine cell |
Definition at line 3273 of file REMORA.cpp.
Referenced by init_biology_ic_full_domain(), init_data_full_domain_from_netcdf(), init_full_domain_from_analytic(), init_grid_vars_full_domain_from_netcdf(), and init_zeta_full_domain_from_netcdf().


|
private |
set covered coarse cells to be the average of overlying fine cells
Definition at line 2627 of file REMORA.cpp.
Referenced by InitData().


|
private |
more flexible version of AverageDown() that lets you average down across multiple levels
Definition at line 2896 of file REMORA.cpp.
Referenced by AverageDown(), post_timestep(), timeStep(), and timeStepML().


|
inlinenoexcept |
|
inlinenoexcept |
Definition at line 1466 of file REMORA.H.
Referenced by advance_2d(), advance_3d_ml(), init_bcs(), init_bdry_from_netcdf(), init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), init_stuff(), MakeNewLevelFromCoarse(), RemakeLevel(), resize_stuff(), and set_2darrays().


|
inlinenoexcept |
Definition at line 1467 of file REMORA.H.
Referenced by advance_2d(), advance_3d_ml(), init_bcs(), init_bdry_from_netcdf(), init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), init_stuff(), MakeNewLevelFromCoarse(), RemakeLevel(), resize_stuff(), and set_2darrays().


|
inlinenoexcept |
Definition at line 1468 of file REMORA.H.
Referenced by advance_2d(), fill_from_bdyfiles(), init_bcs(), init_bdry_from_netcdf(), init_clim_nudg_coeff(), init_stuff(), init_zeta_from_netcdf(), resize_stuff(), and set_zeta_averaged_down().


|
inlinenoexcept |
| void REMORA::build_covered_mask | ( | int | crse_lev, |
| amrex::MultiFab & | covered | ||
| ) |
Average one field down a level, weighted by the land/sea mask.
coarse cell mask, 1 where covered by lev+1, with one grow cell
Coarse-level cell mask: 1 where level crse_lev+1 covers the cell, 0 elsewhere, with one grow cell so a face straddling the patch edge can see the cell outside it.
| [in] | crse_lev | coarse level |
| [out] | covered | mask on the coarse layout |
Definition at line 3042 of file REMORA.cpp.
Referenced by AverageDownTo().


| MultiFab & REMORA::build_fine_mask | ( | int | level | ) |
Make mask to zero out covered cells (for mesh refinement)
| [in] | lev | level to calculate on |
Definition at line 250 of file REMORA_SumIQ.cpp.
Referenced by volWgtSumMF().


| void REMORA::bulk_fluxes | ( | int | lev, |
| amrex::MultiFab * | mf_cons, | ||
| amrex::MultiFab * | mf_uwind, | ||
| amrex::MultiFab * | mf_vwind, | ||
| amrex::MultiFab * | mf_Tair, | ||
| amrex::MultiFab * | mf_qair, | ||
| amrex::MultiFab * | mf_Pair, | ||
| amrex::MultiFab * | mf_srflx, | ||
| amrex::MultiFab * | mf_longwave_down, | ||
| amrex::MultiFab * | mf_evap, | ||
| amrex::MultiFab * | mf_sustr, | ||
| amrex::MultiFab * | mf_svstr, | ||
| amrex::MultiFab * | mf_stflux, | ||
| amrex::MultiFab * | mf_lrflx, | ||
| amrex::MultiFab * | mf_lhflx, | ||
| amrex::MultiFab * | mf_shflx, | ||
| const int | N | ||
| ) |
Calculate bulk temperature, salinity, wind fluxes.
| [in] | lev | level to operate on |
| [in] | mf_cons | scalar data: temperature, salinity, passsive scalar, etc |
| [in] | mf_uwind | u-direction wind dvelocity |
| [in] | mf_vwind | v-direction wind dvelocity |
| [in] | mf_Tair | air temperature [°C] |
| [in] | mf_qair | specific humidity [kg/kg] |
| [in] | mf_Pair | air pressure [mb] |
| [in] | mf_srflx | shortwave radiation flux [W/m²] |
| [in] | mf_longwave_down | external longwave radiation flux [W/m²] |
| [in,out] | mf_evap | evaporation rate |
| [out] | mf_sustr | u-direction surface momentum stress |
| [out] | mf_svstr | v-direction surface momentum stress |
| [out] | mf_stflux | surface scalar flux (temperature, salinity) |
| [out] | mf_lrflx | longwave radiation flux |
| [in,out] | mf_lhflx | latent heat flux |
| [in,out] | mf_shflx | sensible heat flux |
| [in] | N | number of vertical levels |
Spec Hum (kg/kg)
Definition at line 25 of file REMORA_bulk_flux.cpp.
Referenced by setup_step().


|
inlinestatic |
Evaluate stability function psi for moisture and heat.
Definition at line 2206 of file REMORA.H.
Referenced by bulk_fluxes().


|
inlinestatic |
Evaluate stability function psi for wind speed.
Definition at line 2174 of file REMORA.H.
Referenced by bulk_fluxes().


| void REMORA::calc_stretch_coeffs | ( | ) |
calculate vertical stretch coefficients
Definition at line 26 of file REMORA_DepthStretchTransform.H.
Referenced by init_stretch_coeffs().


| void REMORA::calculate_nodal_masks | ( | int | lev | ) |
Calculate u-, v-, and psi-point masks based on rho-point masks after analytic initialization.
| [in] | lev | level to operate on |
Definition at line 986 of file REMORA_make_new_level.cpp.
Referenced by update_nodal_masks().


| void REMORA::check_cf_metrics | ( | int | crse_lev | ) |
check that fine cell edges sum to the coarse edge across an interface
Measure whether the fine cell edges tile the coarse ones across a coarse-fine interface: the sum of on_u over the r covering fine faces against on_u on the coarse face.
Exact where pm and pn are uniform, and not guaranteed otherwise – on the NetCDF path a finer level interpolates its metrics from the parent's and rescales them, which need not preserve a sum. set_2d_cf_bcs cannot impose a conservative flux without this identity.
| [in] | crse_lev | coarse side of the interface |
Definition at line 2670 of file REMORA.cpp.
Referenced by AverageDownTo().


| void REMORA::check_mask_consistency | ( | ) |
Check every level pair's masks against each other, and every level's mask values, reporting according to remora.mask_consistency.
Check the land-sea masks for what the rest of the code relies on. Only runs when remora.check_mask_consistency is set; remora.mask_consistency picks abort or warn.
Per level, that the masks hold only the values they are meant to and that no water cell has a non-positive depth. Per level pair, over the region the finer level covers, that no coarse water point sits over fine points that are all land.
Definition at line 1101 of file REMORA.cpp.
Referenced by InitData(), timeStep(), and timeStepML().


| void REMORA::check_plot_nodal_z | ( | const amrex::Vector< const amrex::MultiFab * > & | nd, |
| const amrex::Vector< amrex::Geometry > & | g | ||
| ) |
Check the nodal z a viewer rebuilds from what WritePlotFile is about to write.
nd[lev] is the nodal displacement on the grid g[lev] describes – the native geometry, or g2 on the expand_plotvars_to_unif_rr path – so a viewer's node is z = ProbLo(2) + k*dz + nu_z. Per level, the lowest and highest node layers must reproduce z_phys_nd's bottom and top to rounding. Per level pair, at every fine node that coincides with a coarse node, |z_f - z_c| is taken over the patch interior and its perimeter separately: a perimeter node averages fine ghost columns the parent interpolated, so it is reported, and only the interior is held to check_plot_z_tol.
| [in] | nd | nodal displacement per level, as passed to the writer |
| [in] | g | geometry per level, as passed to the writer |
Definition at line 1101 of file REMORA_Plotfile.cpp.
Referenced by WritePlotFile().


| void REMORA::clear_avgdown_masks | ( | int | lev | ) |
Drop the cached average-down masks of every level pair that involves lev.
Drop the cached average-down masks of every level pair that involves lev, so the next AverageDownTo rebuilds them.
Called from set_masks, which is the one place a level's mask is written, so a regrid cannot leave a cached copy of a mask that no longer exists behind.
| [in] | lev | level whose mask has just been rebuilt |
Definition at line 2646 of file REMORA.cpp.
Referenced by set_masks().


|
overridevirtual |
Delete level data Overrides the pure virtual function in AmrCore.
Delete level data. Overrides the pure virtual function in AmrCore
| [in] | lev | level to operate on |
Definition at line 801 of file REMORA_make_new_level.cpp.

|
static |
Shrink an x- or y-nodal momentum tilebox to the faces ROMS nudges.
ROMS nudges momentum toward climatology over i=IstrU..Iend (j=JstrV..Jend), which excludes the u-face on the western and eastern domain edges (v-face on the southern and northern edges). This returns the part of nodal_bx that survives that exclusion. Under EW_PERIODIC (NS_PERIODIC) ROMS sets IstrU=Istr (JstrV=Jstr) and nudges every face, so a periodic direction is left alone.
| [in] | nodal_bx | box from MFIter::nodaltilebox(dir) |
| [in] | dir | direction the box is nodal in (0 for u, 1 for v) |
| [in] | domain | cell-centered problem domain at this level |
| [in] | is_periodic | whether dir is periodic |
| [in] | nodal_bx | box from MFIter::nodaltilebox(dir) |
| [in] | dir | direction the box is nodal in (0 for u, 1 for v) |
| [in] | domain | cell-centered problem domain at this level |
| [in] | is_periodic | whether dir is periodic |
Definition at line 52 of file REMORA_apply_clim_nudg.cpp.
Referenced by advance_2d(), and setup_step().


| void REMORA::coarsen_bathymetry_with_grow_cells | ( | int | crse_lev | ) |
Coarsen the full-domain bathymetry from crse_lev+1 onto crse_lev, grow cells included, weighted by the land/sea mask.
Coarsen the full-domain bathymetry from crse_lev+1 onto crse_lev, grow cells included, weighted by the land/sea mask.
Averaging every fine cell would mix in whatever the grid file holds under land, which on a ROMS grid is a fill value with no physical meaning. A wet coarse cell should take the depth of the water under it. See REMORA_MaskedAverageDown.H for why the arithmetic is written the way it is.
| [in] | crse_lev | level to coarsen onto |
Definition at line 1326 of file REMORA.cpp.
Referenced by init_bathymetry_full_domain_from_analytic(), and init_bathymetry_full_domain_from_netcdf().


| void REMORA::coarsen_masks_with_grow_cells | ( | int | crse_lev | ) |
Coarsen the full-domain rho-mask from crse_lev+1 onto crse_lev, grow cells included, by the rule that a coarse cell is land only if all its fine cells are land.
Coarsen the full-domain rho-mask from crse_lev+1 onto crse_lev, grow cells included, so a coarse cell is land only if every one of its fine cells is land.
average_down_with_grow_cells cannot be used: an arithmetic mean over a partly wet group of fine cells gives a fractional value, and the mask has to stay exactly 0 or 1. Taking the cell as wet also means the coarse level never declares land where the fine grid found water.
| [in] | crse_lev | level to coarsen onto |
Definition at line 1068 of file REMORA.cpp.
Referenced by init_masks_full_domain_from_analytic(), and init_masks_full_domain_from_netcdf().


|
private |
a wrapper for estTimeStep()
Definition at line 57 of file REMORA_ComputeTimestep.cpp.
Referenced by Evolve(), EvolveOneStep(), and InitData().


| void REMORA::ConfigureDriverAtmosToOceanCoupling | ( | bool | use_coupling_driver, |
| bool | use_two_way_coupling, | ||
| DriverAtmosForcingMode | active_mode | ||
| ) |
|
private |
Construct FillPatchers.
| [in] | lev | level to operate on |
Definition at line 583 of file REMORA.cpp.
Referenced by init_stuff(), InitData(), and MakeNewLevelFromCoarse().


| void REMORA::convert_inv_days_to_inv_s | ( | amrex::MultiFab * | ) |
Convert data in a multifab from inverse days to inverse seconds.
| [in,out] | mf | multifab of data to convert |
Definition at line 1100 of file REMORA_init_from_netcdf.cpp.
Referenced by init_clim_nudg_coeff_from_netcdf().


| void REMORA::coriolis | ( | const amrex::Box & | xbx, |
| const amrex::Box & | ybx, | ||
| const amrex::Array4< amrex::Real const > & | uold, | ||
| const amrex::Array4< amrex::Real const > & | vold, | ||
| const amrex::Array4< amrex::Real > & | ru, | ||
| const amrex::Array4< amrex::Real > & | rv, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | fomn, | ||
| int | nrhs, | ||
| int | nr | ||
| ) |
Calculate Coriolis terms.
| [in] | xbx | nodal box in x-direction |
| [in] | ybx | nodal box in y-direction |
| [in] | uold | u-direction velocity |
| [in] | vold | v-direction velocity |
| [in,out] | ru | u-direction velocity RHS |
| [in,out] | rv | v-direction velocity RHS |
| [in] | Hz | vertical cell height |
| [in] | fomn | scaled coriolis factor |
| [in] | nrhs | which velocity component to use |
| [in] | nr | which RHS component to update |
Definition at line 19 of file REMORA_coriolis.cpp.
Referenced by advance_2d(), and setup_step().


| void REMORA::curvilinear | ( | const amrex::Box & | bx, |
| const amrex::Box & | xbx, | ||
| const amrex::Box & | ybx, | ||
| const amrex::Array4< amrex::Real const > & | uold, | ||
| const amrex::Array4< amrex::Real const > & | vold, | ||
| const amrex::Array4< amrex::Real > & | ru, | ||
| const amrex::Array4< amrex::Real > & | rv, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | dndx, | ||
| const amrex::Array4< amrex::Real const > & | dmde, | ||
| int | nrhs, | ||
| int | nr | ||
| ) |
Calculate curvilinear advection terms.
| [in] | bx | box to update on |
| [in] | xbx | nodal-x box to update on |
| [in] | ybx | nodal-y box to update on |
| [in] | uold | u-direction velocity |
| [in] | vold | v-direction velocity |
| [in,out] | ru | u-direction velocity RHS |
| [in,out] | rv | v-direction velocity RHS |
| [in] | Hz | vertical cell height |
| [in] | dndx | d(1/n)/d(xi) |
| [in] | dmde | d(1/m)/d(eta) |
| [in] | nrhs | which velocity component to use |
| [in] | nr | which RHS component to update |
Definition at line 21 of file REMORA_curvilinear.cpp.
Referenced by advance_2d(), and setup_step().


|
inlineprivate |
Helper function for IO stream.
Definition at line 2084 of file REMORA.H.
Referenced by sum_integrated_quantities().


|
inlineprivatenoexcept |
|
private |
build or rebuild the flux register between lev and lev-1
Build the flux register holding the tracer flux mismatch between lev and lev-1. Called whenever a level is created or its grids change, since one appearing mid-run through tagging would otherwise have no register.
| [in] | lev | level of refinement, > 0 |
Definition at line 2755 of file REMORA.cpp.
Referenced by InitData(), MakeNewLevelFromCoarse(), and RemakeLevel().


|
private |
Define FillPatchers.
| [in] | lev | level to operate on |
Definition at line 639 of file REMORA.cpp.
Referenced by init_stuff(), MakeNewLevelFromCoarse(), and RemakeLevel().


|
inlinestaticconstexprnoexcept |
Definition at line 100 of file REMORA.H.
Referenced by InitData(), and setup_step().


|
inlinenoexcept |
Elapsed time since start_time of a time on the model clock.
Definition at line 2158 of file REMORA.H.
Referenced by ComputeDt(), Evolve(), EvolveOneStep(), and ReadCheckpointFile().

| void REMORA::ensure_full_domain_masks | ( | int | top_lev | ) |
Make sure the full-domain rho-mask exists on levels 0 through top_lev.
Make sure the full-domain rho-mask exists on levels 0 through top_lev.
Only fills what the hires_grid_level coarsening has not: levels above it, by injection, and level 0 itself when there is no high-resolution grid and the mask was given per level.
| [in] | top_lev | highest level that needs a mask |
Definition at line 3197 of file REMORA.cpp.
Referenced by init_only().


|
overridevirtual |
Tag cells for refinement.
Function to tag cells for refinement – this overrides the pure virtual function in AmrCore
| [in] | levc | level of refinement (0 is coarsest level) |
| [out] | tags | array of tagged cells |
| [in] | time | current time |
| [in] | ngrow | number of grow cells |
Definition at line 240 of file REMORA_Tagging.cpp.

| Real REMORA::estTimeStep | ( | int | level | ) | const |
compute dt from CFL considerations
Estimate the largest stable slow (baroclinic) timestep on a level.
The estimate is the smaller of an advective limit and an external gravity wave limit, each a maximum over the wet cells of the level:
dt_adv = cfl / max( |u|*pm, |v|*pn, |w|/Hz ) dt_grav = cfl * ndtfast / max( sqrt(g*|h|) * sqrt(pm^2 + pn^2) )
The second is the Courant quantity ROMS forms as Cg_max in metrics.F. It is what keeps the estimate finite for a run started from rest, where every velocity is zero and the advective limit alone is undefined.
pm and pn are the per-cell 1/dx and 1/dy metric terms rather than the geometry's uniform cell size, so stretched and curvilinear grids give the right answer.
| [in] | level | level of refinement |
Definition at line 119 of file REMORA_ComputeTimestep.cpp.
Referenced by ComputeDt().


| void REMORA::Evolve | ( | ) |
Advance solution to final time.
Definition at line 273 of file REMORA.cpp.

| amrex::Real REMORA::EvolveOneStep | ( | amrex::Real | time, |
| amrex::Real | dt_request | ||
| ) |
| void REMORA::extrapolate_metric_to_physical_boundaries | ( | amrex::MultiFab & | mf, |
| const amrex::Geometry & | geom | ||
| ) |
Extrapolate grid metrics to edge of MultiFab.
Copy the outermost in-domain ghost row of a cell-centred field outward over the remaining ghost rows at the physical boundaries. Used for grid metrics and bathymetry in every build, so it lives here rather than in the NetCDF-only initialisation.
| [in,out] | mf | multifab of data to extrapolate on |
| [in] | geom | geometry |
Definition at line 850 of file REMORA.cpp.
Referenced by init_grid_vars_from_netcdf(), init_grid_vars_full_domain_from_netcdf(), set_bathymetry_averaged_down(), and set_grid_vars_averaged_down().


| void REMORA::fill_3d_masks | ( | int | lev | ) |
Copy maskr to all z levels.
| [in] | lev | level to operate on |
Definition at line 1049 of file REMORA_make_new_level.cpp.
Referenced by set_masks().


| void REMORA::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.
Definition at line 20 of file REMORA_BoundaryConditions_netcdf.cpp.
Referenced by advance_3d(), FillCoarsePatchMap(), FillPatch(), and init_zeta_from_netcdf().


| void REMORA::FillBdyCCVels | ( | int | lev, |
| amrex::MultiFab & | mf_cc_vel | ||
| ) |
Fill the physical boundary conditions for cell-centered velocity (diagnostic only)
Fill boundary ghost cells for cell-centered velocities. Each component takes the sign implied by its own BC, which with remora.boundary_per_variable can differ between u, v and w on one face.
| [in] | lev | level to fill at |
| [in,out] | mf_cc_vel | MultiFab of cell-centered velocities |
Definition at line 631 of file REMORA_FillPatch.cpp.
Referenced by ErrorEst(), and WritePlotFile().


| void REMORA::FillCoarsePatch | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab * | mf_fine, | ||
| amrex::MultiFab * | mf_crse, | ||
| const int | bccomp, | ||
| const int | bdy_var_type = BdyVars::null, |
||
| const int | icomp = 0, |
||
| const bool | fill_all = true, |
||
| const int | n_not_fill = 0, |
||
| const int | icomp_calc = 0, |
||
| const amrex::Real | dt = zero, |
||
| const amrex::MultiFab & | mf_calc = amrex::MultiFab() |
||
| ) |
fill an entire multifab by interpolating from the coarser level
Fill an entire multifab by interpolating from the coarser level – this is used only when a new level of refinement is being created during a run (i.e not at initialization) This will never be used with static refinement.
| [in] | lev | level to FillPatch on |
| [in] | time | current time |
| [in,out] | mf_to_fill | MultiFab to fill |
| [in,out] | mf_crse | MultiFab of coarse data |
| [in] | bccomp | index into domain_bcs_type |
| [in] | bdy_var_type | when filling from NetCDF, which boundary data |
| [in] | icomp | component to fill |
| [in] | fill_all | whether to fill all components |
| [in] | icomp_calc | component to use in RHS boundary calculation |
| [in] | dt_lev | time step at this level |
| [in] | mf_calc | data to use in RHS boundary calculation |
Definition at line 435 of file REMORA_FillPatch.cpp.
Referenced by FillCoarsePatchMap(), init_only(), MakeNewLevelFromCoarse(), set_bathymetry(), set_coriolis(), set_grid_scale(), and set_zeta().


| void REMORA::FillCoarsePatchMap | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab * | mf_fine, | ||
| amrex::MultiFab * | mf_crse, | ||
| const int | bccomp, | ||
| const int | bdy_var_type = BdyVars::null, |
||
| const int | icomp = 0, |
||
| const bool | fill_all = true, |
||
| const int | n_not_fill = 0, |
||
| const int | icomp_calc = 0, |
||
| const amrex::Real | dt = zero, |
||
| const amrex::MultiFab & | mf_calc = amrex::MultiFab(), |
||
| amrex::Interpolater * | mapper = nullptr |
||
| ) |
fill an entire multifab by interpolating from the coarser level, explicitly specifying interpolator to use
Fill an entire multifab by interpolating from the coarser level – this is used only when a new level of refinement is being created during a run (i.e not at initialization) This will never be used with static refinement.
| [in] | lev | level to FillPatch on |
| [in] | time | current time |
| [in,out] | mf_to_fill | MultiFab to fill |
| [in,out] | mf_crse | MultiFab of coarse data |
| [in] | bccomp | index into domain_bcs_type |
| [in] | bdy_var_type | when filling from NetCDF, which boundary data |
| [in] | icomp | component to fill |
| [in] | fill_all | whether to fill all components |
| [in] | icomp_calc | component to use in RHS boundary calculation |
| [in] | dt_lev | time step at this level |
| [in] | mf_calc | data to use in RHS boundary calculation |
Definition at line 469 of file REMORA_FillPatch.cpp.
Referenced by FillCoarsePatch(), and FillCoarsePatchPC().


| void REMORA::FillCoarsePatchPC | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab * | mf_fine, | ||
| amrex::MultiFab * | mf_crse, | ||
| const int | bccomp, | ||
| const int | bdy_var_type = BdyVars::null, |
||
| const int | icomp = 0, |
||
| const bool | fill_all = true, |
||
| const int | n_not_fill = 0, |
||
| const int | icomp_calc = 0, |
||
| const amrex::Real | dt = zero, |
||
| const amrex::MultiFab & | mf_calc = amrex::MultiFab() |
||
| ) |
fill an entire multifab by interpolating from the coarser level using the piecewise constant interpolater
Like FillCoarsePatch but uses piecewise constant interpolater
| [in] | lev | level to FillPatch on |
| [in] | time | current time |
| [in,out] | mf_to_fill | MultiFab to fill |
| [in,out] | mf_crse | MultiFab of coarse data |
| [in] | bccomp | index into domain_bcs_type |
| [in] | bdy_var_type | when filling from NetCDF, which boundary data |
| [in] | icomp | component to fill |
| [in] | fill_all | whether to fill all components |
| [in] | icomp_calc | component to use in RHS boundary calculation |
| [in] | dt_lev | time step at this level |
| [in] | mf_calc | data to use in RHS boundary calculation |
Definition at line 401 of file REMORA_FillPatch.cpp.
Referenced by set_masks().


| void REMORA::FillPatch | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab & | mf_to_be_filled, | ||
| amrex::Vector< amrex::MultiFab * > const & | mfs, | ||
| const int | bccomp, | ||
| const int | bdy_var_type = BdyVars::null, |
||
| const int | icomp = 0, |
||
| const bool | fill_all = true, |
||
| const bool | fill_set = false, |
||
| const int | n_not_fill = 0, |
||
| const int | icomp_calc = 0, |
||
| const amrex::Real | dt = zero, |
||
| const amrex::MultiFab & | mf_calc = amrex::MultiFab(), |
||
| amrex::Vector< amrex::MultiFab * > const & | mfs_crse_old = {}, |
||
| amrex::Vector< amrex::MultiFab * > const & | mfs_crse_new = {} |
||
| ) |
Fill a new MultiFab by copying in phi from valid region and filling ghost cells.
Fill valid and ghost data in the MultiFab "mf" This version fills the MultiFab mf_to_fill in valid regions with the "state data" at the given time; values in mf when it is passed in are not used.
| [in] | lev | level to FillPatch on |
| [in] | time | current time |
| [in,out] | mf_to_fill | MultiFab to fill |
| [in] | mfs | vector over levels of multifabs associated with mf_to_fill |
| [in] | bccomp | index into domain_bcs_type |
| [in] | bdy_var_type | when filling from NetCDF, which boundary data |
| [in] | icomp | component to fill |
| [in] | fill_all | whether to fill all components |
| [in] | fill_set | whether to use FillPatchers |
| [in] | icomp_calc | component to use in RHS boundary calculation |
| [in] | dt_lev | time step at this level |
| [in] | mf_calc | data to use in RHS boundary calculation |
Definition at line 30 of file REMORA_FillPatch.cpp.
Referenced by Advance(), advance_2d(), advance_3d(), advance_3d_ml(), ErrorEst(), gls_corrector(), gls_prestep(), init_bathymetry_from_netcdf(), init_grid_vars_from_netcdf(), init_zeta_from_netcdf(), InitData(), RemakeLevel(), set_2darrays(), set_analytic_vmix(), set_coriolis(), set_hmixcoef(), set_init_data_averaged_down(), set_smflux(), set_surface_state(), set_zeta_averaged_down(), setup_step(), timeStep(), and timeStepML().


| void REMORA::FillPatchNoBC | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab & | mf_to_be_filled, | ||
| amrex::Vector< amrex::MultiFab * > const & | mfs, | ||
| const int | bdy_var_type = BdyVars::null, |
||
| const int | icomp = 0, |
||
| const bool | fill_all = true, |
||
| const bool | fill_set = false, |
||
| amrex::Vector< amrex::MultiFab * > const & | mfs_crse_old = {}, |
||
| amrex::Vector< amrex::MultiFab * > const & | mfs_crse_new = {} |
||
| ) |
Fill a new MultiFab by copying in phi from valid region and filling ghost cells without applying boundary conditions.
Fill valid and ghost data in the MultiFab "mf" This version fills the MultiFab mf_to_fill in valid regions with the "state data" at the given time; values in mf when it is passed in are not used. Unlike FillPatch, FillPatchNoBC does not apply boundary conditions
| [in] | lev | level to FillPatch on |
| [in] | time | current time |
| [in,out] | mf_to_fill | MultiFab to fill |
| [in] | mfs | vector over levels of multifabs associated with mf_to_fill |
| [in] | bdy_var_type | when filling from NetCDF, which boundary data |
| [in] | icomp | component to fill |
| [in] | fill_all | whether to fill all components |
| [in] | fill_set | whether to use FillPatchers |
Definition at line 211 of file REMORA_FillPatch.cpp.
Referenced by advance_2d(), advance_3d_ml(), gls_corrector(), setup_step(), timeStep(), and WritePlotFile().


|
inlinenoexcept |
Definition at line 1458 of file REMORA.H.
Referenced by gls_corrector(), init_bcs(), init_only(), set_coriolis(), set_grid_scale(), set_masks(), and WritePlotFile().


|
inlinenoexcept |
Definition at line 1457 of file REMORA.H.
Referenced by init_bathymetry_from_netcdf(), init_bcs(), init_grid_vars_from_netcdf(), MakeNewLevelFromCoarse(), RemakeLevel(), set_bathymetry(), set_hmixcoef(), set_smflux(), and set_surface_state().


| const DistributionMapping & REMORA::full_domain_dmap | ( | ) |
The shared full-domain DistributionMapping, built on first use.
Definition at line 335 of file REMORA_init.cpp.
Referenced by allocate_bathymetry_grid_vars_full_domain(), allocate_init_full_domain(), and ensure_full_domain_masks().


| amrex::Real REMORA::get_t_old | ( | int | lev | ) | const |
Accessor method for t_old to expose to outside classes.
| [in] | lev | level at which to get time |
Definition at line 3344 of file REMORA.cpp.

|
inlineprivate |
flux register between lev and lev-1
Definition at line 1718 of file REMORA.H.
Referenced by Advance(), advance_3d(), and reflux_to().


| void REMORA::GetAtmosToOceanRhoLayout | ( | amrex::BoxArray & | ba, |
| amrex::DistributionMapping & | dm | ||
| ) | const |
| void REMORA::GetAtmosToOceanUFaceLayout | ( | amrex::BoxArray & | ba, |
| amrex::DistributionMapping & | dm | ||
| ) | const |
| void REMORA::GetAtmosToOceanVFaceLayout | ( | amrex::BoxArray & | ba, |
| amrex::DistributionMapping & | dm | ||
| ) | const |
|
inlineprivate |
Get CPU time used.
Definition at line 2103 of file REMORA.H.
Referenced by writeJobInfo().


|
private |
utility to copy in data from old and/or new state into another multifab
Definition at line 327 of file REMORA_FillPatch.cpp.
Referenced by GetDataAtTime().


| void REMORA::GetDeckConfiguredAtmosStateLanes | ( | std::array< bool, AtmosState::NumTypes > & | deck_configured | ) | const |
| void REMORA::gls_corrector | ( | int | lev, |
| amrex::MultiFab * | mf_gls, | ||
| amrex::MultiFab * | mf_tke, | ||
| amrex::MultiFab & | mf_W, | ||
| amrex::MultiFab * | mf_Akv, | ||
| amrex::MultiFab * | mf_Akt, | ||
| amrex::MultiFab * | mf_Akk, | ||
| amrex::MultiFab * | mf_Akp, | ||
| amrex::MultiFab * | mf_mskr, | ||
| amrex::MultiFab * | mf_msku, | ||
| amrex::MultiFab * | mf_mskv, | ||
| const int | nstp, | ||
| const int | nnew, | ||
| const int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Corrector step for GLS calculation.
| [in] | lev | level to operate on |
| [in,out] | mf_gls | turbulent generic length scale |
| [in,out] | mf_tke | turbulent kinetic energy |
| [in] | mf_W | vertical velocity |
| [in,out] | mf_Akv | vertical viscosity coefficient |
| [in,out] | mf_Akt | vertical diffusivity coefficients |
| [in,out] | mf_Akk | turbulent kinetic energy vertical diffusion coefficient |
| [in,out] | mf_Akp | turbulent length scale vertical diffusion coefficient |
| [in] | mf_mskr | land-sea mask on rho points |
| [in] | mf_msku | land-sea mask on u points |
| [in] | mf_mskv | land-sea mask on v points |
| [in] | nstp | index of last time step in gls and tke MultiFabs |
| [in] | nnew | index of time step to update in gls and tke MultiFabs |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this level |
Definition at line 247 of file REMORA_gls.cpp.
Referenced by advance_3d().


| void REMORA::gls_prestep | ( | int | lev, |
| amrex::MultiFab * | mf_gls, | ||
| amrex::MultiFab * | mf_tke, | ||
| amrex::MultiFab & | mf_W, | ||
| amrex::MultiFab * | mf_msku, | ||
| amrex::MultiFab * | mf_mskv, | ||
| const int | nstp, | ||
| const int | nnew, | ||
| const int | iic, | ||
| const int | ntfirst, | ||
| const int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Prestep for GLS calculation.
| [in] | lev | level to operate on |
| [in,out] | mf_gls | turbulent generic length scale |
| [in,out] | mf_tke | turbulent kinetic energy |
| [in] | mf_W | vertical velocity |
| [in] | mf_msku | land-sea mask on u points |
| [in] | mf_mskv | land-sea mask on v points |
| [in] | nstp | index of last time step in gls and tke MultiFabs |
| [in] | nnew | index of time step to update in gls and tke MultiFabs |
| [in] | iic | which time step we're on |
| [in] | ntfirst | what is the first time step? |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this level |
Definition at line 20 of file REMORA_gls.cpp.
Referenced by setup_step().


|
staticprivate |
utility to skip to next line in Header
Definition at line 8 of file REMORA_Checkpoint.cpp.
Referenced by ReadCheckpointFile().


|
private |
Initialize initial problem data from analytic functions.
| [in] | lev | level to initialize on |
Definition at line 29 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_bathymetry_from_netcdf | ( | int | lev | ) |
Bathymetry data initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 669 of file REMORA_init_from_netcdf.cpp.
Referenced by set_bathymetry().


| void REMORA::init_bathymetry_full_domain_from_analytic | ( | ) |
Full domain bathymetry data initialization from analytic.
Definition at line 387 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_bathymetry_full_domain_from_netcdf | ( | ) |
Full domain high-res bathymetry data initialization from NetCDF file.
Definition at line 1115 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


|
private |
Read in boundary parameters from input file and set up data structures.
Definition at line 9 of file REMORA_init_bcs.cpp.
Referenced by InitData().


| void REMORA::init_bdry_from_netcdf | ( | int | lev | ) |
Boundary data initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 789 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


| void REMORA::init_beta_plane_coriolis | ( | int | lev | ) |
Calculate Coriolis parameters from beta plane parametrization.
| [in] | lev | level to initialize on |
Definition at line 126 of file REMORA_init.cpp.
Referenced by set_coriolis().


| void REMORA::init_biology_from_netcdf | ( | int | lev | ) |
Biology initialization from NetCDF file.
Initialize the biological tracers from the initial NetCDF file.
Called from init_biology_ic, which chooses between this and the analytic profile on remora.biology_ic_type rather than on remora.ic_type.
| lev | Integer specifying the current level |
Definition at line 261 of file REMORA_init_from_netcdf.cpp.
Referenced by init_biology_ic().


| void REMORA::init_biology_full_domain_from_netcdf | ( | ) |
Full-domain high-res biology initialization from NetCDF file.
Biology initialization from full-domain NetCDF file.
Definition at line 399 of file REMORA_init_from_netcdf.cpp.
Referenced by init_biology_ic_full_domain().


| void REMORA::init_biology_ic | ( | int | lev | ) |
Initialize biology tracers from whichever source remora.biology_ic_type selects. Call after the physical fields exist: the analytic profiles are functions of temperature.
Initialize the biology tracers from whichever source remora.biology_ic_type selects.
Deliberately decoupled from remora.ic_type. A NetCDF initial file supplies only the tracers it happens to contain – the BioToy file has oxygen but no PO4 or ODU – so validating an option set the file does not cover would otherwise mean regenerating binary input that no fresh clone can reproduce. With biology_ic_type = analytic the physical fields still come from NetCDF while biology comes from the problem's analytic profile.
Must be called after the physical fields are initialized: the analytic biology profiles are functions of temperature.
| [in] | lev | level to initialize on |
Definition at line 53 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_biology_ic_full_domain | ( | ) |
Full-domain counterpart of init_biology_ic, for the hires_init_level average-down path.
Full-domain counterpart of init_biology_ic, for the hires_init_level path where initial data is specified on a high-resolution level and averaged down.
Fills the biology components of vec_cons_full_domain[hires_init_level]. Must be called after the physical fields on that level are set (the analytic profiles are functions of temperature) and before whatever averages vec_cons_full_domain down.
Definition at line 90 of file REMORA_init.cpp.
Referenced by init_full_domain_from_analytic(), and init_only().


| void REMORA::init_clim_nudg_coeff | ( | int | lev | ) |
Wrapper to initialize climatology nudging coefficient.
| [in] | lev | level to operate on |
Definition at line 294 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_clim_nudg_coeff_from_netcdf | ( | int | lev | ) |
Climatology nudging coefficient initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 922 of file REMORA_init_from_netcdf.cpp.
Referenced by init_clim_nudg_coeff().


| void REMORA::init_coriolis_from_netcdf | ( | int | lev | ) |
Coriolis parameter data initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 716 of file REMORA_init_from_netcdf.cpp.
Referenced by set_coriolis().


| void REMORA::init_data_from_netcdf | ( | int | lev | ) |
Problem initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 152 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


| void REMORA::init_data_full_domain_from_netcdf | ( | ) |
High resolution roblem initialization from NetCDF file.
Definition at line 298 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


| void REMORA::init_full_domain_from_analytic | ( | ) |
Initialize high-resolution initial data, zeta included, from analytic functions.
Evaluate the analytic initial state, free surface, and biology on the full domain at hires_init_level and average them down to level 0.
That level does not exist yet, so its coordinates are built here: x_r and y_r from the cell size (constant grid scale), z_r and z_w from the free surface and the bathymetry. The bathymetry is the hires grid data when hires_grid_level >= hires_init_level, and the analytic bathymetry evaluated at hires_init_level otherwise.
Definition at line 465 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_gls_vmix | ( | int | lev, |
| SolverChoice | solver_choice | ||
| ) |
Initialize GLS variables.
| [in] | lev | level to operate on |
| [in] | solver_choice | algorithmic choices |
Definition at line 249 of file REMORA_init.cpp.
Referenced by init_set_vmix().


| void REMORA::init_grid_vars_from_netcdf | ( | int | lev | ) |
Grid variable initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 530 of file REMORA_init_from_netcdf.cpp.
Referenced by set_bathymetry(), and set_grid_scale().


| void REMORA::init_grid_vars_full_domain_from_netcdf | ( | ) |
Full domain high-res grid variable initialization from NetCDF file.
Definition at line 1168 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


|
private |
Allocate MultiFabs for masks.
| [in] | lev | level to operate on |
| [in] | ba | BoxArray for the level |
| [in] | dm | DistributionMapping for the level |
Definition at line 534 of file REMORA_make_new_level.cpp.
Referenced by MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), and RemakeLevel().


| void REMORA::init_masks_from_netcdf | ( | int | lev | ) |
Mask data initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 751 of file REMORA_init_from_netcdf.cpp.
Referenced by set_masks().


| void REMORA::init_masks_full_domain_from_analytic | ( | ) |
Full domain land-sea mask initialization from analytic.
Definition at line 399 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::init_masks_full_domain_from_netcdf | ( | ) |
Full domain high-res mask data initialization from NetCDF file.
Definition at line 1141 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


| void REMORA::init_only | ( | int | lev, |
| amrex::Real | time | ||
| ) |
Init (NOT restart or regrid)
| [in] | lev | level to operate on |
| [in] | time | current time for initialization |
Definition at line 1805 of file REMORA.cpp.
Referenced by MakeNewLevelFromScratch().


|
private |
Reject vertical refinement and accumulate the refinement ratios.
Reject refinement in the vertical, and accumulate the refinement ratios.
Shared by both constructors. It used to be written out in each of them, and the explicit one had been left without the cum_ref_ratios half – so the vector stayed empty, and every full-domain hires array and every mask coarsening that indexes it read out of bounds.
Definition at line 217 of file REMORA.cpp.
Referenced by REMORA(), and REMORA().


| void REMORA::init_riv_pos_from_netcdf | ( | int | lev | ) |
| [in] | lev | level to read in river data |
Definition at line 1006 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), and RemakeLevel().


|
private |
Build runtime scalar names after nscalar is known.
Definition at line 246 of file REMORA.cpp.
Referenced by ReadParameters().


| void REMORA::init_scalars_from_netcdf | ( | int | lev | ) |
Passive (dye) scalar initialization from NetCDF file. Called from init_data_from_netcdf: dye follows remora.ic_type rather than having a source flag of its own.
Initialize the passive (dye) scalars from the initial NetCDF file.
Unlike biology, dye has no initialization-source flag of its own: it follows remora.ic_type along with temperature, salinity, and velocity, so this is called from init_data_from_netcdf rather than from a dispatcher. Each dye whose variable the file carries is read into its own component; the rest keep the zero written just before the call.
| lev | Integer specifying the current level |
Definition at line 215 of file REMORA_init_from_netcdf.cpp.
Referenced by init_data_from_netcdf().


| void REMORA::init_scalars_full_domain_from_netcdf | ( | ) |
Full-domain high-res passive (dye) scalar initialization from NetCDF file.
Full-domain counterpart of init_scalars_from_netcdf, for the hires_init_level average-down path. Called from init_data_full_domain_from_netcdf before that routine averages vec_cons_full_domain down, so no average down is needed here.
Definition at line 362 of file REMORA_init_from_netcdf.cpp.
Referenced by init_data_full_domain_from_netcdf().


| void REMORA::init_set_vmix | ( | int | lev | ) |
Initialize vertical mixing coefficients from file or analytic.
Definition at line 956 of file REMORA.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), and RemakeLevel().


| void REMORA::init_stretch_coeffs | ( | ) |
initialize and calculate stretch coefficients
Definition at line 324 of file REMORA_init.cpp.
Referenced by InitData().


|
private |
Allocate MultiFabs for state and evolution variables.
| [in] | lev | level to operate on |
| [in] | ba | BoxArray for the level |
| [in] | dm | DistributionMapping for the level |
Definition at line 562 of file REMORA_make_new_level.cpp.
Referenced by MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), and RemakeLevel().


| void REMORA::init_zeta_from_netcdf | ( | int | lev | ) |
Sea-surface height data initialization from NetCDF file.
| lev | Integer specifying the current level |
Definition at line 440 of file REMORA_init_from_netcdf.cpp.
Referenced by set_zeta().


| void REMORA::init_zeta_full_domain_from_netcdf | ( | ) |
Full-domain high res sea-surface height data initialization from NetCDF file.
Definition at line 486 of file REMORA_init_from_netcdf.cpp.
Referenced by init_only().


| void REMORA::InitData | ( | ) |
Initialize multilevel data.
This is called from main.cpp and handles all initialization, whether from start or restart
Definition at line 465 of file REMORA.cpp.
Referenced by main().


|
private |
Read the file passed to remora.restart and use it as an initial condition for the current simulation.
Initialize the new-time data at a level from the initial_data MultiFab.
| bool REMORA::is_it_time_for_action | ( | int | nstep, |
| amrex::Real | time, | ||
| amrex::Real | dt, | ||
| int | action_interval, | ||
| amrex::Real | action_per | ||
| ) |
Decide if it is time to take an action.
| [in] | nstep | what step we're on |
| [in] | lev | level to calculate on |
| [in] | dtlev | time step for this level |
| [in] | action_interval | number of time steps between actions |
| [in] | action_per | time interval between actions |
Definition at line 285 of file REMORA_SumIQ.cpp.
Referenced by InitData(), and post_timestep().


| void REMORA::lin_eos | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real const > & | state, | ||
| const amrex::Array4< amrex::Real > & | rho, | ||
| const amrex::Array4< amrex::Real > & | rhoA, | ||
| const amrex::Array4< amrex::Real > & | rhoS, | ||
| const amrex::Array4< amrex::Real > & | bvf, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_w, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | h, | ||
| const amrex::Array4< amrex::Real const > & | mskr, | ||
| const int | N | ||
| ) |
Calculate density and related quantities from linear equation of state.
| [in] | bx | box for calculation |
| [in] | state | state holds temp, salt |
| [out] | rho | density |
| [out] | rhoA | vertically-averaged density |
| [out] | rhoS | density perturbation |
| [out] | bvf | Brunt-Vaisala frequency |
| [in] | Hz | vertical cell height |
| [in] | z_r | z coordinates at rho points |
| [in] | z_w | z coordinates at w points |
| [in] | h | bathymetry |
| [in] | mskr | land-sea mask on rho points |
| [in] | N | number of vertical levels |
Definition at line 61 of file REMORA_rho_eos.cpp.
Referenced by rho_eos().


|
overridevirtual |
Make a new level using provided BoxArray and DistributionMapping and fill with interpolated coarse level data. Overrides the pure virtual function in AmrCore.
Make a new level using provided BoxArray and DistributionMapping and fill with interpolated coarse level data (overrides the pure virtual function in AmrCore) regrid --> RemakeLevel (if level already existed) regrid --> MakeNewLevelFromCoarse (if adding new level)
| [in] | lev | level to make |
| [in] | time | current time |
| [in] | ba | BoxArray for the level |
| [in] | dm | DistributionMapping for the level |
Definition at line 24 of file REMORA_make_new_level.cpp.

|
overridevirtual |
Make a new level from scratch using provided BoxArray and DistributionMapping. Only used during initialization. Overrides the pure virtual function in AmrCore.
Make a new level from scratch using provided BoxArray and DistributionMapping. This is called both for initialization and for restart (overrides the pure virtual function in AmrCore) main.cpp --> REMORA::InitData --> InitFromScratch --> MakeNewGrids --> MakeNewLevelFromScratch restart --> MakeNewGrids --> MakeNewLevelFromScratch
| [in] | lev | level to make |
| [in] | time | current time |
| [in] | ba | BoxArray for the level |
| [in] | dm | DistributionMapping for the level |
Definition at line 336 of file REMORA_make_new_level.cpp.
Referenced by ReadCheckpointFile().


| void REMORA::mask_arrays_for_write | ( | int | lev, |
| amrex::Real | fill_value, | ||
| amrex::Real | fill_where | ||
| ) |
Mask data arrays before writing output.
| lev | level to mask |
| fill_value | fill value to mask with |
| fill_where | value at cells where we will apply the mask. This is necessary because rivers |
Definition at line 1222 of file REMORA_Plotfile.cpp.
Referenced by WritePlotFile().


|
inlinenoexcept |
Time on the model clock, in seconds, of an elapsed time such as t_new.
Definition at line 2152 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), advance_biology(), ErrorEst(), fill_from_bdyfiles(), prestep(), set_smflux(), set_surface_state(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().


| void REMORA::nonlin_eos | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real const > & | state, | ||
| const amrex::Array4< amrex::Real > & | rho, | ||
| const amrex::Array4< amrex::Real > & | rhoA, | ||
| const amrex::Array4< amrex::Real > & | rhoS, | ||
| const amrex::Array4< amrex::Real > & | bvf, | ||
| const amrex::Array4< amrex::Real > & | alpha, | ||
| const amrex::Array4< amrex::Real > & | beta, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_w, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | h, | ||
| const amrex::Array4< amrex::Real const > & | mskr, | ||
| const int | N | ||
| ) |
Calculate density and related quantities from nonlinear equation of state.
| [in] | bx | box for calculation |
| [in] | state | state holds temp, salt |
| [out] | rho | density |
| [out] | rhoA | vertically-averaged density |
| [out] | rhoS | density perturbation |
| [out] | bvf | Brunt-Vaisala frequency |
| [out] | alpha | thermal expansion coefficient |
| [out] | beta | saline contraction coefficient |
| [in] | Hz | vertical cell height |
| [in] | z_r | z coordinates at rho points |
| [in] | z_w | z coordinates at w points |
| [in] | h | bathymetry |
| [in] | mskr | land-sea mask on rho points |
| [in] | N | number of vertical levels |
Definition at line 158 of file REMORA_rho_eos.cpp.
Referenced by rho_eos().


|
inlinenoexcept |
Definition at line 1461 of file REMORA.H.
Referenced by init_bcs().


|
inlinenoexcept |
Definition at line 1469 of file REMORA.H.
Referenced by init_bcs(), init_bdry_from_netcdf(), and resize_stuff().


|
inlinenoexcept |
|
inlinenoexcept |
Number of passive (dye) scalars in the state, not counting biology tracers.
Zero means the state has no dye component at all, so Tracer_comp is either the first biology tracer or one past the end of cons. Problem setups that initialize a dye have to test this rather than nComp(), which cannot tell a dye apart from a biology tracer.
|
inlinenoexcept |
|
inlineprivatenoexcept |
Definition at line 2091 of file REMORA.H.
Referenced by sum_integrated_quantities().

| void REMORA::PackSurfaceState | ( | amrex::Vector< amrex::MultiFab * > & | state, |
| amrex::Real | time, | ||
| const amrex::MultiFab * | weight_o2a_mf, | ||
| const amrex::iMultiFab * | index_o2a_mf, | ||
| int | max_stencil_size, | ||
| const amrex::iMultiFab * | dst_land_mask = nullptr |
||
| ) |
Extracts SST from the 3D conservative state for the atmospheric driver.
Reads Temp_comp at the top water-column cell (k_sfc), converts from Celsius to Kelvin, and copies the result into state[SSTIndex].
| [in,out] | state | OCN2ATM slab buffer sized by the driver (one MultiFab per ocean-to-atmosphere export layer). state[SSTIndex] (index 0) is overwritten with sea-surface temperature (SST) sampled from the Temp_comp tracer at the uppermost sigma level (k = Nz) and converted from degrees Celsius to Kelvin for the atmospheric driver. An empty vector or null state[0] is treated as a no-op. |
| [in] | time | Current ocean model time (unused; retained for driver interface conformance). |
Definition at line 471 of file REMORA_Coupling.cpp.

|
private |
get plotfile name
| void REMORA::post_timestep | ( | int | nstep, |
| amrex::Real | time, | ||
| amrex::Real | dt_lev | ||
| ) |
Called after every level 0 timestep.
| [in] | nstep | which step we're on |
| [in] | time | current time |
| [in] | dt_lev0 | time step on level 0 |
Definition at line 440 of file REMORA.cpp.
Referenced by Evolve(), and EvolveOneStep().


| void REMORA::prestep | ( | int | lev, |
| amrex::MultiFab & | mf_uold, | ||
| amrex::MultiFab & | mf_vold, | ||
| amrex::MultiFab & | mf_u, | ||
| amrex::MultiFab & | mf_v, | ||
| amrex::MultiFab * | mf_ru, | ||
| amrex::MultiFab * | mf_rv, | ||
| amrex::MultiFab & | S_old, | ||
| amrex::MultiFab & | S_new, | ||
| amrex::MultiFab & | mf_W, | ||
| amrex::MultiFab & | mf_DC, | ||
| const amrex::MultiFab * | mf_z_r, | ||
| const amrex::MultiFab * | mf_z_w, | ||
| const amrex::MultiFab * | mf_h, | ||
| const amrex::MultiFab * | mf_pm, | ||
| const amrex::MultiFab * | mf_pn, | ||
| const amrex::MultiFab * | mf_sustr, | ||
| const amrex::MultiFab * | mf_svstr, | ||
| const amrex::MultiFab * | mf_bustr, | ||
| const amrex::MultiFab * | mf_bvstr, | ||
| const amrex::MultiFab * | mf_msku, | ||
| const amrex::MultiFab * | mf_mskv, | ||
| const int | iic, | ||
| const int | nfirst, | ||
| const int | nnew, | ||
| int | nstp, | ||
| int | nrhs, | ||
| int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Wrapper function for prestep.
| [in] | lev | level to operate on |
| [in] | mf_uold | u-velocity from last time step |
| [in] | mf_vold | v-velocity from last time step |
| [out] | mf_u | u-velocity at current time step |
| [out] | mf_v | v-velocity at current time step |
| [in,out] | mf_ru | u-velocity RHS at current time step |
| [in,out] | mf_rv | v-velocity RHS at current time step |
| [in] | S_old | scalar variables at last time step |
| [in,out] | S_new | scalar variables at current time step |
| [in] | mf_W | vertical velocity |
| mf_DC | temporary variable container | |
| [in] | mf_z_r | z coordinates at rho points (cell centers) |
| [in] | mf_z_w | z coordinates at w points |
| [in] | mf_h | bathymetry |
| [in] | mf_pm | 1/dx |
| [in] | mf_pn | 1/dy |
| [in] | mf_sustr | u-direction surface momentum flux |
| [in] | mf_svstr | v-direction surface momentum flux |
| [in] | mf_bustr | u-direction bottom stress |
| [in] | mf_bvstr | v-direction bottom stress |
| [in] | mf_msku | land-sea mask on u-points |
| [in] | mf_mskv | land-sea mask on v-points |
| [in] | iic | which time step we're on |
| [in] | ntfirst | what is the first time step? |
| [in] | nnew | index of time step to update |
| [in] | nstp | index of last time step |
| [in] | nrhs | index of RHS component |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this level |
Definition at line 38 of file REMORA_prestep.cpp.
Referenced by setup_step().


| void REMORA::prestep_diffusion | ( | const amrex::Box & | bx, |
| const amrex::Box & | gbx, | ||
| const int | ioff, | ||
| const int | joff, | ||
| const amrex::Array4< amrex::Real > & | vel, | ||
| const amrex::Array4< amrex::Real const > & | vel_old, | ||
| const amrex::Array4< amrex::Real > & | rvel, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | Akv, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real const > & | sstr, | ||
| const amrex::Array4< amrex::Real const > & | bstr, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const int | iic, | ||
| const int | ntfirst, | ||
| const int | nnew, | ||
| int | nstp, | ||
| int | nrhs, | ||
| int | N, | ||
| const amrex::Real | lambda, | ||
| const amrex::Real | dt_lev | ||
| ) |
Update velocities or tracers with diffusion/viscosity as the last part of the prestep.
Called from prestep. The tracer update is a bit different from the u,v updates so we test for it, but checking if ioff=0 and joff=0. In some cases, though, we can recover the tracer update from the generic one by setting those indices. Setting icc and ntfirst identically for the tracers should be equivalent to setting ioff=0 and joff=0
| [in] | vel_bx | tile box |
| [in] | gbx | grown tile box |
| [in] | ioff | offset in x direction |
| [in] | joff | offset in y direction |
| [out] | vel | velocity or scalar to update |
| [in] | vel_old | velocity or scalar at last time |
| [in,out] | rvel | velocity or scalar RHS |
| [in] | Hz | vertical cell height |
| [in] | Akv | vertical viscosity coefficient |
| FC | temporary | |
| [in] | sstr | surface flux |
| [in] | bstr | bottom flux |
| [in] | z_r | z coordinates at rho points |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | iic | which time step we're on |
| [in] | ntfirst | what is the first time step? |
| [in] | nnew | index of time step to update |
| [in] | nstp | index of last time step |
| [in] | nrhs | index of RHS component |
| [in] | N | number of vertical levels |
| [in] | lambda | weighting coefficient for the newest (implicit) time step derivatives |
| [in] | dt_lev | time step at this level |
Definition at line 38 of file REMORA_prestep_diffusion.cpp.
Referenced by prestep().


| void REMORA::prestep_t_advection | ( | int | lev, |
| const amrex::Box & | tbx, | ||
| const amrex::Box & | gbx, | ||
| const amrex::Array4< amrex::Real > & | tempold, | ||
| const amrex::Array4< amrex::Real > & | tempcache, | ||
| const amrex::Array4< amrex::Real > & | Hz, | ||
| const amrex::Array4< amrex::Real > & | Huon, | ||
| const amrex::Array4< amrex::Real > & | Hvom, | ||
| const amrex::Array4< amrex::Real > & | W, | ||
| const amrex::Array4< amrex::Real > & | DC, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real > & | sstore, | ||
| const amrex::Array4< amrex::Real const > & | z_w, | ||
| const amrex::Array4< amrex::Real const > & | h, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const amrex::Array4< int const > & | river_pos, | ||
| const amrex::Array4< amrex::Real const > & | river_source, | ||
| int | iic, | ||
| int | ntfirst, | ||
| int | nrhs, | ||
| int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Prestep advection calculations for the tracers.
| [in] | lev | level to operate on |
| [in] | tbx | tile box |
| [in] | gbx | grown tile box |
| [in] | tempold | scalar at last time |
| [in] | tempcache | cached current time step's scalar value |
| [in] | Hz | vertical cell height |
| [in] | Huon | u-volume flux |
| [in] | Hvom | v-volume flux |
| [in] | Akv | vertical viscosity coefficient |
| [in,out] | W | vertical velocity |
| DC | temporary | |
| FC | temporary | |
| [out] | tempstore | scratch space for calculations on scalars |
| [in] | z_w | z coordinates at w points |
| [in] | h | bathymetry |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | river_pos | river positions |
| [in] | river_source | river source data to add, if using |
| [in] | iic | which time step we're on |
| [in] | ntfirst | what is the first time step? |
| [in] | nrhs | index of RHS component |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this level |
Definition at line 35 of file REMORA_prestep_t_advection.cpp.
Referenced by prestep().


|
static |
Definition at line 60 of file REMORA_console_io.cpp.
Referenced by main().

Definition at line 43 of file REMORA_console_io.cpp.
Referenced by main().

|
private |
report the per-level slow/fast timestep hierarchy; call after ComputeDt
Report the per-level timestep hierarchy: nsubsteps[lev] baroclinic steps per parent step, each subdivided ndtfast times. Must follow ComputeDt, since dt is seeded to bogus_large_value.
Definition at line 15 of file REMORA_ComputeTimestep.cpp.
Referenced by Evolve().


|
static |
Definition at line 137 of file REMORA_console_io.cpp.
|
static |
Definition at line 26 of file REMORA_console_io.cpp.
Referenced by main().


|
private |
Coordinate arrays of level lev, for the prob functions.
| [in] | lev | level whose coordinates to return |
Definition at line 15 of file REMORA_init.cpp.
Referenced by init_analytic(), and set_zeta().


| void REMORA::prsgrd | ( | const amrex::Box & | bx, |
| const amrex::Box & | gbx, | ||
| const amrex::Box & | utbx, | ||
| const amrex::Box & | vtbx, | ||
| const amrex::Array4< amrex::Real > & | ru, | ||
| const amrex::Array4< amrex::Real > & | rv, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | rho, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | z_w, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const int | nrhs, | ||
| const int | N | ||
| ) |
Calculate pressure gradient.
| [in] | phi_bx | tilebox |
| [in] | phi_gbx | grownbox |
| [in] | utbx | u-nodal tilebox |
| [in] | vtbx | v-nodal tilebox |
| [out] | ru | u-velocity RHS |
| [out] | rv | v-velocity RHS |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | rho | density |
| FC | temporary | |
| [in] | Hz | vertical cell height |
| [in] | z_r | z coordinates at rho points |
| [in] | z_w | z coordinates at w points |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | nrhs | index of RHS component |
| [in] | N | number of vertical levels |
Definition at line 25 of file REMORA_prsgrd.cpp.
Referenced by setup_step().


|
private |
read checkpoint file from disk
Definition at line 224 of file REMORA_Checkpoint.cpp.
Referenced by restart().


|
private |
Read MultiFab in NetCDF format.
|
private |
read in some parameters from inputs file
Definition at line 2165 of file REMORA.cpp.
Referenced by REMORA(), and REMORA().


| void REMORA::refine_masks_with_grow_cells | ( | int | fine_lev | ) |
Inject the full-domain rho-mask from fine_lev-1 onto fine_lev, piecewise constant, grow cells included.
Inject the full-domain rho-mask from fine_lev-1 up onto fine_lev, grow cells included.
Piecewise constant, which is the rule set_masks already uses for a level above the one the mask was specified on. Nothing finer is known there, so refining cannot add coastline.
| [in] | fine_lev | level to inject onto |
Definition at line 3171 of file REMORA.cpp.
Referenced by ensure_full_domain_masks().


|
private |
Set refinement criteria.
Function to define the refinement criteria based on user input
Definition at line 493 of file REMORA_Tagging.cpp.
Referenced by REMORA(), and REMORA().


| void REMORA::reflux_to | ( | int | lev | ) |
apply the lev/lev+1 tracer flux correction onto lev
Apply the tracer flux correction accumulated at the lev/lev+1 interface onto lev.
Once per step of lev, pairing the reset at the top of Advance(lev), so the accumulate and apply window sits inside one step of lev. Applying it per step of level 0 instead would keep only the last correction whenever lev was itself substepped, and would let the regrid of lev+1 rebuild the register mid-accumulation.
| [in] | lev | coarse level of the interface |
Definition at line 390 of file REMORA.cpp.
Referenced by timeStep().


| void REMORA::register_coarse_data | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::Real | dt_lev | ||
| ) |
register this level's completed step as the coarse bracket the next finer level interpolates within
Store this level's old and new state in the coarse/fine fill patchers so the next finer level can interpolate its contact points to its own sub-times.
| [in] | lev | level of refinement |
| [in] | time | simulation time at start of the step just taken |
| [in] | dt_lev | baroclinic time step at level |
Definition at line 94 of file REMORA_Advance.cpp.
Referenced by Advance().


|
overridevirtual |
Remake an existing level using provided BoxArray and DistributionMapping and fill with existing fine and coarse data. Overrides the pure virtual function in AmrCore.
Remake an existing level using provided BoxArray and DistributionMapping and fill with existing fine and coarse data. overrides the pure virtual function in AmrCore
| [in] | lev | level to make |
| [in] | time | current time |
| [in] | ba | BoxArray for the level |
| [in] | dm | DistributionMapping for the level |
Definition at line 165 of file REMORA_make_new_level.cpp.

| void REMORA::remora_advance | ( | int | level, |
| amrex::MultiFab & | cons_old, | ||
| amrex::MultiFab & | cons_new, | ||
| amrex::MultiFab & | xvel_old, | ||
| amrex::MultiFab & | yvel_old, | ||
| amrex::MultiFab & | zvel_old, | ||
| amrex::MultiFab & | xvel_new, | ||
| amrex::MultiFab & | yvel_new, | ||
| amrex::MultiFab & | zvel_new, | ||
| amrex::MultiFab & | source, | ||
| const amrex::Geometry | fine_geom, | ||
| const amrex::Real | dt, | ||
| const amrex::Real | time | ||
| ) |
Interface for advancing the data at one level by one "slow" timestep.
|
private |
Resize variable containers to accommodate data on levels 0 to max_lev.
| [in] | lev | level do operate on |
Definition at line 399 of file REMORA_make_new_level.cpp.
Referenced by MakeNewLevelFromCoarse(), and MakeNewLevelFromScratch().


| void REMORA::restart | ( | ) |
\briefRestart
Definition at line 695 of file REMORA.cpp.
Referenced by InitData().


| void REMORA::restore_perimeter_faces | ( | const amrex::MultiFab & | saved, |
| amrex::MultiFab & | mf, | ||
| const amrex::MultiFab & | covered, | ||
| int | dir, | ||
| int | ncomp | ||
| ) |
put back the coarse normal-velocity faces on the fine patch's perimeter
Put back the values a fine-to-coarse average just wrote onto the fine patch's perimeter normal-velocity faces.
ROMS's fine2coarse hands back every covered cell but excludes those faces: for a child spanning coarse cells I_lo..I_hi it updates u-faces I_lo+1..I_hi only, so the face the nested barotropic boundary condition writes is never returned to the parent. A face is interior exactly when both of the cells it separates are covered, which is the test used here.
| [in] | saved | coarse field as it was before the average |
| [in,out] | mf | coarse field to repair |
| [in] | covered | cell mask from build_covered_mask |
| [in] | dir | face normal direction |
| [in] | ncomp | components to repair |
Definition at line 3077 of file REMORA.cpp.
Referenced by AverageDownTo().


| void REMORA::rho_eos | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real const > & | state, | ||
| const amrex::Array4< amrex::Real > & | rho, | ||
| const amrex::Array4< amrex::Real > & | rhoA, | ||
| const amrex::Array4< amrex::Real > & | rhoS, | ||
| const amrex::Array4< amrex::Real > & | bvf, | ||
| const amrex::Array4< amrex::Real > & | alpha, | ||
| const amrex::Array4< amrex::Real > & | beta, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_w, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | h, | ||
| const amrex::Array4< amrex::Real const > & | mskr, | ||
| const int | N | ||
| ) |
Wrapper around equation of state calculation.
| [in] | bx | box for calculation |
| [in] | state | state holds temp, salt |
| [out] | rho | density |
| [out] | rhoA | vertically-averaged density |
| [out] | rhoS | density perturbation |
| [out] | bvf | Brunt-Vaisala frequency |
| [out] | alpha | thermal expansion coefficient |
| [out] | beta | saline contraction coefficient |
| [in] | Hz | vertical cell height |
| [in] | z_r | z coordinates at rho points |
| [in] | z_w | z coordinates at w points |
| [in] | h | bathymetry |
| [in] | mskr | land-sea mask on rho points |
| [in] | N | number of vertical levels |
Definition at line 22 of file REMORA_rho_eos.cpp.
Referenced by setup_step().


| void REMORA::rhs_t_3d | ( | int | lev, |
| const amrex::Box & | bx, | ||
| const amrex::Array4< amrex::Real > & | t, | ||
| const amrex::Array4< amrex::Real const > & | tempstore, | ||
| const amrex::Array4< amrex::Real const > & | Huon, | ||
| const amrex::Array4< amrex::Real const > & | Hvom, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | W, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real const > & | mskr, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const amrex::Array4< int const > & | river_pos, | ||
| const amrex::Array4< amrex::Real const > & | river_source, | ||
| int | nrhs, | ||
| int | nnew, | ||
| int | N, | ||
| const amrex::Real | dt_lev, | ||
| const amrex::Array4< amrex::Real > & | fx_reg = amrex::Array4<amrex::Real>(), |
||
| const amrex::Array4< amrex::Real > & | fy_reg = amrex::Array4<amrex::Real>() |
||
| ) |
RHS terms for tracer.
| [in] | lev | level to operate on |
| [in] | bx | tilebox |
| [in,out] | t | tracer data |
| [in] | sstore | scratch space for tracer calculations |
| [in] | Huon | u-volume flux |
| [in] | Hvom | v-volume flux |
| [in] | Hz | vertical cell height |
| [in] | pn | 1/dx |
| [in] | pm | 1/dy |
| [in] | W | vertical velocity |
| FC | temporary | |
| [in] | mskr | land-sea mask on rho-points |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | river_pos | river positions |
| [in] | river_source | river source data to add, if using |
| [in] | nrhs | index of RHS component |
| [in] | nnew | index of current time step |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this level |
Definition at line 28 of file REMORA_rhs_t_3d.cpp.
Referenced by advance_3d().


| void REMORA::rhs_uv_2d | ( | int | lev, |
| const amrex::Box & | xbx, | ||
| const amrex::Box & | ybx, | ||
| const amrex::Array4< amrex::Real const > & | uold, | ||
| const amrex::Array4< amrex::Real const > & | vold, | ||
| const amrex::Array4< amrex::Real > & | ru, | ||
| const amrex::Array4< amrex::Real > & | rv, | ||
| const amrex::Array4< amrex::Real const > & | Duon, | ||
| const amrex::Array4< amrex::Real const > & | Dvom, | ||
| const int | nrhs | ||
| ) |
RHS terms for 2D momentum.
| [in] | lev | level to operate on |
| [in] | xbx | Box for operations on x-velocity |
| [in] | ybx | Box for operations on y-velocity |
| [in] | ubar | barotropic x-velocity |
| [in] | vbar | barotropic y-velocity |
| [in,out] | rhs_ubar | RHS for barotropic x-velocity |
| [in,out] | rhs_vbar | RHS for barotropic y-velocity |
| [in] | DUon | u-volume flux (barotropic) |
| [in] | DVom | v-volume flux (barotropic) |
| [in] | krhs | index of rhs component |
Definition at line 18 of file REMORA_rhs_uv_2d.cpp.
Referenced by advance_2d().


| void REMORA::rhs_uv_3d | ( | int | lev, |
| const amrex::Box & | xbx, | ||
| const amrex::Box & | ybx, | ||
| const amrex::Array4< amrex::Real const > & | uold, | ||
| const amrex::Array4< amrex::Real const > & | vold, | ||
| const amrex::Array4< amrex::Real > & | ru, | ||
| const amrex::Array4< amrex::Real > & | rv, | ||
| const amrex::Array4< amrex::Real > & | rufrc, | ||
| const amrex::Array4< amrex::Real > & | rvfrc, | ||
| const amrex::Array4< amrex::Real const > & | sustr, | ||
| const amrex::Array4< amrex::Real const > & | svstr, | ||
| const amrex::Array4< amrex::Real const > & | bustr, | ||
| const amrex::Array4< amrex::Real const > & | bvstr, | ||
| const amrex::Array4< amrex::Real const > & | Huon, | ||
| const amrex::Array4< amrex::Real const > & | Hvom, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | W, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| int | nrhs, | ||
| int | N | ||
| ) |
RHS terms for 3D momentum.
| [in] | lev | level to operate on |
| [in] | xbx | Box for operations on x-velocity |
| [in] | ybx | Box for operations on y-velocity |
| [in] | uold | u-velocity at last time step |
| [in] | vold | v-velocity at last time step |
| [in,out] | ru | u-velocity RHS |
| [in,out] | rv | v-velocity RHS |
| [in,out] | rufrc | forcing for u-velocity RHS |
| [in,out] | rvfrc | forcing for v-velocity RHS |
| [in] | sustr | u-direction surface momentum flux |
| [in] | svstr | v-direction surface momentum flux |
| [in] | bustr | u-direction bottom stress |
| [in] | bvstr | v-direction bottom stress |
| [in] | Huon | u-volume flux |
| [in] | Hvom | v-volume flux |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | W | vertical velocity |
| FC | temporary | |
| [in] | nrhs | index of component for RHS |
| [in] | N | number of vertical levels |
Definition at line 29 of file REMORA_rhs_uv_3d.cpp.
Referenced by setup_step().


| void REMORA::roll_2d_snapshot | ( | amrex::Vector< std::unique_ptr< amrex::MultiFab > > & | old_v, |
| amrex::Vector< std::unique_ptr< amrex::MultiFab > > & | new_v, | ||
| int | lev, | ||
| const amrex::MultiFab & | src, | ||
| const amrex::MultiFab & | like | ||
| ) |
roll a two-snapshot history of a level's end-of-step 2D state
Roll a two-snapshot history of one level's end-of-step 2D state: the previous "new" becomes "old" and src becomes the new one, so the pair brackets [t_old, t_new] of the step just taken. src has one component and is broadcast to all of them. On the first call, and whenever the level's layout changes, both snapshots are set to src, making the child's time interpolation a no-op for that step rather than reading uninitialised data – the same special case ROMS takes when RollingIndex is still zero.
| [in,out] | old_v | the older snapshot, one entry per level |
| [in,out] | new_v | the newer snapshot, one entry per level |
| [in] | lev | level of refinement |
| [in] | src | end-of-step value to store, single component |
| [in] | like | MultiFab whose layout, component count and ghost width to match |
Definition at line 178 of file REMORA_Advance.cpp.
Referenced by register_coarse_data().


| void REMORA::scale_rhs_vars | ( | int | lev | ) |
Scale RHS momentum variables by 1/cell area, needed before FillPatch to different levels.
Scale one level's RHS momentum terms by 1/cell area.
| [in] | lev | level of refinement |
Definition at line 11 of file REMORA_scale_rhs_vars.cpp.
Referenced by timeStep(), and timeStepML().


| void REMORA::scale_rhs_vars_inv | ( | int | lev | ) |
Scale RHS momentum variables by cell area, needed after FillPatch to different levels.
Undo scale_rhs_vars on one level.
| [in] | lev | level of refinement |
Definition at line 65 of file REMORA_scale_rhs_vars.cpp.
Referenced by timeStep(), and timeStepML().


| pp_plot_var_names_2d | list of variable names to plot read in from parameter file |
Definition at line 118 of file REMORA_SetPlotVars.cpp.
Referenced by REMORA(), and REMORA().


| pp_plot_var_names_3d | list of variable names to plot read in from parameter file |
Definition at line 16 of file REMORA_SetPlotVars.cpp.
Referenced by REMORA(), and REMORA().


| void REMORA::set_2d_cf_bcs | ( | int | lev, |
| amrex::Real | time, | ||
| int | know, | ||
| int | knew | ||
| ) |
set this level's barotropic contact points from its parent, mass-conservingly
Set the normal barotropic velocity on this level's coarse-fine interface from the parent's time-averaged mass flux, as ROMS does in put_refine2d (nesting.F):
ubar_f = Dubar_c / D_f, D_f = 0.5*(h + zeta)_{i-1} + 0.5*(h + zeta)_i
D comes from know; ROMS instead uses one time index for both sides: u2dbc_im.F's nested branch builds D from zeta(kout) and writes ubar(kout), and put_refine2d uses indx1 for both. Since the next half-step forms DUon = ubar(krhs)*D(krhs) with krhs equal to this knew, ROMS recovers Dubar_parent exactly while this carries an extra D(knew)/D(know). Measured at most 1.2e-07 on the step-1 Channel_Test interface velocity, against a 2.4e-03 artifact, with no change to Dogbone volume drift or the Channel_Test blow-up.
Momentum only. setup_step resets all three zeta components to Zt_avg1, so what a finer level interpolates for the free surface is already the parent's fast-time average – as in ROMS, where set_zeta runs ahead of put_refine2d.
| [in] | lev | level of refinement |
| [in] | time | simulation time to interpolate the parent's flux to |
| [in] | know | zeta time component to take the sea surface height from |
| [in] | knew | ubar/vbar time component to set |
Definition at line 150 of file REMORA_set_2d_cf_bcs.cpp.
Referenced by advance_2d().


| void REMORA::set_2d_cf_flux | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::MultiFab & | mf_DUon, | ||
| amrex::MultiFab & | mf_DVom | ||
| ) |
impose the parent's barotropic mass flux on the coarse-fine interface faces
Impose the parent's barotropic mass flux directly on the coarse-fine interface faces.
set_2d_cf_bcs writes a velocity, which the solver then turns back into a flux using its own depth at a different time index, so the flux it actually carries is not the one imposed. Writing the flux itself makes the transport exact whatever the depth does.
| [in] | lev | level of refinement |
| [in] | time | simulation time to interpolate the parent's flux to |
| [in,out] | mf_DUon | barotropic u-flux |
| [in,out] | mf_DVom | barotropic v-flux |
Definition at line 310 of file REMORA_set_2d_cf_bcs.cpp.
Referenced by advance_2d().


| void REMORA::set_2darrays | ( | int | lev | ) |
Set 2D momentum arrays from 3D momentum.
| [in] | lev | level to operate on |
Definition at line 186 of file REMORA_init.cpp.
Referenced by init_only().


| void REMORA::set_analytic_vmix | ( | int | lev | ) |
Set vertical mixing coefficients from analytic.
| [in] | lev | level to operate on |
Definition at line 973 of file REMORA.cpp.
Referenced by init_set_vmix(), and setup_step().


| void REMORA::set_bathymetry | ( | int | lev | ) |
Initialize bathymetry from file or analytic.
| [in] | lev | level to operate on |
Definition at line 751 of file REMORA.cpp.
Referenced by init_only().


| void REMORA::set_bathymetry_averaged_down | ( | int | lev | ) |
Copy over bathymetry data that has been averaged down from high resolution input netcdf file.
| [in] | lev | level to operate on |
Definition at line 810 of file REMORA.cpp.
Referenced by MakeNewLevelFromCoarse(), RemakeLevel(), and set_bathymetry().


| void REMORA::set_coriolis | ( | int | lev | ) |
Initialize Coriolis factor from file or analytic.
| [in] | lev | level to operate on |
Definition at line 927 of file REMORA.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), and RemakeLevel().


| void REMORA::set_curvilinear_terms_from_grid_scale | ( | int | lev | ) |
Set curvilinear derivative terms on level lev based on pm and pn.
| [in] |
level to operate on
Definition at line 911 of file REMORA_make_new_level.cpp.
Referenced by set_grid_scale().


| void REMORA::set_drag | ( | int | lev | ) |
Initialize or calculate bottom drag.
| void REMORA::set_grid_coords_from_grid_scale | ( | int | lev | ) |
Set x/y coords on level lev based on pm and pn.
| [in] |
level to operate on
Definition at line 866 of file REMORA_make_new_level.cpp.
Referenced by set_grid_scale().


| void REMORA::set_grid_scale | ( | int | lev | ) |
Set pm and pn arrays and x/y coords on level lev.
| [in] | lev | level to operate on |
Definition at line 811 of file REMORA_make_new_level.cpp.
Referenced by init_analytic(), init_only(), MakeNewLevelFromCoarse(), RemakeLevel(), and set_bathymetry().


| void REMORA::set_grid_vars_averaged_down | ( | int | lev | ) |
Set pm/pn by averaging down from higher-resolution grid.
| [in] | lev | level to operate on |
Definition at line 825 of file REMORA.cpp.
Referenced by set_bathymetry(), and set_grid_scale().


| void REMORA::set_hmixcoef | ( | int | lev | ) |
Initialize horizontal mixing coefficients.
| [in] | lev | level to operate on |
Definition at line 1371 of file REMORA.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), and RemakeLevel().


| void REMORA::set_init_data_averaged_down | ( | int | lev | ) |
Problem initialization from averaged-down high resolution data.
| [in] | lev | level to operate on |
Definition at line 910 of file REMORA.cpp.
Referenced by init_only().


| void REMORA::set_masks | ( | int | lev | ) |
Initialize land-sea masks from file or analytic.
Initialize the land-sea mask on this level.
Mirrors set_bathymetry: the mask is specified once, on level 0 or at hires_grid_level, and every other level derived from it, so the levels cannot disagree about the coastline.
| [in] | lev | level to operate on |
Definition at line 996 of file REMORA.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), and RemakeLevel().


| void REMORA::set_masks_averaged_down | ( | int | lev | ) |
Copy this level's land-sea mask out of the full-domain mask that was coarsened down from hires_grid_level.
| [in] | lev | level to operate on |
Definition at line 1047 of file REMORA.cpp.
Referenced by set_masks().


|
private |
size nsubsteps and set how many steps each level takes per parent step
Set how many steps each level takes per parent step, from remora.dt_ref_ratio.
| [in] | nlevs_max | max_level + 1 |
Definition at line 2780 of file REMORA.cpp.
Referenced by REMORA(), and REMORA().


| void REMORA::set_smflux | ( | int | lev | ) |
Initialize or calculate surface momentum flux from file or analytic.
| [in] | lev | level to operate on |
Definition at line 1656 of file REMORA.cpp.
Referenced by setup_step().


| void REMORA::set_surface_state | ( | int | lev | ) |
Initialize or calculate wind speed and other surface state vars from file or analytic.
| [in] | lev | level to operate on |
Definition at line 1675 of file REMORA.cpp.
Referenced by setup_step().


| void REMORA::set_weights | ( | int | lev | ) |
Set weights for averaging 3D variables to 2D.
| [in] | lev | level to operate on |
Definition at line 11 of file REMORA_set_weights.cpp.
Referenced by init_stuff().


| void REMORA::set_zeta | ( | int | lev | ) |
Initialize zeta from file or analytic.
| [in] | lev | level to operate on |
Definition at line 712 of file REMORA.cpp.
Referenced by init_only().


| void REMORA::set_zeta_average | ( | int | lev | ) |
Set Zt_avg1 to zeta.
| [in] | lev | level to operate on |
Definition at line 162 of file REMORA_init.cpp.
Referenced by set_zeta().


| void REMORA::set_zeta_averaged_down | ( | int | lev | ) |
Copy over zeta data that has been averaged down from high res.
| [in] | lev | level to operate on |
Definition at line 899 of file REMORA.cpp.
Referenced by set_zeta().


Set zeta components to be equal to time-averaged Zt_avg1.
| [in] | lev | level to operate on |
| [in] | apply_eminusp | whether to apply the evaporation-minus-precipitation correction to Zt_avg1 |
Definition at line 933 of file REMORA_make_new_level.cpp.
Referenced by init_only(), MakeNewLevelFromCoarse(), RemakeLevel(), and setup_step().


| void REMORA::SetDriverAtmosToOceanForcingMode | ( | DriverAtmosForcingMode | mode | ) |
| void REMORA::SetLongwaveFromDriver | ( | ) |
Definition at line 349 of file REMORA_Coupling.cpp.
Definition at line 2117 of file REMORA.H.
Referenced by ReadParameters().


|
inlinenoexcept |
| void REMORA::setup_step | ( | int | lev, |
| amrex::Real | time, | ||
| amrex::Real | dt_lev | ||
| ) |
Set everything up for a step on a level.
| [in] | lev | level to operate on |
| [in] | time | time at start of step |
| [in] | dt_lev | time step at level |
Definition at line 11 of file REMORA_setup_step.cpp.
Referenced by Advance(), and timeStepML().


| void REMORA::store_2d_flux | ( | int | lev | ) |
store this level's barotropic mass flux per unit cell edge length
Store this level's barotropic mass flux per unit cell edge length, for a finer level to interpolate.
| [in] | lev | level of refinement |
Definition at line 67 of file REMORA_set_2d_cf_bcs.cpp.
Referenced by register_coarse_data().


| void REMORA::stretch_transform | ( | int | lev | ) |
Calculate vertical stretched coordinates.
| [in] | lev | level to operate on |
Definition at line 92 of file REMORA_DepthStretchTransform.H.
Referenced by advance_3d(), AverageDownTo(), init_only(), MakeNewLevelFromCoarse(), ReadCheckpointFile(), and RemakeLevel().


| void REMORA::stretch_transform_full_domain | ( | int | lev, |
| const amrex::MultiFab & | mf_h, | ||
| const amrex::MultiFab & | mf_zeta, | ||
| amrex::MultiFab & | mf_z_r, | ||
| amrex::MultiFab & | mf_z_w | ||
| ) |
Calculate z_r and z_w on full-domain arrays at a level not yet created.
z_r and z_w for a level not yet created, on full-domain arrays, over every grow cell of mf_z_w. mf_h and mf_zeta must cover the same region.
| [in] | lev | level whose vertical grid to use |
| [in] | mf_h | bathymetry (component 0), 2D |
| [in] | mf_zeta | free surface (component 0), 2D |
| [out] | mf_z_r | depth of rho points |
| [out] | mf_z_w | depth of w points, on the same layout as mf_z_r but nodal in z |
Definition at line 241 of file REMORA_DepthStretchTransform.H.
Referenced by init_full_domain_from_analytic().


| void REMORA::sum_integrated_quantities | ( | amrex::Real | time | ) |
Integrate conserved quantities for diagnostics.
| [in] | time | current time |
Definition at line 12 of file REMORA_SumIQ.cpp.
Referenced by InitData(), and post_timestep().


| void REMORA::t3dmix2 | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real > & | state, | ||
| const amrex::Array4< amrex::Real > & | state_rhs, | ||
| const amrex::Array4< amrex::Real const > & | diff2, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const amrex::Real | dt_lev, | ||
| const int | ncomp, | ||
| const int | N | ||
| ) |
Wrapper for harmonic diffusivity for tracers.
| [in] | bx | box to operate on |
| [in,out] | state | scalar data |
| [out] | state_rhs | scalar data RHS |
| [in] | diff2 | diffusivity |
| [in] | Hz | vertical cell height |
| [in] | z_r | rho-point z coordinate |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | dt_lev | time step at level |
| [in] | ncomp | number of components to do this calculation on |
| [in] | N | number of vertical levels |
Definition at line 21 of file REMORA_t3dmix.cpp.
Referenced by setup_step().


| void REMORA::t3dmix2_geo | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real > & | state, | ||
| const amrex::Array4< amrex::Real > & | state_rhs, | ||
| const amrex::Array4< amrex::Real const > & | diff2, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | z_r, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const amrex::Real | dt_lev, | ||
| const int | ncomp, | ||
| const int | N | ||
| ) |
Harmonic diffusivity for tracers along geopotential surfaces.
| [in] | bx | box to operate on |
| [in,out] | state | scalar data |
| [out] | state_rhs | scalar data RHS |
| [in] | diff2 | diffusivity |
| [in] | Hz | vertical cell height |
| [in] | z_r | rho-point z coordinates |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | dt_lev | time step at level |
| [in] | ncomp | number of components to do this calculation on |
| [in] | N | number of vertical levels |
Definition at line 126 of file REMORA_t3dmix.cpp.
Referenced by t3dmix2().


| void REMORA::t3dmix2_s | ( | const amrex::Box & | bx, |
| const amrex::Array4< amrex::Real > & | state, | ||
| const amrex::Array4< amrex::Real > & | state_rhs, | ||
| const amrex::Array4< amrex::Real const > & | diff2, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | msku, | ||
| const amrex::Array4< amrex::Real const > & | mskv, | ||
| const amrex::Real | dt_lev, | ||
| const int | ncomp | ||
| ) |
Harmonic diffusivity for tracers along S-coordinate level surfaces.
| [in] | bx | box to operate on |
| [in,out] | state | scalar data |
| [out] | state_rhs | scalar data RHS |
| [in] | diff2 | diffusivity |
| [in] | Hz | vertical cell height |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | msku | land-sea mask on u-points |
| [in] | mskv | land-sea mask on v-points |
| [in] | dt_lev | time step at level |
| [in] | ncomp | number of components to do this calculation on |
Definition at line 55 of file REMORA_t3dmix.cpp.
Referenced by t3dmix2().


|
private |
advance a level by dt, includes a recursive call for finer levels
| [in] | lev | level of refinement |
| [in] | time | simulation time at start of step |
| [in] | iteration | iteration in subcycling, if using |
Definition at line 11 of file REMORA_TimeStep.cpp.
Referenced by Evolve(), EvolveOneStep(), and timeStep().


|
private |
advance all levels by dt, loops over finer levels
| [in] | time | simulation time at start of step |
| [in] | iteration | iteration in subcycling, if using |
Definition at line 10 of file REMORA_TimeStepML.cpp.
Referenced by Evolve(), and EvolveOneStep().


|
inlinenoexcept |
Definition at line 1456 of file REMORA.H.
Referenced by gls_corrector(), gls_prestep(), and init_bcs().


|
inlinenoexcept |
Definition at line 1459 of file REMORA.H.
Referenced by init_bcs(), and setup_step().


|
inlinenoexcept |
Definition at line 1453 of file REMORA.H.
Referenced by advance_2d(), fill_from_bdyfiles(), init_bcs(), MakeNewLevelFromCoarse(), RemakeLevel(), and set_2darrays().


| void REMORA::update_avgdown_masks | ( | int | crse_lev | ) |
Make sure the coarse masks the average-down kernels read sit on the coarsened layout of level crse_lev+1, rebuilding them if a regrid has moved it.
Make sure the coarse rho-, u- and v-masks are defined on the layout average_down_masked computes on: level crse_lev+1's grids coarsened, rather than level crse_lev's own grids.
The masks are a function of position alone, so between regrids this is the same answer every step; building it once turns three allocations and three ParallelCopy calls per step into three per regrid.
| [in] | crse_lev | coarse level of the pair |
Definition at line 2822 of file REMORA.cpp.
Referenced by AverageDownTo().


| void REMORA::update_massflux_3d | ( | int | lev, |
| const amrex::Box & | bx, | ||
| const int | ioff, | ||
| const int | joff, | ||
| const amrex::Array4< amrex::Real > & | phi, | ||
| const amrex::Array4< amrex::Real > & | phibar, | ||
| const amrex::Array4< amrex::Real > & | Hphi, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | pm_or_pn, | ||
| const amrex::Array4< amrex::Real const > & | Dphi1, | ||
| const amrex::Array4< amrex::Real const > & | Dphi2, | ||
| const amrex::Array4< amrex::Real > & | DC, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real const > & | msk, | ||
| const int | nnew | ||
| ) |
Correct mass flux.
| [in] | lev | level of refinement (coarsest level is 0) |
| [in] | bx | box on which to update |
| [in] | ioff | offset in x-direction |
| [in] | joff | offset in y-direction |
| [in,out] | phi | u or v |
| [in,out] | phibar | ubar or vbar |
| [in,out] | Hphi | phi-volume flux |
| [in] | Hz | vertical cell height |
| [in] | pm_or_pn | pm or pn |
| [in] | Dphi_avg1 | DU_avg1 or DV_avg1 |
| [in] | Dphi_avg2 | DU_avg2 or DV_avg2 |
| DC | temporary | |
| FC | temporary | |
| [in] | msk | land-sea mask |
| [in] | nnew | component of velocity |
Definition at line 23 of file REMORA_update_massflux_3d.cpp.
Referenced by advance_3d().


| void REMORA::update_nodal_masks | ( | int | lev | ) |
Rebuild the u-, v- and psi-point masks from vec_mskr and fill their ghosts.
Rebuild the u-, v- and psi-point masks from vec_mskr and fill their ghost cells.
Every path goes through here, so the levels cannot end up with different definitions.
| [in] | lev | level to operate on |
Definition at line 1036 of file REMORA_make_new_level.cpp.
Referenced by init_masks_from_netcdf(), set_masks(), and set_masks_averaged_down().


| void REMORA::uv3dmix | ( | const amrex::Box & | xbx, |
| const amrex::Box & | ybx, | ||
| const amrex::Array4< amrex::Real > & | u, | ||
| const amrex::Array4< amrex::Real > & | v, | ||
| const amrex::Array4< amrex::Real const > & | uold, | ||
| const amrex::Array4< amrex::Real const > & | vold, | ||
| const amrex::Array4< amrex::Real > & | rufrc, | ||
| const amrex::Array4< amrex::Real > & | rvfrc, | ||
| const amrex::Array4< amrex::Real const > & | visc2_p, | ||
| const amrex::Array4< amrex::Real const > & | visc2_r, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | pm, | ||
| const amrex::Array4< amrex::Real const > & | pn, | ||
| const amrex::Array4< amrex::Real const > & | mskp, | ||
| int | nrhs, | ||
| int | nnew, | ||
| const amrex::Real | dt_lev | ||
| ) |
Harmonic viscosity.
| [in] | xbx | x-nodal tile box |
| [in] | ybx | y-nodal tile box |
| [in,out] | u | u-direction velocity |
| [in,out] | v | v-direction velocity |
| [in] | uold | u-direction velocity at last step |
| [in] | vold | v-direction velocity at last step |
| [in,out] | rufrc | forcing term for u-velocity RHS |
| [in,out] | rvfrc | forcing term for v-velocity RHS |
| [in] | visc2_p | harmonic viscosity on psi points |
| [in] | visc2_r | harmonic viscosity on rho points |
| [in] | Hz | vertical cell height |
| [in] | pm | 1/dx |
| [in] | pn | 1/dy |
| [in] | mskp | land-sea mask on psi-points |
| [in] | nrhs | index of RHS component |
| [in] | nnew | index of time step to update |
| [in] | dt_lev | time step at this level |
Definition at line 25 of file REMORA_uv3dmix.cpp.
Referenced by advance_2d(), and setup_step().


|
inlinenoexcept |
Definition at line 1460 of file REMORA.H.
Referenced by init_bcs(), and setup_step().


|
inlinenoexcept |
Definition at line 1454 of file REMORA.H.
Referenced by advance_2d(), fill_from_bdyfiles(), init_bcs(), MakeNewLevelFromCoarse(), RemakeLevel(), and set_2darrays().


| void REMORA::vert_mean_3d | ( | const amrex::Box & | bx, |
| const int | ioff, | ||
| const int | joff, | ||
| const amrex::Array4< amrex::Real > & | phi, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real const > & | Dphi_avg1, | ||
| const amrex::Array4< amrex::Real > & | DC, | ||
| const amrex::Array4< amrex::Real > & | CF, | ||
| const amrex::Array4< amrex::Real const > & | pm_or_pn, | ||
| const amrex::Array4< amrex::Real const > & | msk, | ||
| const int | nnew, | ||
| const int | N | ||
| ) |
Adjust 3D momentum variables based on vertical mean momentum.
| [in] | phi_bx | box to update on |
| [in] | ioff | x-direction offset |
| [in] | joff | y-direction offset |
| [in,out] | phi | velocity (u or v) |
| [in] | Dphi_avg1 | time average of barotropic velocity |
| DC | temporary | |
| CF | temporary | |
| [in] | pm_or_pn | 1/dx or 1/dy |
| [in] | msk | land-sea mask |
| [in] | nnew | index of time step to update |
| [in] | N | number of vertical levels |
Definition at line 19 of file REMORA_vert_mean_3d.cpp.
Referenced by advance_3d().


| void REMORA::vert_visc_3d | ( | const amrex::Box & | bx, |
| const int | ioff, | ||
| const int | joff, | ||
| const amrex::Array4< amrex::Real > & | phi, | ||
| const amrex::Array4< amrex::Real const > & | Hz, | ||
| const amrex::Array4< amrex::Real > & | Hzk, | ||
| const amrex::Array4< amrex::Real > & | AK, | ||
| const amrex::Array4< amrex::Real const > & | Akv, | ||
| const amrex::Array4< amrex::Real > & | BC, | ||
| const amrex::Array4< amrex::Real > & | DC, | ||
| const amrex::Array4< amrex::Real > & | FC, | ||
| const amrex::Array4< amrex::Real > & | CF, | ||
| const int | nnew, | ||
| const int | N, | ||
| const amrex::Real | dt_lev | ||
| ) |
Calculate effects of vertical viscosity or diffusivity.
| [in] | phi_bx | box to update on |
| [in] | ioff | x-direction offset |
| [in] | joff | y-direction offset |
| [in,out] | phi | velocity (u or v) |
| [in] | Hz | vertical height of cells |
| Hzk | temporary | |
| AK | temporary | |
| [in] | Akv | vertical viscosity coefficient |
| BC | temporary | |
| DC | temporary | |
| FC | temporary | |
| CF | temporary | |
| [in] | nnew | index of time step to update |
| [in] | N | number of vertical levels |
| [in] | dt_lev | time step at this refinement level |
Definition at line 23 of file REMORA_vert_visc_3d.cpp.
Referenced by advance_3d().


| Real REMORA::volWgtSumMF | ( | int | lev, |
| const amrex::MultiFab & | mf, | ||
| int | comp, | ||
| bool | local, | ||
| bool | finemask | ||
| ) |
Perform the volume-weighted sum.
| [in] | lev | level to calculate on |
| [in] | mf | data to sum over |
| [in] | comp | component on which to calculate sum |
| [in] | local | whether to do the sum locally |
| [in] | finemask | whether to mask fine level |
Definition at line 209 of file REMORA_SumIQ.cpp.
Referenced by sum_integrated_quantities().


| void REMORA::WriteAtFinalTime | ( | ) |
Write checkpoint and plotfiles at end of simulation.
Definition at line 345 of file REMORA.cpp.
Referenced by Evolve().


| void REMORA::WriteAtIntermediateTime | ( | int | step, |
| amrex::Real | cur_time | ||
| ) |
Write checkpoint and plotfiles at intermediate point of simulation, if needed.
Definition at line 360 of file REMORA.cpp.
Referenced by Evolve(), and EvolveOneStep().


|
static |
Write build info to os.
Definition at line 135 of file REMORA_writeJobInfo.cpp.
Referenced by main().


|
private |
write checkpoint file to disk
Definition at line 15 of file REMORA_Checkpoint.cpp.
Referenced by InitData(), WriteAtFinalTime(), and WriteAtIntermediateTime().


| void REMORA::WriteGenericPlotfileHeaderWithBathymetry | ( | std::ostream & | HeaderFile, |
| int | nlevels, | ||
| const amrex::Vector< amrex::BoxArray > & | bArray, | ||
| const amrex::Vector< std::string > & | varnames_3d, | ||
| const amrex::Vector< std::string > & | varnames_2d_rho, | ||
| const amrex::Vector< std::string > & | varnames_2d_u, | ||
| const amrex::Vector< std::string > & | varnames_2d_v, | ||
| const amrex::Vector< amrex::Geometry > & | my_geom, | ||
| double | time, | ||
| const amrex::Vector< int > & | level_steps, | ||
| const amrex::Vector< amrex::IntVect > & | rr, | ||
| const std::string & | versionName, | ||
| const std::string & | levelPrefix, | ||
| const std::string & | mfPrefix | ||
| ) | const |
write out header data for an AMReX plotfile
| HeaderFile | output stream for header |
| nlevels | number of levels to write out |
| bArray | vector over levels of BoxArrays |
| varnames_3d | 3D variable names to write out |
| varnames_2d | 2D variable names to write out |
| my_geom | geometry to use for writing plotfile |
| time | time at which to output |
| level_steps | vector over level of iterations |
| my_ref_ratio | refinement ratio to use for writing plotfile |
| versionName | version string for VisIt |
| levelPrefix | string to prepend to level number |
| mfPrefix | subdirectory for multifab data |
Definition at line 935 of file REMORA_Plotfile.cpp.
Referenced by WriteMultiLevelPlotfileWithBathymetry().


Write job info to stdout.
Definition at line 7 of file REMORA_writeJobInfo.cpp.
Referenced by WritePlotFile().


| void REMORA::WriteMultiLevelPlotfileWithBathymetry | ( | const std::string & | plotfilename, |
| int | nlevels, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_nd, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_u, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_v, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_w, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_2d_rho, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_2d_u, | ||
| const amrex::Vector< const amrex::MultiFab * > & | mf_2d_v, | ||
| const amrex::Vector< std::string > & | varnames_3d, | ||
| const amrex::Vector< std::string > & | varnames_2d_rho, | ||
| const amrex::Vector< std::string > & | varnames_2d_u, | ||
| const amrex::Vector< std::string > & | varnames_2d_v, | ||
| const amrex::Vector< amrex::Geometry > & | my_geom, | ||
| double | time, | ||
| const amrex::Vector< int > & | level_steps, | ||
| const amrex::Vector< amrex::IntVect > & | rr, | ||
| const std::string & | versionName = "HyperCLaw-V1.1", |
||
| const std::string & | levelPrefix = "Level_", |
||
| const std::string & | mfPrefix = "Cell", |
||
| const amrex::Vector< std::string > & | extra_dirs = amrex::Vector<std::string>() |
||
| ) | const |
write out particular data to an AMReX plotfile
| plotfilename | name of plotfile to write to |
| nlevels | number of levels to write out |
| mf | MultiFab of data to write out |
| mf_nd | Multifab of nodal data to write out |
| varnames_3d | 3D variable names to write out |
| varnames_2d_rho | 2D cell-centered variable names to write out |
| varnames_2d_u | 2D x-face-based variable names to write out |
| varnames_2d_v | 2D y-face-based variable names to write out |
| my_geom | geometry to use for writing plotfile |
| time | time at which to output |
| level_steps | vector over level of iterations |
| rr | refinement ratio to use for writing plotfile |
| versionName | version string for VisIt |
| levelPrefix | string to prepend to level number |
| mfPrefix | subdirectory for multifab data |
| extra_dirs | additional subdirectories within plotfile |
Definition at line 752 of file REMORA_Plotfile.cpp.
Referenced by WritePlotFile().


|
private |
Write MultiFab in NetCDF format.
Write plotfile using NetCDF (wrapper)
| which_step | current step for output |
Definition at line 171 of file REMORA_NCPlotFile.cpp.
Referenced by WritePlotFile().


|
private |
Write a particular NetCDF plotfile.
| lev | level of data to output |
| which_subdomain | index of subdomain if lev != 0 |
| write_header | whether to write a header |
| ncf | netcdf file object |
| is_history | whether the file being written is a history file |
Definition at line 256 of file REMORA_NCPlotFile.cpp.
Referenced by WriteNCPlotFile().


| void REMORA::WritePlotFile | ( | int | istep | ) |
main driver for writing AMReX plotfiles
Definition at line 78 of file REMORA_Plotfile.cpp.
Referenced by InitData(), timeStepML(), WriteAtFinalTime(), and WriteAtIntermediateTime().


|
inlinenoexcept |
Definition at line 1450 of file REMORA.H.
Referenced by Advance(), advance_3d(), ErrorEst(), FillBdyCCVels(), FillPatchNoBC(), gls_corrector(), gls_prestep(), init_bcs(), init_only(), InitData(), MakeNewLevelFromCoarse(), RemakeLevel(), rhs_uv_2d(), set_init_data_averaged_down(), timeStepML(), and update_massflux_3d().


|
inlinenoexcept |
Definition at line 1451 of file REMORA.H.
Referenced by Advance(), advance_3d(), ErrorEst(), FillPatchNoBC(), gls_corrector(), gls_prestep(), init_bcs(), init_only(), InitData(), MakeNewLevelFromCoarse(), RemakeLevel(), rhs_uv_2d(), set_init_data_averaged_down(), timeStepML(), and update_massflux_3d().


|
inlinenoexcept |
Definition at line 1455 of file REMORA.H.
Referenced by advance_2d(), fill_from_bdyfiles(), init_bcs(), init_zeta_from_netcdf(), RemakeLevel(), and set_zeta_averaged_down().


|
inlinenoexcept |
Definition at line 1452 of file REMORA.H.
Referenced by advance_3d_ml(), ErrorEst(), FillPatchNoBC(), gls_corrector(), init_bcs(), init_only(), InitData(), MakeNewLevelFromCoarse(), RemakeLevel(), set_analytic_vmix(), setup_step(), and timeStep().


|
private |
array of flux registers for refluxing in multilevel
Definition at line 1715 of file REMORA.H.
Referenced by define_flux_register(), getAdvFluxReg(), InitData(), REMORA(), and REMORA().
|
private |
Name of time fields for boundary data.
Definition at line 2051 of file REMORA.H.
Referenced by init_bdry_from_netcdf(), and ReadParameters().
|
private |
Default name of time field for boundary data.
Definition at line 2049 of file REMORA.H.
Referenced by ReadParameters().
|
private |
Container to connect boundary data being read in boundary condition containers.
Needed for phys_bc_need_data to work correctly
Definition at line 1754 of file REMORA.H.
Referenced by init_bcs().
|
private |
First cons component of the biology block, i.e. Tracer_comp + nscalar. The state is laid out as temp, salt, the passive scalars, then biology.
Definition at line 1796 of file REMORA.H.
Referenced by advance_biology(), bio_comp_start(), init_biology_from_netcdf(), init_biology_full_domain_from_netcdf(), init_scalars_from_netcdf(), init_scalars_full_domain_from_netcdf(), ReadParameters(), and set3DPlotVariables().
|
private |
Biology diagnostic verbosity: 0 off, 1 target column, 2 all columns. See Source/Biology/Fortran/tag_map.md.
Definition at line 1814 of file REMORA.H.
Referenced by advance_biology(), and ReadParameters().
|
private |
Target column i index for biology_debug = 1.
Definition at line 1816 of file REMORA.H.
Referenced by advance_biology(), and ReadParameters().
|
private |
Target column j index for biology_debug = 1.
Definition at line 1818 of file REMORA.H.
Referenced by advance_biology(), and ReadParameters().
|
private |
Source of the biology tracer initial condition, independent of remora.ic_type. Default follows ic_type.
Definition at line 1806 of file REMORA.H.
Referenced by init_biology_ic(), init_biology_ic_full_domain(), and ReadParameters().
|
private |
Active biology package.
Definition at line 1801 of file REMORA.H.
Referenced by advance_biology(), init_biology_from_netcdf(), init_biology_full_domain_from_netcdf(), init_biology_ic(), init_biology_ic_full_domain(), init_scalar_metadata(), ReadParameters(), and set3DPlotVariables().
|
private |
Vector over BdyVars of boundary series data containers.
Definition at line 1625 of file REMORA.H.
Referenced by fill_from_bdyfiles(), init_bdry_from_netcdf(), and ReadParameters().
|
private |
the boxes specified at each level by tagging criteria
Definition at line 1688 of file REMORA.H.
Referenced by init_bathymetry_from_netcdf(), init_biology_from_netcdf(), init_clim_nudg_coeff_from_netcdf(), init_coriolis_from_netcdf(), init_data_from_netcdf(), init_grid_vars_from_netcdf(), init_masks_from_netcdf(), init_scalars_from_netcdf(), init_zeta_from_netcdf(), ReadParameters(), refinement_criteria_setup(), and WriteNCPlotFile_which().
|
private |
Definition at line 1870 of file REMORA.H.
Referenced by AverageDownTo(), and ReadParameters().
|
private |
exclude the coarse-fine perimeter's normal-velocity faces from the fine-to-coarse average, as ROMS does. 1 (default) matches ROMS; 0 restores the old behaviour.
Definition at line 1853 of file REMORA.H.
Referenced by AverageDownTo(), and ReadParameters().
|
private |
average the fine velocity onto the coarse over ROMS's nine-point stencil (fine2coarse2d, half-width (Rscale-1)/2 in both directions) instead of only the faces that tile the coarse face. On by default: with cf_flux_pc it takes the interface refinement perturbation from 1.29x ROMS's to 1.01x on the matched dogbone, the residual 1% closing only with cf_impose_flux, which stays off. Not conservative in principle – the nine-point mean does not preserve transport across the interface – but only about 3e-10 of volume drift in practice, well under the free-surface ghost band's cost.
Definition at line 1898 of file REMORA.H.
Referenced by AverageDownTo(), and ReadParameters().
|
private |
write every leapfrog record of the coarse-fine ghost band, as put_refine2d does when it sets zeta(:,:,1:3) and Zt_avg1 to one value; without it those records go a whole parent step stale. On by default. Roundoff on the ROMS-matched deck, where the fine zeta halo is barely read, but the dominant cost to volume conservation on the subcycled dogbone: 2.0e-09 to 2.9e-08 of drift over 20 steps, volume being the integral of the free surface this writes. ROMS makes the same trade.
Definition at line 1878 of file REMORA.H.
Referenced by advance_2d(), and ReadParameters().
|
private |
re-fill the child's 3D velocity from the parent after the step, so the coarse-fine boundary carries the parent's shear profile rather than the one vert_mean_3d left there. Diagnostic; off, so it changes no answer unless set. Both drivers do it only under this knob – see the comment in Advance. On the ratio-3 Dogbone it moves level-1 x-velocity by 4.1e-3 relative and level 0 by 1.9e-4 after 20 steps.
Definition at line 1861 of file REMORA.H.
Referenced by Advance(), ReadParameters(), and timeStepML().
|
private |
distribute the parent's interface mass flux piecewise-constantly over the fine faces under each parent face, as ROMS's get_persisted2d does, instead of with the linear tangential variation of AMReX's face interpolator. Both conserve the total; they differ in the profile along the interface. On by default: it removes the fine level's own excess divergence there.
Definition at line 1889 of file REMORA.H.
Referenced by ReadParameters(), set_2d_cf_bcs(), and set_2d_cf_flux().
|
private |
impose the parent's barotropic mass flux on DUon/DVom at the coarse-fine interface, rather than relying on the velocity written by set_2d_cf_bcs being turned back into the same flux. Off by default: it improves conservation but does not cure the two-level barotropic instability seen in Channel_Test.
Definition at line 1844 of file REMORA.H.
Referenced by advance_2d(), and ReadParameters().
|
private |
print the imposed coarse-fine interface velocity at this baroclinic step (-1 = off). Diagnostic only; the fine level is not in the NetCDF output.
Definition at line 1902 of file REMORA.H.
Referenced by ReadParameters(), and set_2d_cf_bcs().
|
private |
0 = never impose the 2D coarse-fine interface condition, 1 = every fast step, 2 = only the first fast step of each baroclinic step.
1 matches ROMS and is the default: put_refine2d runs once before the barotropic loop, but u2dbc_im re-applies the same mass-flux formula on every fast step inside it, so 2 is only half the ROMS schedule. On the dogbone, 2 helps early and is much worse later.
Definition at line 1869 of file REMORA.H.
Referenced by advance_2d(), and ReadParameters().
|
private |
Width for fixing values at coarse-fine interface.
Definition at line 1641 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), set_2d_cf_bcs(), and set_2d_cf_flux().
|
private |
interpolate the parent in time onto the child's own sub-time, as put_refine2d does, rather than freezing it at the end of the parent step. On by default, and non-conservative for the same reason as cf_fill_all_kcomp: 1.4e-08 of volume drift on its own.
Definition at line 1883 of file REMORA.H.
Referenced by advance_2d(), ReadParameters(), and register_coarse_data().
|
private |
Nudging width at coarse-fine interface.
Definition at line 1639 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), init_stuff(), InitData(), MakeNewLevelFromCoarse(), register_coarse_data(), RemakeLevel(), and timeStepML().
|
staticprivate |
CFL condition.
Definition at line 1822 of file REMORA.H.
Referenced by estTimeStep(), and ReadParameters().
|
staticprivate |
Fraction maximum change in subsequent time steps.
Definition at line 1824 of file REMORA.H.
Referenced by ComputeDt(), and ReadParameters().
|
private |
measure whether fine cell edges tile the coarse ones at a coarse-fine interface, which is what makes the imposed mass flux conservative
Definition at line 1910 of file REMORA.H.
Referenced by AverageDownTo(), and ReadParameters().
|
private |
tolerance for the above
Definition at line 1912 of file REMORA.H.
Referenced by check_cf_metrics(), and ReadParameters().
|
private |
Checkpoint file prefix.
Definition at line 1933 of file REMORA.H.
Referenced by ReadParameters(), and WriteCheckpointFile().
|
private |
Checkpoint output interval in iterations.
Definition at line 1935 of file REMORA.H.
Referenced by InitData(), ReadParameters(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
private |
Checkpoint output interval in seconds.
Definition at line 1937 of file REMORA.H.
Referenced by InitData(), ReadParameters(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
private |
check the nodal z a viewer rebuilds from the plotfile's Nu_nd set against z_phys_nd on each level, and fine against coarse at coincident nodes
Definition at line 1916 of file REMORA.H.
Referenced by ReadParameters(), and WritePlotFile().
|
private |
abort when the coarse-fine mismatch at interior nodes exceeds this; negative (the default) only reports it, since where a finer level carries finer bathymetry the two levels' bottoms legitimately differ
Definition at line 1920 of file REMORA.H.
Referenced by check_plot_nodal_z(), and ReadParameters().
|
private |
Whether to split the netcdf history file into fixed-length chunks.
Definition at line 1940 of file REMORA.H.
Referenced by ReadParameters(), WriteNCPlotFile(), and WriteNCPlotFile_which().
|
private |
Vector over cons components of the name of the time field for that tracer's climatology data.
Definition at line 2063 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Name of time field for u climatology data.
Definition at line 2058 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Name of time field for ubar climatology data.
Definition at line 2054 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Name of time field for v climatology data.
Definition at line 2060 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Name of time field for vbar climatology data.
Definition at line 2056 of file REMORA.H.
Referenced by ReadParameters().
|
private |
Data container for cloud cover fraction read from file.
Definition at line 1600 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
Vector over cons components of climatology data read from file.
Entry icomp is null unless solverChoice.do_cons_clim_nudg[icomp] is set.
Definition at line 1615 of file REMORA.H.
Referenced by advance_3d(), and init_only().
|
private |
Names of scalars for plotfile output.
Definition at line 1951 of file REMORA.H.
Referenced by ErrorEst(), init_bcs(), init_bdry_from_netcdf(), init_biology_from_netcdf(), init_biology_full_domain_from_netcdf(), init_clim_nudg_coeff_from_netcdf(), init_only(), init_scalar_metadata(), init_scalars_from_netcdf(), init_scalars_full_domain_from_netcdf(), ReadParameters(), set2DPlotVariables(), set3DPlotVariables(), sum_integrated_quantities(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::cons_new |
multilevel data container for current step's scalar data: temperature, salinity, passive tracer
Definition at line 393 of file REMORA.H.
Referenced by advance_3d(), advance_3d_ml(), allocate_init_full_domain(), AverageDownTo(), ClearLevel(), Construct_REMORAFillPatchers(), define_flux_register(), Define_REMORAFillPatchers(), ErrorEst(), init_analytic(), init_bathymetry_from_netcdf(), init_beta_plane_coriolis(), init_biology_from_netcdf(), init_biology_ic(), init_clim_nudg_coeff_from_netcdf(), init_coriolis_from_netcdf(), init_data_from_netcdf(), init_grid_vars_from_netcdf(), init_masks_from_netcdf(), init_only(), init_scalars_from_netcdf(), init_zeta_from_netcdf(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), PackSurfaceState(), ReadCheckpointFile(), reflux_to(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), scale_rhs_vars(), scale_rhs_vars_inv(), set_2darrays(), set_init_data_averaged_down(), set_zeta_average(), setup_step(), stretch_transform(), sum_integrated_quantities(), timeStep(), timeStepML(), volWgtSumMF(), WriteCheckpointFile(), and WritePlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::cons_old |
multilevel data container for last step's scalar data: temperature, salinity, passive tracer
Definition at line 384 of file REMORA.H.
Referenced by advance_3d(), ClearLevel(), gls_corrector(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), setup_step(), timeStep(), timeStepML(), and WriteCheckpointFile().
| amrex::Gpu::DeviceVector<amrex::Real> REMORA::Cs_r |
Stretching coefficients at rho points.
Definition at line 468 of file REMORA.H.
Referenced by calc_stretch_coeffs(), init_stretch_coeffs(), stretch_transform(), stretch_transform_full_domain(), and WriteNCPlotFile_which().
| amrex::Gpu::DeviceVector<amrex::Real> REMORA::Cs_w |
Stretching coefficients at w points.
Definition at line 470 of file REMORA.H.
Referenced by calc_stretch_coeffs(), init_stretch_coeffs(), stretch_transform(), stretch_transform_full_domain(), and WriteNCPlotFile_which().
|
private |
Cumulative refinement ratio between level 0 and level i.
Definition at line 2036 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), allocate_init_full_domain(), average_down_with_grow_cells(), coarsen_bathymetry_with_grow_cells(), coarsen_masks_with_grow_cells(), ensure_full_domain_masks(), init_bathymetry_full_domain_from_netcdf(), init_biology_full_domain_from_netcdf(), init_data_full_domain_from_netcdf(), init_grid_vars_full_domain_from_netcdf(), init_masks_full_domain_from_netcdf(), init_ref_ratios(), init_riv_pos_from_netcdf(), init_scalars_full_domain_from_netcdf(), init_zeta_full_domain_from_netcdf(), and refine_masks_with_grow_cells().
|
private |
Definition at line 2130 of file REMORA.H.
Referenced by DataLog(), NumDataLogs(), ReadParameters(), and setRecordDataInfo().
|
private |
Definition at line 2131 of file REMORA.H.
Referenced by DataLogName(), and ReadParameters().
|
private |
Names of derived fields for 2d plotfile fields.
Definition at line 1956 of file REMORA.H.
Referenced by set2DPlotVariables().
|
private |
Names of derived fields for 3d plotfile fields.
Definition at line 1954 of file REMORA.H.
Referenced by set3DPlotVariables().
| amrex::DistributionMapping REMORA::dm_full_domain |
the DistributionMapping every full-domain multifab is built on. Each of those covers the domain in a single box, so the map holds one entry, and which rank it names is whichever holds the least fab memory when it is built. Building one per allocator therefore put the mask and the data it weights on different ranks under MPI. Empty until full_domain_dmap first needs it.
Definition at line 1415 of file REMORA.H.
Referenced by full_domain_dmap().
|
private |
correct the coarse tracer with the finer level's accumulated advective flux at their interface. Only has an effect under remora.do_substep with two-way coupling.
Definition at line 1849 of file REMORA.H.
Referenced by Advance(), advance_3d(), ReadParameters(), and reflux_to().
|
private |
Whether to substep fine levels in time.
Definition at line 1833 of file REMORA.H.
Referenced by Advance(), advance_2d(), advance_3d(), AverageDownTo(), Evolve(), EvolveOneStep(), FillPatch(), FillPatchNoBC(), print_timestep_hierarchy(), ReadParameters(), reflux_to(), and set_nsubsteps().
|
private |
Array of strings describing domain boundary conditions.
Definition at line 1735 of file REMORA.H.
Referenced by init_bcs(), and writeJobInfo().
|
private |
vector (over BCVars) of BCRecs
Definition at line 1730 of file REMORA.H.
Referenced by fill_from_bdyfiles(), FillCoarsePatchMap(), FillPatch(), FillPatchNoBC(), gls_corrector(), gls_prestep(), init_bcs(), init_stuff(), rhs_uv_2d(), set_2d_cf_bcs(), set_2d_cf_flux(), update_massflux_3d(), and WritePlotFile().
|
private |
GPU vector (over BCVars) of BCRecs.
Definition at line 1732 of file REMORA.H.
Referenced by init_bcs(), and init_stuff().
| DriverAtmosForcingMode REMORA::driver_atmos_forcing_mode = DriverAtmosForcingMode::State |
Active atmosphere-to-ocean forcing contract on the most recent driver apply.
Definition at line 530 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), ApplyAtmosphericStates(), ConfigureDriverAtmosToOceanCoupling(), InitData(), SetDriverAtmosToOceanForcingMode(), and setup_step().
| std::array<bool, AtmosState::NumTypes> REMORA::driver_atmos_state_from_driver {} |
provenance flags for driver-supplied atmospheric forcing lanes
Definition at line 524 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), ApplyAtmosphericStates(), and set_surface_state().
| bool REMORA::driver_uses_two_way_coupling = false |
Driver-level direction flag copied in before InitData.
Definition at line 528 of file REMORA.H.
Referenced by ConfigureDriverAtmosToOceanCoupling(), and InitData().
|
private |
time step at each level
Definition at line 1706 of file REMORA.H.
Referenced by ComputeDt(), Evolve(), EvolveOneStep(), InitData(), print_timestep_hierarchy(), ReadCheckpointFile(), REMORA(), REMORA(), set_zeta_to_Ztavg(), timeStep(), timeStepML(), and WriteCheckpointFile().
|
private |
Data container for evaporation minus precipitation read from file.
Definition at line 1602 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
whether plotfile variables should be expanded to a uniform refinement ratio
Definition at line 1962 of file REMORA.H.
Referenced by ReadParameters(), and WritePlotFile().
|
private |
Runtime parameters for the Fennel biology package.
Definition at line 1803 of file REMORA.H.
Referenced by advance_biology(), init_biology_ic(), init_biology_ic_full_domain(), init_scalar_metadata(), and ReadParameters().
|
staticprivate |
Minimum number of digits in plotfile name or chunked history file.
Definition at line 2003 of file REMORA.H.
Referenced by ReadParameters(), WriteCheckpointFile(), WriteNCPlotFile(), and WritePlotFile().
|
private |
Mask that zeroes out values on a coarse level underlying grids on the next finest level.
Definition at line 2079 of file REMORA.H.
Referenced by build_fine_mask().
|
staticprivate |
User specified fixed baroclinic time step.
Definition at line 1826 of file REMORA.H.
Referenced by estTimeStep(), and ReadParameters().
|
private |
Vector over levels of FillPatchers for scalars.
Definition at line 1644 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Vector over levels of FillPatchers for Dubar (2D)
Definition at line 1658 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), register_coarse_data(), set_2d_cf_bcs(), and set_2d_cf_flux().
|
private |
Vector over levels of FillPatchers for Dvbar (2D)
Definition at line 1660 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), register_coarse_data(), set_2d_cf_bcs(), and set_2d_cf_flux().
|
private |
Vector over levels of FillPatchers for u (3D)
Definition at line 1646 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Vector over levels of FillPatchers for ubar (2D)
Definition at line 1654 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Vector over levels of FillPatchers for v (3D)
Definition at line 1648 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Vector over levels of FillPatchers for vbar (2D)
Definition at line 1656 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Vector over levels of FillPatchers for w.
Definition at line 1650 of file REMORA.H.
Referenced by Construct_REMORAFillPatchers(), Define_REMORAFillPatchers(), FillPatch(), FillPatchNoBC(), register_coarse_data(), and timeStepML().
|
private |
Name of time field for forcing data.
Definition at line 2067 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Which level the high resolution bathymetry is at.
Definition at line 2022 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), ensure_full_domain_masks(), init_bathymetry_full_domain_from_analytic(), init_bathymetry_full_domain_from_netcdf(), init_full_domain_from_analytic(), init_grid_vars_full_domain_from_netcdf(), init_masks_full_domain_from_analytic(), init_masks_full_domain_from_netcdf(), init_only(), MakeNewLevelFromCoarse(), ReadParameters(), RemakeLevel(), resize_stuff(), set_bathymetry(), set_grid_scale(), and set_masks().
|
private |
Which level the high resolution initialization data is at.
Definition at line 2029 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_biology_full_domain_from_netcdf(), init_biology_ic_full_domain(), init_data_full_domain_from_netcdf(), init_full_domain_from_analytic(), init_only(), init_scalars_full_domain_from_netcdf(), init_zeta_full_domain_from_netcdf(), ReadParameters(), resize_stuff(), and set_zeta().
|
private |
Counter for which time index we are writing to in the netcdf history file.
Definition at line 1944 of file REMORA.H.
Referenced by InitData(), WriteAtFinalTime(), WriteAtIntermediateTime(), WriteNCPlotFile(), and WriteNCPlotFile_which().
|
private |
which step?
Definition at line 1691 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), Evolve(), EvolveOneStep(), InitData(), ReadCheckpointFile(), REMORA(), REMORA(), restart(), set_2d_cf_bcs(), setup_step(), store_2d_flux(), timeStep(), timeStepML(), WriteAtFinalTime(), WriteCheckpointFile(), and WritePlotFile().
|
private |
Step when we last output a checkpoint file.
Definition at line 1762 of file REMORA.H.
Referenced by InitData(), restart(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
private |
Simulation time when we last output a checkpoint file.
Definition at line 1764 of file REMORA.H.
Referenced by InitData(), restart(), and WriteAtIntermediateTime().
|
private |
Step when we last output a plotfile.
Definition at line 1757 of file REMORA.H.
Referenced by InitData(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
private |
Simulation time when we last output a plotfile.
Definition at line 1759 of file REMORA.H.
Referenced by InitData(), restart(), and WriteAtIntermediateTime().
|
private |
Data container for downward longwave radiation flux read from file.
Definition at line 1596 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
Array holding the Dirichlet values at walls which need them.
Definition at line 1738 of file REMORA.H.
Referenced by init_bcs(), and init_stuff().
| bool REMORA::m_reported_atm_flux_validation = false |
Latch so the flux validation block prints once per run unless remora.v >= 1.
Definition at line 252 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes().
| amrex::Real REMORA::m_warned_surface_temp_max = amrex::Real(273.15 + 40.0) |
Definition at line 256 of file REMORA.H.
Referenced by PackSurfaceState().
| amrex::Real REMORA::m_warned_surface_temp_min = amrex::Real(273.15 - 2.5) |
Worst wet surface temperature extremes (K) and NaN count already warned about; the warning repeats only when a later exchange is worse. Start at the bounds.
Definition at line 255 of file REMORA.H.
Referenced by PackSurfaceState().
| amrex::Long REMORA::m_warned_surface_temp_nan = 0 |
Definition at line 257 of file REMORA.H.
Referenced by PackSurfaceState().
|
private |
maximum number of steps
Definition at line 1772 of file REMORA.H.
Referenced by Evolve(), and ReadParameters().
|
private |
Number of biology tracers, set by the active biology model. Zero when no biology model is active.
Definition at line 1793 of file REMORA.H.
Referenced by init_biology_from_netcdf(), init_biology_full_domain_from_netcdf(), num_bio(), and ReadParameters().
|
staticprivate |
NetCDF boundary data.
Definition at line 58 of file REMORA.H.
Referenced by init_bdry_from_netcdf(), and ReadParameters().
|
private |
NetCDF climatology coefficient file.
Definition at line 2046 of file REMORA.H.
Referenced by init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), and ReadParameters().
|
private |
NetCDF climatology history file(s)
Definition at line 2044 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
NetCDF forcing file(s)
Definition at line 2039 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
staticprivate |
NetCDF grid file.
Definition at line 60 of file REMORA.H.
Referenced by init_bathymetry_from_netcdf(), init_coriolis_from_netcdf(), init_grid_vars_from_netcdf(), init_masks_from_netcdf(), and ReadParameters().
|
private |
Grid file for high resolution bathymetry.
Definition at line 2024 of file REMORA.H.
Referenced by init_bathymetry_full_domain_from_netcdf(), init_grid_vars_full_domain_from_netcdf(), init_masks_full_domain_from_netcdf(), and ReadParameters().
|
private |
Box for the full domain at nc_hires_grid_level.
Definition at line 2026 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), init_bathymetry_full_domain_from_netcdf(), init_grid_vars_full_domain_from_netcdf(), and init_masks_full_domain_from_netcdf().
|
private |
Box for the full domain at nc_hires_init_level.
Definition at line 2033 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_biology_full_domain_from_netcdf(), init_data_full_domain_from_netcdf(), init_scalars_full_domain_from_netcdf(), and init_zeta_full_domain_from_netcdf().
|
staticprivate |
NetCDF initialization file.
Definition at line 59 of file REMORA.H.
Referenced by init_biology_from_netcdf(), init_data_from_netcdf(), init_scalars_from_netcdf(), init_zeta_from_netcdf(), and ReadParameters().
|
private |
Init file for high resolution.
Definition at line 2031 of file REMORA.H.
Referenced by init_biology_full_domain_from_netcdf(), init_data_full_domain_from_netcdf(), init_scalars_full_domain_from_netcdf(), init_zeta_full_domain_from_netcdf(), and ReadParameters().
|
private |
NetCDF river file(s)
Definition at line 2041 of file REMORA.H.
Referenced by init_only(), init_riv_pos_from_netcdf(), and ReadParameters().
|
private |
Number of conserved scalars in the state (temperature + salt + passive scalars + biology tracers)
Definition at line 1799 of file REMORA.H.
Referenced by advance_3d(), advance_3d_ml(), allocate_init_full_domain(), bdy_ubar(), bdy_vbar(), bdy_zeta(), define_flux_register(), ErrorEst(), fill_from_bdyfiles(), foextrap_bc(), foextrap_periodic_bc(), init_bcs(), init_bdry_from_netcdf(), init_biology_from_netcdf(), init_biology_full_domain_from_netcdf(), init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), init_data_from_netcdf(), init_data_full_domain_from_netcdf(), init_only(), init_scalar_metadata(), init_stuff(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), num_bc_vars(), num_bdy_vars(), prestep(), ReadCheckpointFile(), ReadParameters(), reflux_to(), RemakeLevel(), resize_stuff(), set2DPlotVariables(), set3DPlotVariables(), set_hmixcoef(), set_init_data_averaged_down(), setup_step(), sum_integrated_quantities(), tke_bc(), u2d_simple_bc(), ubar_bc(), v2d_simple_bc(), vbar_bc(), WriteCheckpointFile(), WriteNCPlotFile_which(), WritePlotFile(), xvel_bc(), yvel_bc(), zeta_bc(), and zvel_bc().
|
staticprivate |
User specified, number of barotropic steps per baroclinic step.
Definition at line 1828 of file REMORA.H.
Referenced by Advance(), estTimeStep(), print_timestep_hierarchy(), ReadParameters(), set_weights(), and timeStepML().
|
private |
fill value for masked arrays in netcdf output
Definition at line 1967 of file REMORA.H.
Referenced by ReadParameters(), WriteNCPlotFile_which(), and WritePlotFile().
|
private |
Number of fast steps to take.
Definition at line 1830 of file REMORA.H.
Referenced by Advance(), advance_2d(), print_timestep_hierarchy(), set_weights(), and timeStepML().
|
private |
Number of passive (dye) scalars carried in the state, beyond temperature and salinity. Does not count biology tracers. Dye is opt-in: a run carries one only when remora.nscalar asks for it.
Definition at line 1790 of file REMORA.H.
Referenced by init_scalar_metadata(), init_scalars_from_netcdf(), init_scalars_full_domain_from_netcdf(), num_passive_scalars(), num_scalar(), and ReadParameters().
|
private |
How many substeps on each level?
Definition at line 1693 of file REMORA.H.
Referenced by ComputeDt(), print_timestep_hierarchy(), set_nsubsteps(), timeStep(), and timeStepML().
|
private |
how many boxes specified at each level by tagging criteria
Definition at line 1684 of file REMORA.H.
Referenced by init_bathymetry_from_netcdf(), init_biology_from_netcdf(), init_clim_nudg_coeff_from_netcdf(), init_coriolis_from_netcdf(), init_data_from_netcdf(), init_grid_vars_from_netcdf(), init_masks_from_netcdf(), init_scalars_from_netcdf(), init_zeta_from_netcdf(), ReadParameters(), and refinement_criteria_setup().
|
private |
how many netcdf input files specified at each level
Definition at line 1686 of file REMORA.H.
Referenced by ReadParameters().
|
private |
Data container for air pressure read from file.
Definition at line 1592 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
These are flags that indicate whether we need to read in boundary data from file.
Sized num_bdy_vars()+1; the extra trailing slot is a scratch entry that variables with no NetCDF boundary lane (see bdy_index) write into and nothing reads.
Definition at line 1748 of file REMORA.H.
Referenced by init_bcs(), and init_bdry_from_netcdf().
|
private |
Array holding the "physical" boundary condition types (e.g. "inflow")
Definition at line 1741 of file REMORA.H.
Referenced by FillBdyCCVels(), and init_bcs().
|
private |
Vector (over level) of functors to apply physical boundary conditions.
Definition at line 1712 of file REMORA.H.
Referenced by advance_3d(), FillCoarsePatchMap(), FillPatch(), gls_corrector(), init_stuff(), init_zeta_from_netcdf(), REMORA(), REMORA(), and setup_step().
|
private |
Plotfile prefix.
Definition at line 1927 of file REMORA.H.
Referenced by ReadParameters(), WriteNCPlotFile(), and WritePlotFile().
|
private |
Whether to output a plotfile on restart from checkpoint.
Definition at line 1766 of file REMORA.H.
Referenced by InitData().
|
private |
Plotfile output interval in iterations.
Definition at line 1929 of file REMORA.H.
Referenced by InitData(), ReadParameters(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
private |
Plotfile output interval in seconds.
Definition at line 1931 of file REMORA.H.
Referenced by InitData(), ReadParameters(), WriteAtFinalTime(), and WriteAtIntermediateTime().
|
staticprivate |
Whether to write nodal data (Nu_nd) to plotfiles.
Definition at line 2009 of file REMORA.H.
Referenced by check_plot_nodal_z(), ReadParameters(), WriteGenericPlotfileHeaderWithBathymetry(), WriteMultiLevelPlotfileWithBathymetry(), and WritePlotFile().
|
staticprivate |
Whether to write the staggered velocities (not averaged to cell centers)
Definition at line 2006 of file REMORA.H.
Referenced by ReadParameters(), WriteGenericPlotfileHeaderWithBathymetry(), WriteMultiLevelPlotfileWithBathymetry(), and WritePlotFile().
|
private |
Names of 2D variables to output to AMReX plotfile.
Definition at line 1949 of file REMORA.H.
Referenced by append2DPlotVariables(), set2DPlotVariables(), WriteNCPlotFile_which(), and WritePlotFile().
|
private |
Names of 3D variables to output to AMReX plotfile.
Definition at line 1947 of file REMORA.H.
Referenced by append3DPlotVariables(), set3DPlotVariables(), WriteNCPlotFile_which(), and WritePlotFile().
|
private |
fill value for masked arrays in amrex plotfiles
Definition at line 1965 of file REMORA.H.
Referenced by ReadParameters(), and WritePlotFile().
|
staticprivate |
Native or NetCDF plotfile output.
Definition at line 2012 of file REMORA.H.
Referenced by ReadParameters(), and WritePlotFile().
| std::string REMORA::pp_prefix {"remora"} |
default prefix for input file parameters
Definition at line 381 of file REMORA.H.
Referenced by append2DPlotVariables(), append3DPlotVariables(), ReadParameters(), refinement_criteria_setup(), REMORA(), set2DPlotVariables(), and set3DPlotVariables().
|
staticprivate |
Accumulator variable for CPU time used thusfar.
Definition at line 2099 of file REMORA.H.
Referenced by getCPUTime().
|
private |
Pointer to container of analytical functions for problem definition.
Definition at line 1681 of file REMORA.H.
Referenced by init_analytic(), init_bathymetry_full_domain_from_analytic(), init_biology_ic(), init_biology_ic_full_domain(), init_full_domain_from_analytic(), init_masks_full_domain_from_analytic(), REMORA(), REMORA(), set_analytic_vmix(), set_bathymetry(), set_coriolis(), set_grid_scale(), set_hmixcoef(), set_masks(), set_smflux(), set_surface_state(), and set_zeta().
|
private |
Data container for specific humidity read from file.
Definition at line 1590 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
Data container for precipitation rate read from file.
Definition at line 1598 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
staticprivate |
Holds info for dynamically generated tagging criteria.
Definition at line 2076 of file REMORA.H.
Referenced by ErrorEst(), and refinement_criteria_setup().
|
private |
stop that correction driving a tracer negative, as ROMS does. On by default to match ROMS; costs exact conservation on any step that clamps.
Definition at line 1906 of file REMORA.H.
Referenced by ReadParameters(), and reflux_to().
|
private |
how often each level regrids the higher levels of refinement (after a level advances that many time steps)
Definition at line 1923 of file REMORA.H.
Referenced by ReadParameters(), timeStep(), and timeStepML().
|
private |
If set, restart from this checkpoint file.
Definition at line 1785 of file REMORA.H.
Referenced by InitData(), MakeNewLevelFromScratch(), ReadCheckpointFile(), and ReadParameters().
|
private |
Name of time field for river time.
Definition at line 2065 of file REMORA.H.
Referenced by init_only(), and ReadParameters().
|
private |
Vector over rivers of river direction: 0: u-face; 1: v-face; 2: w-face.
Definition at line 1631 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), init_riv_pos_from_netcdf(), prestep_t_advection(), and rhs_t_3d().
|
private |
Vector of data containers for scalar data in rivers.
Definition at line 1618 of file REMORA.H.
Referenced by advance_3d(), init_only(), and prestep().
|
private |
Data container for momentum transport in rivers.
Definition at line 1620 of file REMORA.H.
Referenced by advance_3d(), and init_only().
|
private |
Data container for vertically integrated momentum transport in rivers.
Definition at line 1622 of file REMORA.H.
Referenced by advance_2d(), and init_only().
| bool REMORA::running_with_coupling_driver = false |
True once REMORA has received forcing through the coupling driver.
Definition at line 526 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), ApplyAtmosphericStates(), ConfigureDriverAtmosToOceanCoupling(), InitData(), and setup_step().
| amrex::Gpu::DeviceVector<amrex::Real> REMORA::s_r |
Scaled vertical coordinate (range [0,1]) that transforms to z, defined at rho points (cell centers)
Definition at line 458 of file REMORA.H.
Referenced by calc_stretch_coeffs(), init_stretch_coeffs(), stretch_transform(), and WriteNCPlotFile_which().
| amrex::Gpu::DeviceVector<amrex::Real> REMORA::s_w |
Scaled vertical coordinate (range [0,1]) that transforms to z, defined at w-points (cell faces)
Definition at line 460 of file REMORA.H.
Referenced by calc_stretch_coeffs(), init_stretch_coeffs(), stretch_transform(), and WriteNCPlotFile_which().
|
private |
whether to set boundary conditions by variable rather than just by side
Definition at line 1709 of file REMORA.H.
Referenced by init_bcs().
|
staticprivate |
Container for algorithmic choices.
Definition at line 1959 of file REMORA.H.
Referenced by Advance(), advance_2d(), advance_3d(), advance_biology(), ApplyAtmosphericFluxes(), average_down_with_grow_cells(), bulk_fluxes(), calc_stretch_coeffs(), check_mask_consistency(), define_flux_register(), ensure_full_domain_masks(), ErrorEst(), estTimeStep(), fill_from_bdyfiles(), FillCoarsePatchMap(), FillPatch(), GetDeckConfiguredAtmosStateLanes(), gls_corrector(), init_analytic(), init_bathymetry_full_domain_from_analytic(), init_bcs(), init_beta_plane_coriolis(), init_biology_ic(), init_biology_ic_full_domain(), init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), init_full_domain_from_analytic(), init_masks_full_domain_from_analytic(), init_only(), init_set_vmix(), init_stuff(), init_zeta_from_netcdf(), InitData(), lin_eos(), MakeNewLevelFromCoarse(), nonlin_eos(), post_timestep(), prestep(), prestep_t_advection(), prsgrd(), ReadCheckpointFile(), ReadParameters(), reflux_to(), RemakeLevel(), rho_eos(), rhs_t_3d(), rhs_uv_2d(), rhs_uv_3d(), set2DPlotVariables(), set_analytic_vmix(), set_bathymetry(), set_coriolis(), set_grid_scale(), set_hmixcoef(), set_masks(), set_smflux(), set_surface_state(), set_zeta(), set_zeta_to_Ztavg(), SetLongwaveFromDriver(), setup_step(), stretch_transform(), stretch_transform_full_domain(), t3dmix2(), timeStep(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
|
private |
Data container for shortwave radiation flux read from file.
Definition at line 1594 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
Time of the start of the simulation, in seconds on the model clock.
Also the origin of t_new and t_old. Double regardless of Real: seconds since a calendar epoch outgrow a float's resolution within days.
Definition at line 1782 of file REMORA.H.
Referenced by elapsed_time(), model_time(), ReadCheckpointFile(), ReadParameters(), SetStartTime(), WriteCheckpointFile(), and WriteNCPlotFile_which().
|
staticprivate |
Variable for CPU timing.
Definition at line 2097 of file REMORA.H.
Referenced by getCPUTime(), and InitData().
|
private |
Time steps per netcdf history file. Must be > 0 if chunk_history_file.
Definition at line 1942 of file REMORA.H.
Referenced by ReadParameters(), WriteNCPlotFile(), and WriteNCPlotFile_which().
|
private |
Whether max_step was set in the inputs; the default above is not a distinguishable sentinel.
Time to stop, in seconds on the model clock (not since start_time)
Definition at line 1776 of file REMORA.H.
Referenced by ComputeDt(), Evolve(), EvolveOneStep(), and ReadParameters().
|
staticprivate |
Diagnostic sum output interval in number of steps.
Definition at line 1998 of file REMORA.H.
Referenced by InitData(), post_timestep(), and ReadParameters().
|
staticprivate |
Diagnostic sum output interval in time.
Definition at line 2000 of file REMORA.H.
Referenced by InitData(), post_timestep(), and ReadParameters().
|
private |
Data container for u-component surface momentum flux read from file.
Definition at line 1580 of file REMORA.H.
Referenced by init_only(), and set_smflux().
|
private |
Data container for v-component surface momentum flux read from file.
Definition at line 1582 of file REMORA.H.
Referenced by init_only(), and set_smflux().
|
private |
new time at each level, in seconds since start_time
Model time is split into a double start_time and a Real elapsed time, as ROMS splits DSTART from the time it advances. The solver, the FillPatch time interpolation, and the kernels only ever see elapsed time, which stays small enough for a float to resolve a timestep. Anything that needs a time on the model clock – forcing and boundary files, the calendar, output time stamps, user-given times – goes through model_time() in double.
Definition at line 1702 of file REMORA.H.
Referenced by advance_2d(), ComputeDt(), Evolve(), EvolveOneStep(), FillPatch(), FillPatchNoBC(), GetDataAtTime(), gls_corrector(), init_only(), init_zeta_from_netcdf(), InitData(), MakeNewLevelFromCoarse(), ReadCheckpointFile(), RemakeLevel(), REMORA(), REMORA(), restart(), set_2d_cf_bcs(), set_2darrays(), set_init_data_averaged_down(), set_zeta_averaged_down(), setup_step(), timeStep(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
|
private |
old time at each level, in seconds since start_time
Definition at line 1704 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), advance_3d_ml(), advance_biology(), FillPatch(), FillPatchNoBC(), get_t_old(), GetDataAtTime(), gls_corrector(), gls_prestep(), init_only(), init_zeta_from_netcdf(), MakeNewLevelFromCoarse(), prestep(), RemakeLevel(), REMORA(), REMORA(), set_2d_cf_bcs(), set_smflux(), set_surface_state(), timeStep(), and timeStepML().
|
private |
Data container for air temperature read from file.
Definition at line 1588 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
interpolate the parent's barotropic mass flux in time at the coarse-fine interface, rather than holding its step average. Off matches most ROMS configurations.
Definition at line 1838 of file REMORA.H.
Referenced by ReadParameters(), and register_coarse_data().
|
static |
Definition at line 1482 of file REMORA.H.
Referenced by WriteNCPlotFile_which().
|
private |
Data container for u-velocity climatology data read from file.
Definition at line 1609 of file REMORA.H.
Referenced by init_only(), and setup_step().
|
private |
Data container for ubar climatology data read from file.
Definition at line 1605 of file REMORA.H.
Referenced by advance_2d(), and init_only().
|
private |
Select the native C++ biology kernel (1) or the ROMS Fortran bridge oracle (0). Only meaningful when built with USE_FENNEL_FORT=TRUE; ignored otherwise. Runtime-controlled so the two paths can be compared without a rebuild.
Definition at line 1811 of file REMORA.H.
Referenced by advance_biology(), and ReadParameters().
|
private |
Data container for u-direction wind read from file.
Definition at line 1584 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
private |
Data container for v-velocity climatology data read from file.
Definition at line 1611 of file REMORA.H.
Referenced by init_only(), and setup_step().
|
private |
Data container for vbar climatology data read from file.
Definition at line 1607 of file REMORA.H.
Referenced by advance_2d(), and init_only().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Akk |
Turbulent kinetic energy vertical diffusion coefficient.
Definition at line 673 of file REMORA.H.
Referenced by advance_3d(), gls_corrector(), init_gls_vmix(), init_stuff(), ReadCheckpointFile(), resize_stuff(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Akp |
Turbulent length scale vertical diffusion coefficient.
Definition at line 675 of file REMORA.H.
Referenced by advance_3d(), gls_corrector(), init_gls_vmix(), init_stuff(), ReadCheckpointFile(), resize_stuff(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Akt |
Vertical diffusion coefficient (3D)
Definition at line 444 of file REMORA.H.
Referenced by advance_3d(), advance_3d_ml(), gls_corrector(), init_gls_vmix(), init_stuff(), prestep(), ReadCheckpointFile(), resize_stuff(), set_analytic_vmix(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Akv |
Vertical viscosity coefficient (3D)
Definition at line 442 of file REMORA.H.
Referenced by advance_3d(), advance_3d_ml(), gls_corrector(), init_gls_vmix(), init_stuff(), prestep(), ReadCheckpointFile(), resize_stuff(), set_analytic_vmix(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_alpha |
Thermal expansion coefficient (3D)
Definition at line 656 of file REMORA.H.
Referenced by init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_beta |
Saline contraction coefficient (3D)
Definition at line 658 of file REMORA.H.
Referenced by init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_btflux |
Bottom tracer flux; input arrays.
Definition at line 512 of file REMORA.H.
Referenced by init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_btflx |
Bottom tracer flux; working arrays.
Definition at line 510 of file REMORA.H.
Referenced by init_stuff(), prestep(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_bustr |
Bottom stress in the u direction.
Definition at line 540 of file REMORA.H.
Referenced by gls_corrector(), init_stuff(), resize_stuff(), setup_step(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_bvf |
Brunt-Vaisala frequency (3D)
Definition at line 654 of file REMORA.H.
Referenced by gls_corrector(), init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_bvstr |
Bottom stress in the v direction.
Definition at line 542 of file REMORA.H.
Referenced by gls_corrector(), init_stuff(), resize_stuff(), setup_step(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_cloud |
cloud cover fraction [0-1], defined at rho-points
Definition at line 519 of file REMORA.H.
Referenced by ApplyAtmosphericStates(), bulk_fluxes(), init_only(), init_stuff(), resize_stuff(), and set_surface_state().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_cons_full_domain |
multilevel data container for high res initial data: temperature, salinity, passive tracer
Definition at line 402 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_biology_full_domain_from_netcdf(), init_biology_ic_full_domain(), init_data_full_domain_from_netcdf(), init_full_domain_from_analytic(), init_scalars_full_domain_from_netcdf(), resize_stuff(), and set_init_data_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_diff2 |
Harmonic diffusivity for temperature / salinity.
Definition at line 450 of file REMORA.H.
Referenced by init_stuff(), mask_arrays_for_write(), resize_stuff(), set_hmixcoef(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_dmde |
d(1/m)/d(eta)
Definition at line 644 of file REMORA.H.
Referenced by advance_2d(), init_stuff(), resize_stuff(), set_curvilinear_terms_from_grid_scale(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_dndx |
d(1/n)/d(xi)
Definition at line 642 of file REMORA.H.
Referenced by advance_2d(), init_stuff(), resize_stuff(), set_curvilinear_terms_from_grid_scale(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_DU_avg1 |
time average of barotropic x velocity flux (2D)
Definition at line 545 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d_ml(), init_stuff(), ReadCheckpointFile(), resize_stuff(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_DU_avg2 |
correct time average of barotropic x velocity flux for coupling (2D)
Definition at line 547 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d_ml(), init_stuff(), ReadCheckpointFile(), resize_stuff(), store_2d_flux(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Dubar_new |
see vec_Dubar_old (2D)
Definition at line 556 of file REMORA.H.
Referenced by init_stuff(), register_coarse_data(), resize_stuff(), set_2d_cf_bcs(), set_2d_cf_flux(), and store_2d_flux().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Dubar_old |
DU_avg2 per unit cell edge length, at the start and end of this level's step. What a subcycled finer level interpolates to get a mass-conserving ubar (2D)
Definition at line 554 of file REMORA.H.
Referenced by init_stuff(), register_coarse_data(), resize_stuff(), and store_2d_flux().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_DV_avg1 |
time average of barotropic y velocity flux
Definition at line 549 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d_ml(), init_stuff(), ReadCheckpointFile(), resize_stuff(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_DV_avg2 |
correct time average of barotropic y velocity flux for coupling (2D)
Definition at line 551 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d_ml(), init_stuff(), ReadCheckpointFile(), resize_stuff(), store_2d_flux(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Dvbar_new |
see vec_Dvbar_old (2D)
Definition at line 560 of file REMORA.H.
Referenced by init_stuff(), register_coarse_data(), resize_stuff(), set_2d_cf_bcs(), set_2d_cf_flux(), and store_2d_flux().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Dvbar_old |
DV_avg2 per unit cell edge length, see vec_Dubar_old (2D)
Definition at line 558 of file REMORA.H.
Referenced by init_stuff(), register_coarse_data(), resize_stuff(), and store_2d_flux().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_EminusP |
evaporation minus precipitation [kg/m^2/s], defined at rho-points
Definition at line 521 of file REMORA.H.
Referenced by bulk_fluxes(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), and set_zeta_to_Ztavg().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_evap |
evaporation rate [kg/m^2/s]
Definition at line 517 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), init_stuff(), resize_stuff(), set_zeta_to_Ztavg(), setup_step(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_fcor |
coriolis factor (2D)
Definition at line 612 of file REMORA.H.
Referenced by advance_2d_onestep(), init_beta_plane_coriolis(), init_coriolis_from_netcdf(), init_stuff(), resize_stuff(), set_coriolis(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_gls |
Turbulent generic length scale.
Definition at line 669 of file REMORA.H.
Referenced by advance_3d(), gls_corrector(), gls_prestep(), init_gls_vmix(), init_stuff(), ReadCheckpointFile(), resize_stuff(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_h |
multilevel data container for current step's z velocities (largely unused; W stored separately)
Bathymetry data (2D, positive valued, h in ROMS)
Definition at line 413 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d_ml(), allocate_bathymetry_grid_vars_full_domain(), check_mask_consistency(), ErrorEst(), estTimeStep(), fill_from_bdyfiles(), init_bathymetry_from_netcdf(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), RemakeLevel(), resize_stuff(), set_2d_cf_bcs(), set_bathymetry(), set_bathymetry_averaged_down(), setup_step(), stretch_transform(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_h_full_domain |
Bathymetry data on the whole domain at each potential level.
Definition at line 416 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), coarsen_bathymetry_with_grow_cells(), init_bathymetry_full_domain_from_analytic(), init_bathymetry_full_domain_from_netcdf(), init_full_domain_from_analytic(), init_grid_vars_full_domain_from_netcdf(), resize_stuff(), and set_bathymetry_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Huon |
u-volume flux (3D)
Definition at line 426 of file REMORA.H.
Referenced by advance_3d_ml(), gls_corrector(), gls_prestep(), init_stuff(), prestep(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Hvom |
v-volume flux (3D)
Definition at line 428 of file REMORA.H.
Referenced by advance_3d_ml(), gls_corrector(), gls_prestep(), init_stuff(), prestep(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Hz |
Width of cells in the vertical (z-) direction (3D, Hz in ROMS)
Definition at line 424 of file REMORA.H.
Referenced by advance_3d(), advance_3d_ml(), advance_biology(), estTimeStep(), gls_corrector(), gls_prestep(), init_stuff(), prestep(), reflux_to(), resize_stuff(), set_2darrays(), setup_step(), stretch_transform(), and volWgtSumMF().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_latp |
latitude on psi-points (2D, degrees north); only filled when the grid NetCDF file carries lat_psi
Definition at line 639 of file REMORA.H.
Referenced by GetAtmosToOceanPsiLonLat(), init_grid_vars_from_netcdf(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_lhflx |
latent heat flux
Definition at line 501 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), init_stuff(), resize_stuff(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_longwave_down |
Downward longwave radiation.
Definition at line 499 of file REMORA.H.
Referenced by ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_lonp |
longitude on psi-points (2D, degrees east); only filled when the grid NetCDF file carries lon_psi
Definition at line 636 of file REMORA.H.
Referenced by GetAtmosToOceanPsiLonLat(), init_grid_vars_from_netcdf(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_lrflx |
longwave radiation
Definition at line 497 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), init_stuff(), resize_stuff(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Lscale |
Vertical mixing turbulent length scale.
Definition at line 671 of file REMORA.H.
Referenced by gls_corrector(), init_gls_vmix(), init_stuff(), ReadCheckpointFile(), resize_stuff(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskp |
land/sea mask at cell corners (2D)
Definition at line 590 of file REMORA.H.
Referenced by advance_2d_onestep(), calculate_nodal_masks(), check_mask_consistency(), init_masks(), resize_stuff(), setup_step(), and update_nodal_masks().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskr |
land/sea mask at cell centers (2D)
Definition at line 584 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d(), advance_3d_ml(), advance_biology(), allocate_bathymetry_grid_vars_full_domain(), ApplyAtmosphericFluxes(), AverageDownTo(), bulk_fluxes(), calculate_nodal_masks(), check_mask_consistency(), ensure_full_domain_masks(), ErrorEst(), estTimeStep(), fill_3d_masks(), FillCoarsePatchMap(), FillPatch(), GetLandSeaMasks(), init_masks(), init_masks_from_netcdf(), init_zeta_from_netcdf(), mask_arrays_for_write(), PackSurfaceState(), ReadCheckpointFile(), resize_stuff(), set_hmixcoef(), set_masks(), set_masks_averaged_down(), setup_step(), update_avgdown_masks(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskr3d |
land/sea mask at cell centers, copied to all z levels (3D)
Definition at line 592 of file REMORA.H.
Referenced by ErrorEst(), fill_3d_masks(), init_masks(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskr_crse_on_fine |
the level's rho-, u- and v-masks copied onto the layout of the level above it coarsened, which is the layout the two-way average-down computes on. Indexed by the coarse level of the pair. Built on demand and reused until a regrid, since the masks are a function of position alone and so do not change between them.
Definition at line 598 of file REMORA.H.
Referenced by AverageDownTo(), clear_avgdown_masks(), resize_stuff(), and update_avgdown_masks().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskr_full_domain |
Land/sea mask at cell centers on the whole domain at each potential level. Specified at hires_grid_level and coarsened down from there, so that a refined coastline and the bathymetry it goes with come from the same grid.
Definition at line 421 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), average_down_with_grow_cells(), coarsen_bathymetry_with_grow_cells(), coarsen_masks_with_grow_cells(), ensure_full_domain_masks(), init_masks_full_domain_from_analytic(), init_masks_full_domain_from_netcdf(), refine_masks_with_grow_cells(), resize_stuff(), and set_masks_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_msku |
land/sea mask at x-faces (2D)
Definition at line 586 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d(), advance_3d_ml(), ApplyAtmosphericFluxes(), AverageDownTo(), bulk_fluxes(), calculate_nodal_masks(), check_mask_consistency(), fill_from_bdyfiles(), FillCoarsePatchMap(), FillPatch(), GetLandSeaMasks(), init_masks(), init_zeta_from_netcdf(), mask_arrays_for_write(), ReadCheckpointFile(), resize_stuff(), set_2d_cf_bcs(), set_2d_cf_flux(), setup_step(), update_avgdown_masks(), update_nodal_masks(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_msku_crse_on_fine |
Definition at line 599 of file REMORA.H.
Referenced by AverageDownTo(), clear_avgdown_masks(), resize_stuff(), and update_avgdown_masks().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskv |
land/sea mask at y-faces (2D)
Definition at line 588 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d(), advance_3d_ml(), ApplyAtmosphericFluxes(), AverageDownTo(), bulk_fluxes(), calculate_nodal_masks(), check_mask_consistency(), fill_from_bdyfiles(), FillCoarsePatchMap(), FillPatch(), GetLandSeaMasks(), init_masks(), init_zeta_from_netcdf(), mask_arrays_for_write(), ReadCheckpointFile(), resize_stuff(), set_2d_cf_bcs(), set_2d_cf_flux(), setup_step(), update_avgdown_masks(), update_nodal_masks(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_mskv_crse_on_fine |
Definition at line 600 of file REMORA.H.
Referenced by AverageDownTo(), clear_avgdown_masks(), resize_stuff(), and update_avgdown_masks().
| amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab> > > REMORA::vec_nudg_coeff |
Climatology nudging coefficients.
Definition at line 678 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), fill_from_bdyfiles(), init_clim_nudg_coeff(), init_clim_nudg_coeff_from_netcdf(), init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Pair |
Air pressure [mb], defined at rho-points.
Definition at line 492 of file REMORA.H.
Referenced by ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), setup_step(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_pm |
horizontal scaling factor: 1 / dx (2D)
Definition at line 603 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d(), advance_3d_ml(), allocate_bathymetry_grid_vars_full_domain(), check_cf_metrics(), ErrorEst(), estTimeStep(), fill_from_bdyfiles(), gls_corrector(), gls_prestep(), init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), set_2d_cf_flux(), set_curvilinear_terms_from_grid_scale(), set_grid_coords_from_grid_scale(), set_grid_scale(), set_grid_vars_averaged_down(), set_hmixcoef(), setup_step(), store_2d_flux(), volWgtSumMF(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_pm_full_domain |
horizontal scaling factor: 1 / dx (2D) on whole domain
Definition at line 607 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), init_grid_vars_full_domain_from_netcdf(), resize_stuff(), and set_grid_vars_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_pn |
horizontal scaling factor: 1 / dy (2D)
Definition at line 605 of file REMORA.H.
Referenced by advance_2d_onestep(), advance_3d(), advance_3d_ml(), allocate_bathymetry_grid_vars_full_domain(), check_cf_metrics(), ErrorEst(), estTimeStep(), fill_from_bdyfiles(), gls_corrector(), gls_prestep(), init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), set_2d_cf_flux(), set_curvilinear_terms_from_grid_scale(), set_grid_coords_from_grid_scale(), set_grid_scale(), set_grid_vars_averaged_down(), set_hmixcoef(), setup_step(), store_2d_flux(), volWgtSumMF(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_pn_full_domain |
horizontal scaling factor: 1 / dy (2D) on whole domain
Definition at line 609 of file REMORA.H.
Referenced by allocate_bathymetry_grid_vars_full_domain(), init_grid_vars_full_domain_from_netcdf(), resize_stuff(), and set_grid_vars_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_qair |
Specific humidity [kg/kg], defined at rho-points.
Definition at line 490 of file REMORA.H.
Referenced by ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rain |
precipitation rate [kg/m^2/s]
Definition at line 515 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), ApplyAtmosphericStates(), bulk_fluxes(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), set_zeta_to_Ztavg(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rdrag |
Linear drag coefficient [m/s], defined at rho points.
Definition at line 533 of file REMORA.H.
Referenced by init_stuff(), ReadCheckpointFile(), resize_stuff(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rdrag2 |
Quadratic drag coefficient [unitless], defined at rho points.
Definition at line 535 of file REMORA.H.
Referenced by init_stuff(), ReadCheckpointFile(), resize_stuff(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rhoA |
vertically-averaged density
Definition at line 652 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rhoS |
density perturbation
Definition at line 650 of file REMORA.H.
Referenced by Advance(), advance_2d_onestep(), init_stuff(), resize_stuff(), and setup_step().
|
private |
iMultiFab for river positions; contents are indices of rivers
Definition at line 1629 of file REMORA.H.
Referenced by advance_2d(), advance_3d(), init_riv_pos_from_netcdf(), init_stuff(), prestep(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_ru |
u velocity RHS (3D, includes horizontal and vertical advection)
Definition at line 430 of file REMORA.H.
Referenced by advance_3d_ml(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), RemakeLevel(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_ru2d |
u velocity RHS (2D, includes horizontal and vertical advection)
Definition at line 434 of file REMORA.H.
Referenced by advance_2d_onestep(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), RemakeLevel(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rubar |
barotropic x velocity for the RHS (2D)
Definition at line 568 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rufrc |
u velocity RHS, integrated, including advection and bottom/surface stresses (2D)
Definition at line 438 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rv |
v velocity RHS (3D, includes horizontal and vertical advection)
Definition at line 432 of file REMORA.H.
Referenced by advance_3d_ml(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), RemakeLevel(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rv2d |
v velocity RHS (2D, includes horizontal and vertical advection)
Definition at line 436 of file REMORA.H.
Referenced by advance_2d_onestep(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), RemakeLevel(), resize_stuff(), scale_rhs_vars(), scale_rhs_vars_inv(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rvbar |
barotropic y velocity for the RHS (2D)
Definition at line 570 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rvfrc |
v velocity RHS, integrated, including advection and bottom/surface stresses (2D)
Definition at line 440 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_rzeta |
free surface height for the RHS (2D)
Definition at line 572 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), and resize_stuff().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_shflx |
sensible heat flux
Definition at line 503 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), init_stuff(), resize_stuff(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_srflx |
Shortwave radiation flux [W/m²], defined at rho-points.
Definition at line 495 of file REMORA.H.
Referenced by advance_biology(), ApplyAtmosphericFluxes(), ApplyAtmosphericStates(), GetAtmosToOceanRhoLayout(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_sstore |
additional scratch space for calculations on temp, salt, etc
Definition at line 647 of file REMORA.H.
Referenced by advance_3d_ml(), init_stuff(), prestep(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_stflux |
Surface tracer flux; input arrays.
Definition at line 508 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), init_stuff(), resize_stuff(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_stflx |
Surface tracer flux; working arrays.
Definition at line 506 of file REMORA.H.
Referenced by init_stuff(), prestep(), resize_stuff(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_sustr |
Surface stress in the u direction.
Definition at line 479 of file REMORA.H.
Referenced by advance_biology(), ApplyAtmosphericFluxes(), GetAtmosToOceanUFaceLayout(), gls_corrector(), init_only(), init_stuff(), resize_stuff(), set_smflux(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_svstr |
Surface stress in the v direction.
Definition at line 481 of file REMORA.H.
Referenced by advance_biology(), ApplyAtmosphericFluxes(), GetAtmosToOceanVFaceLayout(), gls_corrector(), init_only(), init_stuff(), resize_stuff(), set_smflux(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Tair |
Air temperature [°C], defined at rho-points.
Definition at line 488 of file REMORA.H.
Referenced by ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), setup_step(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_tke |
Turbulent kinetic energy.
Definition at line 667 of file REMORA.H.
Referenced by advance_3d(), gls_corrector(), gls_prestep(), init_gls_vmix(), init_stuff(), ReadCheckpointFile(), resize_stuff(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_ubar |
barotropic x velocity (2D)
Definition at line 574 of file REMORA.H.
Referenced by advance_2d(), advance_2d_onestep(), advance_3d_ml(), AverageDownTo(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), resize_stuff(), set_2d_cf_bcs(), set_2darrays(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_uwind |
Wind in the u direction, defined at rho-points.
Definition at line 484 of file REMORA.H.
Referenced by advance_biology(), ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_vbar |
barotropic y velocity (2D)
Definition at line 576 of file REMORA.H.
Referenced by advance_2d(), advance_2d_onestep(), advance_3d_ml(), AverageDownTo(), init_only(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), resize_stuff(), set_2d_cf_bcs(), set_2darrays(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_visc2_p |
Harmonic viscosity defined on the psi points (corners of horizontal grid cells)
Definition at line 446 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), resize_stuff(), set_hmixcoef(), and setup_step().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_visc2_r |
Harmonic viscosity defined on the rho points (centers)
Definition at line 448 of file REMORA.H.
Referenced by advance_2d_onestep(), init_stuff(), mask_arrays_for_write(), resize_stuff(), set_hmixcoef(), setup_step(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_vwind |
Wind in the v direction, defined at rho-points.
Definition at line 486 of file REMORA.H.
Referenced by advance_biology(), ApplyAtmosphericStates(), init_only(), init_stuff(), resize_stuff(), set_surface_state(), and setup_step().
| amrex::Vector<amrex::Real> REMORA::vec_weight1 |
Weights for calculating avg1 in 2D advance.
Definition at line 661 of file REMORA.H.
Referenced by advance_2d(), and set_weights().
| amrex::Vector<amrex::Real> REMORA::vec_weight2 |
Weights for calculating avg2 in 2D advance.
Definition at line 663 of file REMORA.H.
Referenced by advance_2d(), and set_weights().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_xp |
x_grid on psi-points (2D)
Definition at line 630 of file REMORA.H.
Referenced by GetAtmosToOceanPsiCoordinates(), init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_xr |
x_grid on rho points (2D)
Definition at line 615 of file REMORA.H.
Referenced by init_grid_vars_from_netcdf(), init_stuff(), prob_coords(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_xu |
x_grid on u-points (2D)
Definition at line 620 of file REMORA.H.
Referenced by init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_xv |
x_grid on v-points (2D)
Definition at line 625 of file REMORA.H.
Referenced by init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_xvel_full_domain |
multilevel data container for high res initial x velocities (u in ROMS)
Definition at line 404 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_data_full_domain_from_netcdf(), init_full_domain_from_analytic(), resize_stuff(), and set_init_data_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_yp |
y_grid on psi-points (2D)
Definition at line 632 of file REMORA.H.
Referenced by GetAtmosToOceanPsiCoordinates(), init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_yr |
y_grid on rho points (2D)
Definition at line 617 of file REMORA.H.
Referenced by init_beta_plane_coriolis(), init_grid_vars_from_netcdf(), init_stuff(), prob_coords(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_yu |
y_grid on u-points (2D)
Definition at line 622 of file REMORA.H.
Referenced by init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_yv |
y_grid on v-points (2D)
Definition at line 627 of file REMORA.H.
Referenced by init_grid_vars_from_netcdf(), init_stuff(), resize_stuff(), set_grid_coords_from_grid_scale(), and WriteNCPlotFile_which().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_yvel_full_domain |
multilevel data container for high res initial y velocities (v in ROMS)
Definition at line 406 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_data_full_domain_from_netcdf(), init_full_domain_from_analytic(), resize_stuff(), and set_init_data_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_z_phys_nd |
z coordinates at psi points (cell nodes)
Definition at line 473 of file REMORA.H.
Referenced by advance_3d_ml(), check_plot_nodal_z(), init_stuff(), MakeNewLevelFromScratch(), resize_stuff(), stretch_transform(), and WritePlotFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_z_r |
z coordinates at rho points (cell centers)
Definition at line 453 of file REMORA.H.
Referenced by init_stuff(), prob_coords(), resize_stuff(), setup_step(), and stretch_transform().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_z_w |
z coordinates at w points (faces between z-cells)
Definition at line 456 of file REMORA.H.
Referenced by advance_3d_ml(), advance_biology(), gls_corrector(), init_stuff(), prob_coords(), resize_stuff(), setup_step(), and stretch_transform().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_zeta |
free surface height (2D)
Definition at line 578 of file REMORA.H.
Referenced by advance_2d(), advance_2d_onestep(), allocate_init_full_domain(), fill_from_bdyfiles(), init_stuff(), init_zeta_from_netcdf(), ReadCheckpointFile(), register_coarse_data(), resize_stuff(), set_2d_cf_bcs(), set_zeta(), set_zeta_average(), set_zeta_averaged_down(), set_zeta_to_Ztavg(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_zeta_crse_new |
see vec_zeta_crse_old (2D)
Definition at line 566 of file REMORA.H.
Referenced by advance_2d(), and register_coarse_data().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_zeta_crse_old |
free surface at the start and end of this level's step, every leapfrog component holding the same value. What a subcycled finer level interpolates in time to get its contact points, as ROMS's put_refine2d does (2D)
Definition at line 564 of file REMORA.H.
Referenced by advance_2d(), and register_coarse_data().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_zeta_full_domain |
high resolution initial free surface height (2D)
Definition at line 581 of file REMORA.H.
Referenced by allocate_init_full_domain(), init_full_domain_from_analytic(), init_zeta_full_domain_from_netcdf(), resize_stuff(), and set_zeta_averaged_down().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_ZoBot |
Bottom roughness length [m], defined at rho points.
Definition at line 537 of file REMORA.H.
Referenced by gls_corrector(), init_stuff(), ReadCheckpointFile(), resize_stuff(), setup_step(), and WriteCheckpointFile().
| amrex::Vector<std::unique_ptr<amrex::MultiFab> > REMORA::vec_Zt_avg1 |
Average of the free surface, zeta (2D)
Definition at line 476 of file REMORA.H.
Referenced by advance_2d_onestep(), AverageDownTo(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), resize_stuff(), set_zeta_average(), set_zeta_to_Ztavg(), stretch_transform(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
|
staticprivate |
Verbosity level of output.
Definition at line 1995 of file REMORA.H.
Referenced by ApplyAtmosphericFluxes(), check_mask_consistency(), Define_REMORAFillPatchers(), estTimeStep(), Evolve(), init_riv_pos_from_netcdf(), PackSurfaceState(), prestep_diffusion(), ReadParameters(), sum_integrated_quantities(), and vert_visc_3d().
|
private |
Data container for v-direction wind read from file.
Definition at line 1586 of file REMORA.H.
Referenced by init_only(), and set_surface_state().
|
staticprivate |
Whether to output NetCDF files as a single history file with several time steps.
Definition at line 1577 of file REMORA.H.
Referenced by ReadParameters(), and WriteNCPlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::xvel_new |
multilevel data container for current step's x velocities (u in ROMS)
Definition at line 395 of file REMORA.H.
Referenced by Advance(), advance_3d_ml(), allocate_init_full_domain(), AverageDownTo(), ClearLevel(), ErrorEst(), estTimeStep(), init_analytic(), init_data_from_netcdf(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), set_2darrays(), set_init_data_averaged_down(), setup_step(), sum_integrated_quantities(), timeStep(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::xvel_old |
multilevel data container for last step's x velocities (u in ROMS)
Definition at line 386 of file REMORA.H.
Referenced by advance_3d(), ClearLevel(), gls_corrector(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), setup_step(), timeStep(), timeStepML(), and WriteCheckpointFile().
| amrex::Vector<amrex::MultiFab*> REMORA::yvel_new |
multilevel data container for current step's y velocities (v in ROMS)
Definition at line 397 of file REMORA.H.
Referenced by Advance(), advance_3d_ml(), allocate_init_full_domain(), AverageDownTo(), ClearLevel(), ErrorEst(), estTimeStep(), init_analytic(), init_data_from_netcdf(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), mask_arrays_for_write(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), set_2darrays(), set_init_data_averaged_down(), setup_step(), sum_integrated_quantities(), timeStep(), timeStepML(), WriteCheckpointFile(), WriteNCPlotFile_which(), and WritePlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::yvel_old |
multilevel data container for last step's y velocities (v in ROMS)
Definition at line 388 of file REMORA.H.
Referenced by advance_3d(), ClearLevel(), gls_corrector(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), setup_step(), timeStep(), timeStepML(), and WriteCheckpointFile().
| amrex::Vector<amrex::MultiFab*> REMORA::zvel_new |
multilevel data container for current step's z velocities (largely unused; W stored separately)
Definition at line 399 of file REMORA.H.
Referenced by advance_3d_ml(), AverageDownTo(), ClearLevel(), ErrorEst(), estTimeStep(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), setup_step(), timeStep(), timeStepML(), WriteCheckpointFile(), and WritePlotFile().
| amrex::Vector<amrex::MultiFab*> REMORA::zvel_old |
multilevel data container for last step's z velocities (largely unused; W stored separately)
Definition at line 390 of file REMORA.H.
Referenced by advance_3d_ml(), ClearLevel(), init_only(), InitData(), MakeNewLevelFromCoarse(), MakeNewLevelFromScratch(), ReadCheckpointFile(), register_coarse_data(), RemakeLevel(), REMORA(), REMORA(), setup_step(), timeStep(), timeStepML(), and WriteCheckpointFile().