Changeset 561


Ignore:
Timestamp:
05/21/09 12:00:30 (16 years ago)
Author:
Mathieu Morlighem
Message:

fixed output (do not use VecToMPISerial when my_rank==0 only)

Location:
issm/trunk/src/c/parallel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/parallel/OutputThermal.cpp

    r508 r561  
    3030        double* serial_partition=NULL;
    3131
    32         double* serial_tg=NULL;
    33         int     t_g_size;
    34         double* serial_mg=NULL;
     32        double** serial_tg=NULL;
     33        double** serial_mg=NULL;
    3534
    3635        double ndt,dt;
     
    5958        VecGetSize(partition,&nods);
    6059
     60
    6161        if(sub_analysis_type==SteadyAnalysisEnum()){
    6262                nsteps=0;
     
    6666        }
    6767
     68        /*allocate t_g and m_g arrays: */
     69        serial_tg=(double**)xmalloc((nsteps+1)*sizeof(double*));
     70        serial_mg=(double**)xmalloc((nsteps+1)*sizeof(double*));
     71
     72        /*get tg_i*/
     73        for(i=0;i<=nsteps;i++){
     74                VecToMPISerial(&serial_tg[i],t_g[i]);
     75                VecToMPISerial(&serial_mg[i],m_g[i]);
     76        }
     77       
    6878        /* Open output file to write raw binary data: */
    6979        if(my_rank==0){
     80
    7081                fid=pfopen(filename,"wb");
    7182
     
    8192                /*Write solutions to disk: */
    8293                for(i=0;i<=nsteps;i++){
    83        
    84                         xfree((void**)&serial_tg);
    85                         xfree((void**)&serial_mg);
    86                         VecToMPISerial(&serial_tg,t_g[i]);
    87                         VecToMPISerial(&serial_mg,m_g[i]);
    88 
    89                         WriteDataToDisk(serial_tg,&nods,&one,"Mat",fid);
    90                         WriteDataToDisk(serial_mg,&nods,&one,"Mat",fid);
     94                        WriteDataToDisk(serial_tg[i],&nods,&one,"Mat",fid);
     95                        WriteDataToDisk(serial_mg[i],&nods,&one,"Mat",fid);
    9196                }
    9297       
  • issm/trunk/src/c/parallel/thermal.cpp

    r559 r561  
    149149        _printf_("write lock file:\n");
    150150        femmodels[0].parameters->FindParam((void*)&waitonlock,"waitonlock");
     151
    151152        if (waitonlock){
    152153                WriteLockFile(lockname);
Note: See TracChangeset for help on using the changeset viewer.