Skip to content

Commit

Permalink
Merge pull request #224 from TRPrasanna/master
Browse files Browse the repository at this point in the history
Fix intermediate integer overflow when reading/writing large files
  • Loading branch information
oscarmarino authored May 9, 2024
2 parents 5198773 + 2101865 commit 5bce14a
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions Solver/src/libs/mesh/HexMesh.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3016,7 +3016,7 @@ subroutine HexMesh_SaveSolution(self, iter, time, name, saveGradients, saveSenso
Q(NCONS,:,:,:) = e % storage % c(1,:,:,:)
#endif

pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + padding*e % offsetIO * SIZEOF_RP
pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + 1_AddrInt*padding*e % offsetIO * SIZEOF_RP
if (saveSensor) pos = pos + (e % globID - 1) * SIZEOF_RP
call writeArray(fid, Q, position=pos)

Expand Down Expand Up @@ -3116,7 +3116,7 @@ subroutine HexMesh_SaveStatistics(self, iter, time, name, saveGradients)
fID = putSolutionFileInWriteDataMode(trim(name))
do eID = 1, self % no_of_elements
associate( e => self % elements(eID) )
pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + no_of_stats_variables*e % offsetIO*SIZEOF_RP
pos = POS_INIT_DATA + (e % globID-1)*5_AddrInt*SIZEOF_INT + 1_AddrInt*no_of_stats_variables*e % offsetIO*SIZEOF_RP
no_stat_s = 9
call writeArray(fid, e % storage % stats % data(1:no_stat_s,:,:,:), position=pos)
allocate(Q(NCONS, 0:e % Nxyz(1), 0:e % Nxyz(2), 0:e % Nxyz(3)))
Expand Down Expand Up @@ -3412,7 +3412,7 @@ subroutine HexMesh_LoadSolution( self, fileName, initial_iteration, initial_time
fID = putSolutionFileInReadDataMode(trim(fileName))
do eID = 1, size(self % elements)
associate( e => self % elements(eID) )
pos = POS_INIT_DATA + (e % globID-1)*5*SIZEOF_INT + padding*e % offsetIO*SIZEOF_RP
pos = POS_INIT_DATA + (e % globID-1)*5*SIZEOF_INT + 1_AddrInt*padding*e % offsetIO*SIZEOF_RP
if (has_sensor) pos = pos + (e % globID - 1) * SIZEOF_RP
read(fID, pos=pos) array_rank
read(fID) no_of_eqs, Nxp1, Nyp1, Nzp1
Expand Down

0 comments on commit 5bce14a

Please sign in to comment.