Fixing another problem with the fortran interfaces. This time the all caps and lowerc...
authorIsaac Dooley <idooley2@bp-login1.(none)>
Tue, 4 May 2010 20:42:50 +0000 (15:42 -0500)
committerIsaac Dooley <idooley2@bp-login1.(none)>
Tue, 4 May 2010 20:42:50 +0000 (15:42 -0500)
src/ck-cp/controlPoints.C
src/ck-cp/controlPoints.h
src/libs/ck-libs/idxl/idxl.C

index cb3a5c58062cb279982b7485c9e79419aa4fed2f..43abb46f6a42d78f8e08d9038e3ab5aea4e40052 100644 (file)
@@ -1029,7 +1029,7 @@ public:
     double period;
     bool haveSamplePeriod = CmiGetArgDoubleDesc(args->argv,"+CPSamplePeriod", &period,"The time between Control Point Framework samples (in seconds)");
     if(haveSamplePeriod){
-      CkPrintf("controlPointSamplePeriod = %ld sec\n", period);
+      CkPrintf("controlPointSamplePeriod = %lf sec\n", period);
       controlPointSamplePeriod =  period * 1000; /**< A readonly */
     } else {
       controlPointSamplePeriod =  DEFAULT_CONTROL_POINT_SAMPLE_PERIOD;
index 9adabbc3ef5350b13bd787f6a3185a4994d8c560..88b090312882584529c61e4ae279486ab868af25 100644 (file)
@@ -70,14 +70,14 @@ void registerControlPointTiming(double time);
 
 /// Called once each application step. Can be used instead of registerControlPointTiming()
 void controlPointTimingStamp();
-FDECL void FTN_NAME(controlpointtimingstamp,CONTROLPOINTTIMINGSTAMP)();
+FDECL void FTN_NAME(CONTROLPOINTTIMINGSTAMP,controlpointtimingstamp)();
 
 
 /// The application specifies that it is ready to proceed to a new set of control point values.
 /// This should be called after registerControlPointTiming()
 /// This should be called before calling controlPoint()
 void gotoNextPhase();
-FDECL void FTN_NAME(gotonextphase,GOTONEXTPHASE)();
+FDECL void FTN_NAME(GOTONEXTPHASE,gotonextphase)();
 
 /// Return an integral power of 2 between c1 and c2
 /// The value returned will likely change between subsequent invocations
@@ -89,7 +89,7 @@ int controlPoint(const char *name, int lb, int ub);
 
 /// A fortran callable one. I couldn't figure out how to pass a string from fortran to C++ yet
 /// So far fortran can only have one control point
-FDECL int FTN_NAME(controlpoint,CONTROLPOINT)(CMK_TYPEDEF_INT4 *lb, CMK_TYPEDEF_INT4 *ub);
+FDECL int FTN_NAME(CONTROLPOINT,controlpoint)(CMK_TYPEDEF_INT4 *lb, CMK_TYPEDEF_INT4 *ub);
 
 
 /// Return an integer from the provided vector of values
index 9b8e99e5dbc9a5dfa69b90f668932c7a51a0ed93..cac63755e7ca86a12de04b7b474739f25f6c1a99 100644 (file)
@@ -68,8 +68,11 @@ void IDXL_Chunk::pup(PUP::er &p) {
        p|mpi_comm;
 
        p|layouts;
-       if (currentComm && !currentComm->isComplete()) CkAbort("Cannot migrate with ongoing IDXL communication");
-       
+       if (currentComm && !currentComm->isComplete()){
+         CkPrintf("ERROR: Cannot migrate with ongoing IDXL communication: currentComm=%p ispacking=%d isunpacking=%d\n", currentComm, (int)p.isPacking(), (int)p.isUnpacking());
+         CkAbort("Cannot migrate with ongoing IDXL communication");
+       }       
+
        //Pack the dynamic IDXLs (static IDXLs must re-add themselves)
        int i, nDynamic=0;
        if (!p.isUnpacking()) //Count the number of non-NULL idxls:
@@ -97,6 +100,7 @@ IDXL_Chunk::~IDXL_Chunk() {
        for (int i=0;i<dynamic_idxls.size();i++) 
                if (dynamic_idxls[i]) delete dynamic_idxls[i];
        delete currentComm;
+       currentComm = 0;
 }
 
 /****** IDXL List ******/