Changeset 24442


Ignore:
Timestamp:
12/05/19 16:59:50 (5 years ago)
Author:
Eric.Larour
Message:

CHG: change strategy to output files for each sample run if qmu output has been requested.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/modules/OutputResultsx/OutputResultsx.cpp

    r22916 r24442  
    2020        FILE       *fid                     = NULL;
    2121        char       *outputfilename          = NULL;
    22         char        cpu_outputfilename[100];        //easier to convert an integer with sprintf
     22        char        outputfilename2[100];        //easier to convert an integer with sprintf
    2323        bool        io_gather;
    2424        int         solutiontype;
    2525        char*       solutiontypestring      = NULL;
    2626        bool        dakota_analysis         = false;
     27        int         currEvalId              = -1;
     28        bool        dakota_output           = false;
    2729
    2830        /*retrieve parameters: */
    2931        femmodel->parameters->FindParam(&dakota_analysis,QmuIsdakotaEnum);
     32        femmodel->parameters->FindParam(&dakota_output,QmuOutputEnum);
     33        femmodel->parameters->FindParam(&currEvalId,QmuCurrEvalIdEnum);
    3034
    3135        /*recover my_rank:*/
    3236        my_rank=IssmComm::GetRank();
    3337
    34         if(dakota_analysis){
    35                 //no need to output anything, Dakota analysis has different outputs
     38        if(dakota_analysis & !dakota_output){
     39                //user wants to rely purely on Dakota analysis output, not the core output.
    3640                return;
    3741        }
     
    5761        if(io_gather){
    5862                /*Just open the file for output on cpu 0. We are gathering the data on cpu 0 from all other cpus: */
    59                 if(my_rank==0) fid=pfopen0(outputfilename ,"ab+");
     63                if(!dakota_analysis){
     64                        if(my_rank==0) fid=pfopen0(outputfilename ,"ab+");
     65                }
     66                else{
     67                        if(my_rank==0){
     68                                sprintf(outputfilename2,"%s.%i",outputfilename,currEvalId);
     69                                fid=pfopen0(outputfilename2,"ab+");
     70                        }
     71                }
    6072        }
    6173        else{
    6274                /*We are opening different  files for output on all cpus. Append the  rank to the filename, and open: */
    63                 sprintf(cpu_outputfilename,"%s.%i",outputfilename,my_rank);
    64                 fid=pfopen(cpu_outputfilename ,"ab+");
     75                sprintf(outputfilename2,"%s.%i",outputfilename,my_rank);
     76                fid=pfopen(outputfilename2 ,"ab+");
    6577        }
    6678
     
    8395        /*Close output file? :*/
    8496        if(io_gather){
    85                 if(my_rank==0) pfclose(fid,outputfilename);
     97                if(!dakota_analysis){
     98                        if(my_rank==0) pfclose(fid,outputfilename);
     99                }
     100                else{
     101                        if(my_rank==0) pfclose(fid,outputfilename2);
     102                }
    86103        }
    87         else pfclose(fid,cpu_outputfilename);
     104        else pfclose(fid,outputfilename2);
    88105#endif
    89106
Note: See TracChangeset for help on using the changeset viewer.