// Expext coarse grid data to be valid
for (int vi = 0; vi < groupdata.numvars; ++vi)
if (!(coarsegroupdata.valid.at(tl).at(vi).valid_int &&
coarsegroupdata.valid.at(tl).at(vi).valid_bnd)) {
valid_t all_valid;
all_valid.valid_int = true;
all_valid.valid_bnd = true;
CCTK_VERROR(
"MakeNewLevelFromCoarse before prolongation: Grid function "
"\"%s\" is invalid on refinement level %d, time "
"level %d; expected valid %s, found valid %s",
CCTK_FullVarName(coarsegroupdata.firstvarindex + vi),
coarseleveldata.level, tl, string(all_valid).c_str(),
string(coarsegroupdata.valid.at(tl).at(vi)).c_str());
}