aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/CarpetInterp/src/interp.cc22
1 files changed, 18 insertions, 4 deletions
diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc
index 0e1474e21..d5283bf62 100644
--- a/Carpet/CarpetInterp/src/interp.cc
+++ b/Carpet/CarpetInterp/src/interp.cc
@@ -343,9 +343,10 @@ namespace CarpetInterp {
vector<int> num_time_derivs;
CCTK_REAL current_time, delta_time;
int prolongation_order_time;
+ int table_maxrl = -1;
{
- int const iret = extract_parameter_table_options
+ int iret = extract_parameter_table_options
(cctkGH,
param_table_handle,
N_interp_points, N_input_arrays, N_output_arrays,
@@ -356,6 +357,14 @@ namespace CarpetInterp {
timer_CDI->stop (0);
return iret;
}
+
+ iret = Util_TableGetInt (param_table_handle,
+ &table_maxrl, "max_reflevel");
+ if (iret == UTIL_ERROR_TABLE_NO_SUCH_KEY) {
+ } else if (iret != 1) {
+ CCTK_WARN (CCTK_WARN_ALERT, "internal error");
+ return -1;
+ }
}
// Find range of refinement levels
@@ -365,9 +374,14 @@ namespace CarpetInterp {
arrdata.AT(coord_group).AT(m).hh->reflevels());
}
int const minrl = want_global_mode ? 0 : reflevel;
- int const maxrl = want_global_mode ?
- arrdata.AT(coord_group).AT(0).hh->reflevels() : reflevel+1;
- //int maxrl = reflevel + 1;
+
+ int maxrl;
+ if (table_maxrl >= 0)
+ maxrl = table_maxrl;
+ else if (want_global_mode)
+ maxrl = arrdata.AT(coord_group).AT(0).hh->reflevels();
+ else
+ maxrl = reflevel+1;
// Find maximum number of components over all levels and maps
int maxncomps = 0;