Changeset 6389
- Timestamp:
- 10/21/10 21:07:19 (14 years ago)
- Location:
- issm/trunk/src
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Container/Results.cpp
r6372 r6389 158 158 int i; 159 159 FILE *fid = NULL; 160 bool io_gather=true; 160 161 161 162 /*Recover file descriptor: */ 162 163 parameters->FindParam(&fid,OutputFilePointerEnum); 164 parameters->FindParam(&io_gather,IoGatherEnum); 163 165 164 166 for(i=0;i<this->Size();i++){ … … 167 169 168 170 /*write result to disk: */ 169 result->WriteData(fid );171 result->WriteData(fid,io_gather); 170 172 171 173 } -
issm/trunk/src/c/io/pfclose.cpp
r4873 r6389 17 17 /*Close file handle: */ 18 18 extern int my_rank; 19 if(my_rank==0){ 20 if(fclose(fid)!=0)ISSMERROR("%s%s","could not close file ",filename); 21 } 19 if(fclose(fid)!=0)ISSMERROR("%s%s","could not close file ",filename); 22 20 } -
issm/trunk/src/c/io/pfopen.cpp
r3775 r6389 19 19 20 20 /*Open handle to data on disk: */ 21 if(my_rank==0){ 22 fid=fopen(filename,format); 23 if(fid==NULL) ISSMERROR("%s%s%s","could not open file ",filename," for binary reading or writing"); 24 } 21 fid=fopen(filename,format); 22 if(fid==NULL) ISSMERROR("%s%s%s","could not open file ",filename," for binary reading or writing"); 25 23 26 24 return fid; -
issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp
r6375 r6389 58 58 /*What strategy? : */ 59 59 parameters->FindParam(&io_gather,IoGatherEnum); 60 61 60 62 61 if(io_gather){ … … 76 75 #endif 77 76 77 78 78 /*Write results to disk (in parallel), or to memory (in serial mode): */ 79 79 #ifdef _SERIAL_ … … 83 83 #endif 84 84 85 86 85 /*Delete and reinitialize results, in parallel: */ 87 86 #ifdef _PARALLEL_ … … 89 88 #endif 90 89 90 /*Close output file? :*/ 91 if((step==1) && (time==0)){ 92 if(io_gather){ 93 if(my_rank==0) pfclose(fid,outputfilename); 94 } 95 else pfclose(fid,cpu_outputfilename); 96 } 97 91 98 /*Assign output pointers:*/ 92 99 *presults=results; -
issm/trunk/src/c/objects/ExternalResults/BoolExternalResult.cpp
r5103 r6389 143 143 /*BoolExternalResult management: */ 144 144 /*FUNCTION BoolExternalResult::WriteData{{{1*/ 145 void BoolExternalResult::WriteData(FILE* fid ){145 void BoolExternalResult::WriteData(FILE* fid,bool io_gather){ 146 146 147 147 int length; -
issm/trunk/src/c/objects/ExternalResults/BoolExternalResult.h
r4248 r6389 55 55 /*ExternalResult management: {{{1*/ 56 56 int EnumType(){return enum_type;} 57 void WriteData(FILE* fid );57 void WriteData(FILE* fid,bool io_gather); 58 58 char* GetResultName(void); 59 59 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/DoubleExternalResult.cpp
r5103 r6389 143 143 /*DoubleExternalResult management: */ 144 144 /*FUNCTION DoubleExternalResult::WriteData{{{1*/ 145 void DoubleExternalResult::WriteData(FILE* fid ){145 void DoubleExternalResult::WriteData(FILE* fid,bool io_gather){ 146 146 147 147 int length; -
issm/trunk/src/c/objects/ExternalResults/DoubleExternalResult.h
r4248 r6389 56 56 /*ExternalResult management: {{{1*/ 57 57 int EnumType(){return enum_type;} 58 void WriteData(FILE* fid );58 void WriteData(FILE* fid,bool io_gather); 59 59 char* GetResultName(void); 60 60 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp
r5103 r6389 180 180 /*DoubleMatExternalResult management: */ 181 181 /*FUNCTION DoubleMatExternalResult::WriteData{{{1*/ 182 void DoubleMatExternalResult::WriteData(FILE* fid ){182 void DoubleMatExternalResult::WriteData(FILE* fid,bool io_gather){ 183 183 184 184 int length; … … 188 188 extern int my_rank; 189 189 190 /*return if now on cpu 0: */ 191 if(my_rank) return; 190 if(io_gather){ 191 /*we are gathering the data on cpu 0, don't write on other cpus: */ 192 if(my_rank) return; 193 } 192 194 193 195 /*First write enum: */ -
issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.h
r4248 r6389 57 57 /*ExternalResult managemnet: {{{1*/ 58 58 int EnumType(){return enum_type;} 59 void WriteData(FILE* fid );59 void WriteData(FILE* fid,bool io_gather); 60 60 char* GetResultName(void); 61 61 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp
r5103 r6389 168 168 /*DoubleVecExternalResult management: */ 169 169 /*FUNCTION DoubleVecExternalResult::WriteData{{{1*/ 170 void DoubleVecExternalResult::WriteData(FILE* fid ){170 void DoubleVecExternalResult::WriteData(FILE* fid,bool io_gather){ 171 171 172 172 int length; -
issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.h
r4248 r6389 56 56 /*ExternalResult management: {{{1*/ 57 57 int EnumType(){return enum_type;} 58 void WriteData(FILE* fid );58 void WriteData(FILE* fid,bool io_gather); 59 59 char* GetResultName(void); 60 60 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/ExternalResult.h
r4248 r6389 31 31 /*Virtual functions:{{{1*/ 32 32 virtual int EnumType()=0; 33 virtual void WriteData(FILE* fid )=0;33 virtual void WriteData(FILE* fid,bool io_gather)=0; 34 34 virtual char* GetResultName(void)=0; 35 35 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/IntExternalResult.cpp
r5103 r6389 143 143 /*IntExternalResult management: */ 144 144 /*FUNCTION IntExternalResult::WriteData{{{1*/ 145 void IntExternalResult::WriteData(FILE* fid ){145 void IntExternalResult::WriteData(FILE* fid,bool io_gather){ 146 146 147 147 int length; -
issm/trunk/src/c/objects/ExternalResults/IntExternalResult.h
r5172 r6389 54 54 /*ExternalResult managemnet: {{{1*/ 55 55 int EnumType(){return enum_type;} 56 void WriteData(FILE* fid );56 void WriteData(FILE* fid,bool io_gather); 57 57 char* GetResultName(void); 58 58 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp
r5103 r6389 199 199 /*PetscVecExternalResult management: */ 200 200 /*FUNCTION PetscVecExternalResult::WriteData{{{1*/ 201 void PetscVecExternalResult::WriteData(FILE* fid ){201 void PetscVecExternalResult::WriteData(FILE* fid,bool io_gather){ 202 202 203 203 int length; -
issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.h
r4248 r6389 56 56 /*ExternalResult management: {{{1*/ 57 57 int EnumType(){return enum_type;} 58 void WriteData(FILE* fid );58 void WriteData(FILE* fid,bool io_gather); 59 59 char* GetResultName(void); 60 60 #ifdef _SERIAL_ -
issm/trunk/src/c/objects/ExternalResults/StringExternalResult.cpp
r5103 r6389 158 158 /*StringExternalResult management: */ 159 159 /*FUNCTION StringExternalResult::WriteData{{{1*/ 160 void StringExternalResult::WriteData(FILE* fid ){160 void StringExternalResult::WriteData(FILE* fid,bool io_gather){ 161 161 162 162 int length; -
issm/trunk/src/c/objects/ExternalResults/StringExternalResult.h
r4248 r6389 56 56 /*ExternalResult management: {{{1*/ 57 57 int EnumType(){return enum_type;} 58 void WriteData(FILE* fid );58 void WriteData(FILE* fid,bool io_gather); 59 59 char* GetResultName(void); 60 60 #ifdef _SERIAL_ -
issm/trunk/src/c/solutions/issm.cpp
r6372 r6389 100 100 101 101 /*Close output file and write lock file if requested*/ 102 femmodel->parameters->FindParam(&output_fid,OutputFilePointerEnum); pfclose(output_fid,argv[5]);103 102 if (waitonlock>0){ 104 103 _printf_("write lock file:\n"); -
issm/trunk/src/m/classes/clusters/astrid.m
r6219 r6389 71 71 fprintf(fid,'#!/bin/sh\n'); 72 72 if mem_debug==0, 73 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog &',cluster.np,cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);73 fprintf(fid,'mpirun -np %i %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname); 74 74 else 75 %fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --gen-suppressions=all --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog &',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);76 fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog &',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup, cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname);75 %fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --gen-suppressions=all --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog ',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup,cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname); 76 fprintf(fid,'LD_PRELOAD=%s mpirun -np %i %s --leak-check=full --suppressions=%s %s/issm.exe %s %s %s.bin %s.petsc %s.outbin %s.lock 2> %s.errlog >%s.outlog ',cluster.valgrindlib,cluster.np,cluster.valgrind,cluster.valgrindsup, cluster.codepath,EnumToString(analysis_type),cluster.executionpath,modelname,modelname,modelname,modelname,modelname,modelname); 77 77 end 78 78 79 79 if md.gprof, 80 80 fprintf(fid,'\n gprof %s/issm.exe gmon.out > %s.performance',cluster.codepath,modelname); 81 end 82 83 if ~md.io_gather, 84 %concatenate the output files: 85 fprintf(fid,'\ncat %s.outbin.* > %s.outbin',modelname,modelname); 81 86 end 82 87 -
issm/trunk/src/m/model/parseresultsfromdisk.m
r4439 r6389 21 21 22 22 %Add result 23 results(result.step).(result.fieldname)=result.field; 23 if (length(results)>=result.step & isfield(results,result.fieldname)), 24 results(result.step).(result.fieldname)=[ results(result.step).(result.fieldname); result.field]; 25 else 26 results(result.step).(result.fieldname)=result.field; 27 end 24 28 25 29 %read next result
Note:
See TracChangeset
for help on using the changeset viewer.