[cig-commits] commit:

Mercurial hg at geodynamics.org
Mon Nov 24 11:59:16 PST 2008


changeset:   114:6728eb0310cc
user:        BelindaMay
date:        Tue Jul 08 04:30:53 2008 +0000
files:       Mesh/src/CartesianGenerator.c
description:
Fixed a problem that occurred when restarting without a mesh checkpoint file


diff -r 7d6b32897d0c -r 6728eb0310cc Mesh/src/CartesianGenerator.c
--- a/Mesh/src/CartesianGenerator.c	Fri Jun 13 07:14:40 2008 +0000
+++ b/Mesh/src/CartesianGenerator.c	Tue Jul 08 04:30:53 2008 +0000
@@ -309,38 +309,40 @@ void _CartesianGenerator_Construct( void
 					restartTimestep );
 			}			
 	
-	#ifdef HAVE_HDF5	
+#ifdef HAVE_HDF5	
 	      sprintf( meshSaveFileName, "%s.h5", meshSaveFileName );
 	      
 	      /* Read in minimum coord. */
 	      file = H5Fopen( meshSaveFileName, H5F_ACC_RDONLY, H5P_DEFAULT );
 	      
-	      if( file == 0 ) {
+	      if( !file ) {
 				Journal_Printf( errorStream, 
 					"Warning - Couldn't find checkpoint mesh file with filename \"%s\".\n", 
 					meshSaveFileName );
 			}
+			else {
 			
-      #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
-	      fileData = H5Dopen( file, "/min" );
-      #else
-	      fileData = H5Dopen( file, "/min", H5P_DEFAULT );
-      #endif
-	      H5Dread( fileData, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, crdMin );
-	      H5Dclose( fileData );
+         #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
+	         fileData = H5Dopen( file, "/min" );
+         #else
+	         fileData = H5Dopen( file, "/min", H5P_DEFAULT );
+         #endif
+	         H5Dread( fileData, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, crdMin );
+	         H5Dclose( fileData );
+	         
+	         /* Read in maximum coord. */
+         #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
+	         fileData = H5Dopen( file, "/max" );
+         #else
+	         fileData = H5Dopen( file, "/max", H5P_DEFAULT );
+         #endif
+	         H5Dread( fileData, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, crdMax );
+	         H5Dclose( fileData );
+	         
+	         H5Fclose( file );
+	      }
 	      
-	      /* Read in maximum coord. */
-      #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
-	      fileData = H5Dopen( file, "/max" );
-      #else
-	      fileData = H5Dopen( file, "/max", H5P_DEFAULT );
-      #endif
-	      H5Dread( fileData, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, H5P_DEFAULT, crdMax );
-	      H5Dclose( fileData );
-	      
-	      H5Fclose( file );
-	      
-	#else	
+#else	
 	      sprintf( meshSaveFileName, "%s.dat", meshSaveFileName );
 	        
 			FILE* meshFile = fopen( meshSaveFileName, "r" );	
@@ -357,16 +359,6 @@ void _CartesianGenerator_Construct( void
 					meshSaveFileName );
 			}
 			else {
-			#if 0
-				fscanf( meshFile, "Min: " );
-				for( i=0; i<self->nDims; i++ ) {
-					fscanf( meshFile, "%lg ", &crdMin[i] );
-				}
-				fscanf( meshFile, "\nMax: " );
-				for( i=0; i<self->nDims; i++ ) {
-					fscanf( meshFile, "%lg ", &crdMax[i] );
-				}
-				#endif
 				
 				/* Read min and max coords from file */
 		      if(self->nDims==2)
@@ -380,7 +372,7 @@ void _CartesianGenerator_Construct( void
             
 				fclose( meshFile );
 			}
-   #endif
+#endif
 				
 			Memory_Free( meshSaveFileName );
 		}	
@@ -2105,8 +2097,8 @@ void CartesianGenerator_GenGeom( Cartesi
 		
       /* Open the file and data set. */
 	   file = H5Fopen( meshSaveFileName, H5F_ACC_RDONLY, H5P_DEFAULT );
-	   
-	   if( !file ) {
+		
+	   if( file < 0 ) {
 			Journal_Printf( errorStream, 
 				"Warning - Couldn't find checkpoint mesh file with filename \"%s\".\n", 
 				meshSaveFileName );
@@ -2131,49 +2123,51 @@ void CartesianGenerator_GenGeom( Cartesi
 	      FreeArray( inds );
 	      FreeArray( steps );
 		}
+		else {
       	
-	   /* Prepare to read vertices from file */		
-      #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
-	   fileData = H5Dopen( file, "/data" );
-      #else
-	   fileData = H5Dopen( file, "/data", H5P_DEFAULT );
-      #endif
-	   fileSpace = H5Dget_space( fileData );
-      
-      start[1] = 0;
-	   count[0] = 1;
-	   count[1] = mesh->topo->nDims + 1;
-      memSpace = H5Screate_simple( 2, count, NULL );
-      totalVerts = Mesh_GetGlobalSize( mesh, 0 );
+	      /* Prepare to read vertices from file */		
+         #if H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 8
+	      fileData = H5Dopen( file, "/data" );
+         #else
+	      fileData = H5Dopen( file, "/data", H5P_DEFAULT );
+         #endif
+	      fileSpace = H5Dget_space( fileData );
          
-	   for( ii=0; ii<totalVerts; ii++ ) {   
-	      start[0] = ii;
-               
-         H5Sselect_hyperslab( fileSpace, H5S_SELECT_SET, start, NULL, count, NULL );
-         H5Sselect_all( memSpace );
-         
-         H5Dread( fileData, H5T_NATIVE_DOUBLE, memSpace, fileSpace, H5P_DEFAULT, buf );
-         gNode_I = (int)buf[0];
-         
-         if( Mesh_GlobalToDomain( mesh, MT_VERTEX, gNode_I, &lNode_I ) && 
-		       lNode_I < Mesh_GetLocalSize( mesh, MT_VERTEX ) )
-		   {
-			   double *vert;
-
-			   vert = Mesh_GetVertex( mesh, lNode_I );
-			   vert[0] = buf[1];
-			   if( mesh->topo->nDims >= 2 )
-				   vert[1] = buf[2];
-			   if( mesh->topo->nDims >=3 )
-				   vert[2] = buf[3];
-		   }
+         start[1] = 0;
+	      count[0] = 1;
+	      count[1] = mesh->topo->nDims + 1;
+         memSpace = H5Screate_simple( 2, count, NULL );
+         totalVerts = Mesh_GetGlobalSize( mesh, 0 );
+            
+	      for( ii=0; ii<totalVerts; ii++ ) {   
+	         start[0] = ii;
+                  
+            H5Sselect_hyperslab( fileSpace, H5S_SELECT_SET, start, NULL, count, NULL );
+            H5Sselect_all( memSpace );
+            
+            H5Dread( fileData, H5T_NATIVE_DOUBLE, memSpace, fileSpace, H5P_DEFAULT, buf );
+            gNode_I = (int)buf[0];
+            
+            if( Mesh_GlobalToDomain( mesh, MT_VERTEX, gNode_I, &lNode_I ) && 
+		          lNode_I < Mesh_GetLocalSize( mesh, MT_VERTEX ) )
+		      {
+			      double *vert;
+
+			      vert = Mesh_GetVertex( mesh, lNode_I );
+			      vert[0] = buf[1];
+			      if( mesh->topo->nDims >= 2 )
+				      vert[1] = buf[2];
+			      if( mesh->topo->nDims >=3 )
+				      vert[2] = buf[3];
+		      }
+	      }
+	   	      
+	      /* Close handles */
+	      H5Sclose( memSpace );
+	      H5Sclose( fileSpace );
+	      H5Dclose( fileData );
+	      H5Fclose( file );
 	   }
-	   	      
-	   /* Close handles */
-	   H5Sclose( memSpace );
-	   H5Sclose( fileSpace );
-	   H5Dclose( fileData );
-	   H5Fclose( file );
 	   
 #else
       sprintf( meshSaveFileName, "%s.dat", meshSaveFileName );
@@ -2221,6 +2215,8 @@ void CartesianGenerator_GenGeom( Cartesi
 			      /* Free resources. */
 	            FreeArray( inds );
 	            FreeArray( steps );
+	            
+	            return;
 		      }
 		      
 			   rewind( inputFile );



More information about the CIG-COMMITS mailing list