aboutsummaryrefslogtreecommitdiff
path: root/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
diff options
context:
space:
mode:
Diffstat (limited to 'CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc')
-rw-r--r--CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc86
1 files changed, 51 insertions, 35 deletions
diff --git a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
index e503d0bfc..d58289594 100644
--- a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
+++ b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
@@ -48,7 +48,7 @@
#include "ioflexio.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc,v 1.19 2004/01/07 16:30:49 cott Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc,v 1.20 2004/01/08 19:43:33 cott Exp $";
CCTK_FILEVERSION(Carpet_CarpetIOFlexIO_checkpointrestart_cc);
}
@@ -229,30 +229,33 @@ int CarpetIOFlexIO_Recover (cGH* cgh, const char *basefilename, int called_from)
if (called_from == CP_RECOVER_DATA) {
- if(myproc ==0){
- AmrGridReader* amrreader = 0;
- amrreader = new AmrGridReader(*reader);
- BEGIN_REFLEVEL_LOOP(cgh) {
- BEGIN_MGLEVEL_LOOP(cgh) {
+ AmrGridReader* amrreader = 0;
- /* make sure we are looking at the first dataset where
- all the good stuff ist stored! */
- reader->seek(0);
-
- /* Recover GH extentions */
- CCTK_INFO ("Recovering GH extensions");
- result += RecoverGHextensions (cgh, reader);
- } END_MGLEVEL_LOOP;
- } END_REFLEVEL_LOOP;
+ if(myproc==0)
+ amrreader = new AmrGridReader(*reader);
+
+ BEGIN_REFLEVEL_LOOP(cgh) {
+ BEGIN_MGLEVEL_LOOP(cgh) {
- if (! result)
- {
- /* Recover variables */
- CCTK_VInfo (CCTK_THORNSTRING, "Recovering data! ");
- result = RecoverVariables (cgh, reader,amrreader);
- }
+ /* make sure we are looking at the first dataset where
+ all the good stuff ist stored! */
+ if(myproc==0)
+ reader->seek(0);
+ /* Recover GH extentions */
+ CCTK_INFO ("Recovering GH extensions");
+ result += RecoverGHextensions (cgh, reader);
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
+
+ if (! result)
+ {
+ /* Recover variables */
+ CCTK_VInfo (CCTK_THORNSTRING, "Recovering data! ");
+ result = RecoverVariables (cgh, reader,amrreader);
+ }
+ if(myproc==0) {
delete reader;
delete amrreader;
}
@@ -546,6 +549,7 @@ int CarpetIOFlexIO_Recover (cGH* cgh, const char *basefilename, int called_from)
if (CCTK_MyProc(cgh)==0)
{
+ fprintf(stderr,"\n verbose: %d\n",verbose);
if (verbose)
{
CCTK_VInfo (CCTK_THORNSTRING, "Creating temporary checkpoint file '%s'", cp_tempname);
@@ -757,10 +761,10 @@ int CarpetIOFlexIO_Recover (cGH* cgh, const char *basefilename, int called_from)
{
if (myGH->cp_filename_list[myGH->cp_filename_index])
{
- if (checkpoint_keep > 0)
- {
- remove (myGH->cp_filename_list[myGH->cp_filename_index]);
- }
+ // if (checkpoint_keep > 0)
+ //{
+ // remove (myGH->cp_filename_list[myGH->cp_filename_index]);
+ //}
free (myGH->cp_filename_list[myGH->cp_filename_index]);
}
myGH->cp_filename_list[myGH->cp_filename_index] = strdup (cp_filename);
@@ -775,18 +779,33 @@ int CarpetIOFlexIO_Recover (cGH* cgh, const char *basefilename, int called_from)
int RecoverVariables (cGH* cgh, IObase* reader, AmrGridReader* amrreader){
int retval = 0;
-
+ int myproc = CCTK_MyProc (cgh);
+ int currdataset,ndatasets;
CCTK_VInfo(CCTK_THORNSTRING,"Starting to recover data!!!");
- int ndatasets = reader->nDatasets();
- //CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
+ if(myproc==0) {
+ ndatasets = reader->nDatasets();
+ //CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
+ assert (ndatasets>=0);
+ }
+
+ // Broadcast number of datasets
+ MPI_Bcast (&ndatasets, 1, MPI_INT, 0, dist::comm);
assert (ndatasets>=0);
- for (int currdataset=1;currdataset < ndatasets;currdataset++) {
+ // BEGIN_REFLEVEL_LOOP(cgh) {
+ // BEGIN_MGLEVEL_LOOP(cgh) {
+ for (currdataset=1;currdataset < ndatasets;currdataset++) {
//CCTK_VInfo(CCTK_THORNSTRING,"dataset: %d",currdataset);
- reader->seek(currdataset);
- ReadGF(cgh,reader,amrreader);
- }
+ if(myproc==0) {
+ reader->seek(currdataset);
+ }
+
+ ReadGF(cgh,reader,amrreader,currdataset);
+ }
+
+ // } END_MGLEVEL_LOOP;
+ //} END_REFLEVEL_LOOP;
return retval;
}
@@ -804,6 +823,3 @@ int CarpetIOFlexIO_Recover (cGH* cgh, const char *basefilename, int called_from)
-
-
-