19 ParmParse pp_remora(
"remora");
22 pp.add(
"refine_grid_layout_x",1);
23 pp.add(
"refine_grid_layout_y",1);
24 pp.add(
"refine_grid_layout_z",0);
34 int max_grid_size = 2048;
35 pp.queryAdd(
"max_grid_size",max_grid_size);
39 int blocking_factor = 1;
40 pp.queryAdd(
"blocking_factor",blocking_factor);
45 pp.queryAdd(
"n_error_buf",n_error_buf);
49 amrex::Vector<int> n_cell;
50 pp_remora.queryarr(
"n_cell",n_cell);
51 pp.queryAdd(
"n_cell",n_cell);
55 if (!pp.query(
"max_level",max_level)) {
56 pp.queryAdd(
"max_level",max_level);
60 int amr_verbosity = 0;
61 bool defined_amr_verbosity = pp.query(
"v",amr_verbosity);
62 if (!defined_amr_verbosity) {
63 int rem_verbosity = 0;
64 pp_remora.query(
"v",rem_verbosity);
65 pp.queryAdd(
"v",rem_verbosity);
68 ParmParse pp_geometry(
"geometry");
69 amrex::Vector<amrex::Real>
prob_lo;
70 amrex::Vector<amrex::Real>
prob_hi;
71 amrex::Vector<int> is_periodic;
72 pp_remora.queryarr(
"prob_lo",
prob_lo);
73 pp_remora.queryarr(
"prob_hi",
prob_hi);
74 pp_remora.queryarr(
"is_periodic",is_periodic);
75 pp_geometry.queryAdd(
"prob_lo",
prob_lo);
76 pp_geometry.queryAdd(
"prob_hi",
prob_hi);
77 pp_geometry.queryAdd(
"is_periodic",is_periodic);
79 ParmParse pp_fabarray(
"fabarray");
80#if defined(REMORA_USE_GPU)
81 amrex::Vector<int> omp_tile_size = {1024000,1024000,1024000};
83 amrex::Vector<int> omp_tile_size = {8, 8, 1024000};
85 pp_remora.queryarr(
"omp_tile_size",omp_tile_size,0,3);
86 pp_fabarray.queryAdd(
"mfiter_tile_size",omp_tile_size);
89int main(
int argc,
char* argv[])
93 MPI_Init(&argc, &argv);
100 MPI_COMM_WORLD,
"No input file provided. Exiting!!");
105 for (
auto i = 1; i < argc; i++) {
106 const std::string param(argv[i]);
107 if ((param ==
"--help") || (param ==
"-h") || (param ==
"--usage")) {
114 if (!amrex::FileSystem::Exists(std::string(argv[1]))) {
118 MPI_COMM_WORLD,
"Input file does not exist = " +
119 std::string(argv[1]) +
". Exiting!!");
126 for (
auto i = 1; i < argc; i++) {
127 if (std::string(argv[i]) ==
"--describe") {
132 }
else if(argc < 2) {
133 amrex::Print() <<
"REMORA is currently under development as a next-generation version of the Regional Ocean Modeling System (ROMS). See Docs for more information.\n"
135 <<
" ./REMORA3d.xxx.yyy.ex inputs" <<std::endl;
140 amrex::Initialize(argc,argv,
true,MPI_COMM_WORLD,
add_par);
143 if (!strchr(argv[1],
'=')) {
148 BL_PROFILE_VAR(
"main()", pmain);
151 const Real strt_total = Real(amrex::second());
154 BL_PROFILE_VAR(
"REMORA::InitData()", pinit);
162 BL_PROFILE_VAR_STOP(pinit);
168 Real end_total = Real(amrex::second()) - strt_total;
171 ParallelDescriptor::ReduceRealMax(end_total ,ParallelDescriptor::IOProcessorNumber());
172 if (remora.Verbose()) {
173 amrex::Print() <<
"\nTotal Time: " << end_total <<
'\n';
178 BL_PROFILE_VAR_STOP(pmain);
int main(int argc, char *argv[])