From 26bdcd64b9428c30cec62bc0e182bbc549a2cd6c Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 22 Sep 2019 15:34:05 -0700 Subject: [PATCH] this might resolve the occasional MPI restart test failuers --- src/grid/DAMASK_grid.f90 | 4 ++-- src/grid/grid_mech_spectral_basic.f90 | 6 ++++-- src/grid/grid_mech_spectral_polarisation.f90 | 6 ++++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 56ea0b7c1..cdc62ea77 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -527,7 +527,7 @@ program DAMASK_spectral write(6,'(/,a)') ' cutting back ' else ! no more options to continue call IO_warning(850) - call MPI_file_close(fileUnit,ierr) + call MPI_File_close(fileUnit,ierr) close(statUnit) call quit(-1*(lastRestartWritten+1)) ! quit and provide information about last restart inc written endif @@ -550,7 +550,7 @@ program DAMASK_spectral write(6,'(1/,a)') ' ... writing results to file ......................................' flush(6) call materialpoint_postResults() - call MPI_file_seek (fileUnit,fileOffset,MPI_SEEK_SET,ierr) + call MPI_File_seek (fileUnit,fileOffset,MPI_SEEK_SET,ierr) if (ierr /= 0) call IO_error(894, ext_msg='MPI_file_seek') do i=1, size(materialpoint_results,3)/(maxByteOut/(materialpoint_sizeResults*pReal))+1 ! slice the output of my process in chunks not exceeding the limit for one output outputIndex=int([(i-1)*((maxRealOut)/materialpoint_sizeResults)+1, & diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index 1581c8b9a..b7b43eeef 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -184,8 +184,10 @@ subroutine grid_mech_spectral_basic_init call HDF5_read(fileHandle,C_volAvgLastInc,'C_volAvgLastInc') call HDF5_closeFile(fileHandle) - fileUnit = IO_open_jobFile_binary('C_ref') - read(fileUnit) C_minMaxAvg; close(fileUnit) + call MPI_File_open(PETSC_COMM_WORLD, trim(getSolverJobName())//'.C_ref', & + MPI_MODE_RDONLY,MPI_INFO_NULL,fileUnit,ierr) + call MPI_File_read(fileUnit,C_minMaxAvg,81,MPI_DOUBLE,MPI_STATUS_IGNORE,ierr) + call MPI_File_close(fileUnit,ierr) endif restartRead2 call utilities_updateGamma(C_minMaxAvg,.true.) diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index ccc7e77c0..3f730cc3b 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -197,8 +197,10 @@ subroutine grid_mech_spectral_polarisation_init call HDF5_read(fileHandle,C_volAvgLastInc,'C_volAvgLastInc') call HDF5_closeFile(fileHandle) - fileUnit = IO_open_jobFile_binary('C_ref') - read(fileUnit) C_minMaxAvg; close(fileUnit) + call MPI_File_open(PETSC_COMM_WORLD, trim(getSolverJobName())//'.C_ref', & + MPI_MODE_RDONLY,MPI_INFO_NULL,fileUnit,ierr) + call MPI_File_read(fileUnit,C_minMaxAvg,81,MPI_DOUBLE,MPI_STATUS_IGNORE,ierr) + call MPI_File_close(fileUnit,ierr) endif restartRead2 call utilities_updateGamma(C_minMaxAvg,.true.)