[cig-commits] r18948 - long/3D/SNAC/trunk/Snac/snac2restart
echoi at geodynamics.org
echoi at geodynamics.org
Tue Sep 20 00:03:21 PDT 2011
Author: echoi
Date: 2011-09-20 00:03:21 -0700 (Tue, 20 Sep 2011)
New Revision: 18948
Modified:
long/3D/SNAC/trunk/Snac/snac2restart/snac2restart.c
Log:
isoForce processing is necessary when the Winkler plugin is used.
Modified: long/3D/SNAC/trunk/Snac/snac2restart/snac2restart.c
===================================================================
--- long/3D/SNAC/trunk/Snac/snac2restart/snac2restart.c 2011-09-20 06:55:55 UTC (rev 18947)
+++ long/3D/SNAC/trunk/Snac/snac2restart/snac2restart.c 2011-09-20 07:03:21 UTC (rev 18948)
@@ -66,6 +66,7 @@
unsigned int elementGlobalSize[3];
unsigned int rank_array[3];
unsigned int elementLocalSize[3];
+unsigned int doForce = 1;
unsigned int doTemp = 1;
unsigned int doAps = 1;
unsigned int doAvgAps = 1;
@@ -286,6 +287,12 @@
assert(0);
abort();
}
+ sprintf( tmpBuf, "%s/isoForce.%u", origPath, rank );
+ fprintf(stderr,"Reading from %s\n",tmpBuf);
+ if( (forceIn = fopen( tmpBuf, "r" )) == NULL ) {
+ fprintf( stderr,"Warning, no isoForce.%u found... assuming Winkler plugin not used.\n", rank );
+ doForce = 0;
+ }
sprintf( tmpBuf, "%s/temperatureCP.%u", readPath, rank );
fprintf(stderr,"Reading from %s\n",tmpBuf);
if( (tempIn = fopen( tmpBuf, "r" )) == NULL ) {
@@ -308,6 +315,9 @@
ConvertTimeStep( rank, dumpIteration, simTimeStep, time );
/* Close the input files */
+ if( forceIn ) {
+ fclose( forceIn );
+ }
if( apsIn ) {
fclose( apsIn );
}
@@ -462,6 +472,26 @@
if( restartOut )
fclose( restartOut );
+ /* Write out isoForce array */
+ if(doForce) {
+ sprintf( tmpBuf, "%s/snac.isoForce.%i.%06u.restart", writePath, rank, simTimeStep );
+ fprintf(stderr,"\tWriting out %s\n",tmpBuf);
+ if( (restartOut = fopen( tmpBuf, "w" )) == NULL ) {
+ /* failed to open file for writing */
+ fprintf(stderr, "Failed to open %s for writing\n", tmpBuf);
+ exit(0);
+ }
+
+ fseek( forceIn, dumpIteration * nodeLocalCount * sizeof(float), SEEK_SET );
+ for( node_gI = 0; node_gI < nodeLocalCount; node_gI++ ) {
+ float Fr;
+ fread( &Fr, sizeof(float), 1, forceIn );
+ fprintf( restartOut, "%.9e\n", Fr );
+ }
+ if( restartOut )
+ fclose( restartOut );
+ }
+
/* Write out temperature array */
if(doTemp) {
sprintf( tmpBuf, "%s/snac.temp.%i.%06u.restart", writePath, rank, simTimeStep );
More information about the CIG-COMMITS
mailing list