#include "AMRreaderPlus.h" #include #include #include #include AMRreaderPlus::AMRreaderPlus(IObase &f) : AMRgridreaderPlus(f), grids(), activeset(), timemask(), levelmask(), realtimes() { init(); selectTimeStep(0); for (int ii=0;ii<=maxlevel;ii++) showLevel(ii); modflag=1; } AMRreaderPlus::~AMRreaderPlus(){ } void AMRreaderPlus::init(){ maxlevel=maxtimeres=maxtime=0; smin=smax=0.0; numgrids=0; build_info(); } void AMRreaderPlus::build_info(){ AMRgridPlus *res, newg; res=getGridInfo(newg, 0); if (res==NULL) return; maxlevel=0; maxtime=0; numgrids=0; smin=newg.scalarmin; smax=newg.scalarmax; datatype=newg.datatype; while (res!=NULL){ //Load all grid info grids.append(newg); realtimes.insert(newg.time); maxlevel=(maxlevel>newg.level)?maxlevel:newg.level; maxtime=(maxtime>newg.timestep)?maxtime:newg.timestep; smax=smax>newg.scalarmax?smax:newg.scalarmax; smin=smin (maxlevel+1, maxtime+1); AMRgridPlus *g= grids.getData(0); for(int ii=0;iitimestep;jjtimestep+g->persistence;jj++){ if (jj<=maxtime){ idxrec trec(ii); (*leveltimes)(g->level, jj).append(trec.idx); } } g++; } cout<