@@ -104,15 +104,15 @@ module h5mpi
104104interface ! < write.f90
105105module subroutine hdf_create (self , dname , dtype , mem_dims , dset_dims , &
106106 filespace_id , memspace , dset_id , dtype_id , &
107- istart , iend , chunk_size , compact , charlen )
107+ istart , iend , stride , chunk_size , compact , charlen )
108108
109109class(hdf5_file), intent (in ) :: self
110110character (* ), intent (in ) :: dname
111111integer (HID_T), intent (in ) :: dtype
112112integer (HSIZE_T), dimension (:), intent (in ) :: mem_dims, dset_dims
113113integer (HID_T), intent (out ) :: filespace_id, memspace, dset_id
114114integer (HID_T), intent (out ), optional :: dtype_id
115- integer , intent (in ), dimension (:), optional :: chunk_size, istart, iend
115+ integer , intent (in ), dimension (:), optional :: chunk_size, istart, iend, stride
116116logical , intent (in ), optional :: compact
117117integer , intent (in ), optional :: charlen ! < length of character scalar
118118end subroutine
@@ -152,59 +152,59 @@ module subroutine h5write_scalar(self, dname, A, compact)
152152logical , intent (in ), optional :: compact
153153end subroutine
154154
155- module subroutine h5write_1d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
155+ module subroutine h5write_1d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
156156class(hdf5_file), intent (in ) :: self
157157character (* ), intent (in ) :: dname
158158class(* ), intent (in ) :: A(:)
159- integer , intent (in ), dimension (1 ), optional :: istart, iend, chunk_size , dset_dims
159+ integer , intent (in ), dimension (1 ), optional :: chunk_size, istart, iend, stride , dset_dims
160160logical , intent (in ), optional :: compact
161161end subroutine
162162
163- module subroutine h5write_2d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
163+ module subroutine h5write_2d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
164164class(hdf5_file), intent (in ) :: self
165165character (* ), intent (in ) :: dname
166166class(* ), intent (in ) :: A(:,:)
167- integer , intent (in ), dimension (2 ), optional :: istart, iend, chunk_size , dset_dims
167+ integer , intent (in ), dimension (2 ), optional :: chunk_size, istart, iend, stride , dset_dims
168168logical , intent (in ), optional :: compact
169169end subroutine
170170
171- module subroutine h5write_3d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
171+ module subroutine h5write_3d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
172172class(hdf5_file), intent (in ) :: self
173173character (* ), intent (in ) :: dname
174174class(* ), intent (in ) :: A(:,:,:)
175- integer , intent (in ), dimension (3 ), optional :: istart, iend, chunk_size , dset_dims
175+ integer , intent (in ), dimension (3 ), optional :: chunk_size, istart, iend, stride , dset_dims
176176logical , intent (in ), optional :: compact
177177end subroutine
178178
179- module subroutine h5write_4d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
179+ module subroutine h5write_4d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
180180class(hdf5_file), intent (in ) :: self
181181character (* ), intent (in ) :: dname
182182class(* ), intent (in ) :: A(:,:,:,:)
183- integer , intent (in ), dimension (4 ), optional :: istart, iend, chunk_size , dset_dims
183+ integer , intent (in ), dimension (4 ), optional :: chunk_size, istart, iend, stride , dset_dims
184184logical , intent (in ), optional :: compact
185185end subroutine
186186
187- module subroutine h5write_5d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
187+ module subroutine h5write_5d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
188188class(hdf5_file), intent (in ) :: self
189189character (* ), intent (in ) :: dname
190190class(* ), intent (in ) :: A(:,:,:,:,:)
191- integer , intent (in ), dimension (5 ), optional :: istart, iend, chunk_size , dset_dims
191+ integer , intent (in ), dimension (5 ), optional :: chunk_size, istart, iend, stride , dset_dims
192192logical , intent (in ), optional :: compact
193193end subroutine
194194
195- module subroutine h5write_6d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
195+ module subroutine h5write_6d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
196196class(hdf5_file), intent (in ) :: self
197197character (* ), intent (in ) :: dname
198198class(* ), intent (in ) :: A(:,:,:,:,:,:)
199- integer , intent (in ), dimension (6 ), optional :: istart, iend, chunk_size , dset_dims
199+ integer , intent (in ), dimension (6 ), optional :: chunk_size, istart, iend, stride , dset_dims
200200logical , intent (in ), optional :: compact
201201end subroutine
202202
203- module subroutine h5write_7d (self , dname , A , dset_dims , istart , iend , chunk_size , compact )
203+ module subroutine h5write_7d (self , dname , A , dset_dims , istart , iend , stride , chunk_size , compact )
204204class(hdf5_file), intent (in ) :: self
205205character (* ), intent (in ) :: dname
206206class(* ), intent (in ) :: A(:,:,:,:,:,:,:)
207- integer , intent (in ), dimension (7 ), optional :: istart, iend, chunk_size , dset_dims
207+ integer , intent (in ), dimension (7 ), optional :: chunk_size, istart, iend, stride , dset_dims
208208logical , intent (in ), optional :: compact
209209end subroutine
210210
@@ -289,53 +289,53 @@ module subroutine h5read_scalar(self, dname, A)
289289class(* ), intent (inout ) :: A
290290end subroutine
291291
292- module subroutine h5read_1d (self , dname , A , istart , iend )
292+ module subroutine h5read_1d (self , dname , A , istart , iend , stride )
293293class(hdf5_file), intent (in ) :: self
294294character (* ), intent (in ) :: dname
295295class(* ), intent (inout ) :: A(:)
296- integer , intent (in ), dimension (1 ), optional :: istart, iend
296+ integer , intent (in ), dimension (1 ), optional :: istart, iend, stride
297297end subroutine
298298
299- module subroutine h5read_2d (self , dname , A , istart , iend )
299+ module subroutine h5read_2d (self , dname , A , istart , iend , stride )
300300class(hdf5_file), intent (in ) :: self
301301character (* ), intent (in ) :: dname
302302class(* ), intent (inout ) :: A(:,:)
303- integer , intent (in ), dimension (2 ), optional :: istart, iend
303+ integer , intent (in ), dimension (2 ), optional :: istart, iend, stride
304304end subroutine
305305
306- module subroutine h5read_3d (self , dname , A , istart , iend )
306+ module subroutine h5read_3d (self , dname , A , istart , iend , stride )
307307class(hdf5_file), intent (in ) :: self
308308character (* ), intent (in ) :: dname
309309class(* ), intent (inout ) :: A(:,:,:)
310- integer , intent (in ), dimension (3 ), optional :: istart, iend
310+ integer , intent (in ), dimension (3 ), optional :: istart, iend, stride
311311end subroutine
312312
313- module subroutine h5read_4d (self , dname , A , istart , iend )
313+ module subroutine h5read_4d (self , dname , A , istart , iend , stride )
314314class(hdf5_file), intent (in ) :: self
315315character (* ), intent (in ) :: dname
316316class(* ), intent (inout ) :: A(:,:,:,:)
317- integer , intent (in ), dimension (4 ), optional :: istart, iend
317+ integer , intent (in ), dimension (4 ), optional :: istart, iend, stride
318318end subroutine
319319
320- module subroutine h5read_5d (self , dname , A , istart , iend )
320+ module subroutine h5read_5d (self , dname , A , istart , iend , stride )
321321class(hdf5_file), intent (in ) :: self
322322character (* ), intent (in ) :: dname
323323class(* ), intent (inout ) :: A(:,:,:,:,:)
324- integer , intent (in ), dimension (5 ), optional :: istart, iend
324+ integer , intent (in ), dimension (5 ), optional :: istart, iend, stride
325325end subroutine
326326
327- module subroutine h5read_6d (self , dname , A , istart , iend )
327+ module subroutine h5read_6d (self , dname , A , istart , iend , stride )
328328class(hdf5_file), intent (in ) :: self
329329character (* ), intent (in ) :: dname
330330class(* ), intent (inout ) :: A(:,:,:,:,:,:)
331- integer , intent (in ), dimension (6 ), optional :: istart, iend
331+ integer , intent (in ), dimension (6 ), optional :: istart, iend, stride
332332end subroutine
333333
334- module subroutine h5read_7d (self , dname , A , istart , iend )
334+ module subroutine h5read_7d (self , dname , A , istart , iend , stride )
335335class(hdf5_file), intent (in ) :: self
336336character (* ), intent (in ) :: dname
337337class(* ), intent (inout ) :: A(:,:,:,:,:,:,:)
338- integer , intent (in ), dimension (7 ), optional :: istart, iend
338+ integer , intent (in ), dimension (7 ), optional :: istart, iend, stride
339339end subroutine
340340
341341end interface
@@ -538,13 +538,14 @@ module logical function is_hdf5(filename)
538538character (* ), intent (in ) :: filename
539539end function
540540
541- module subroutine mpi_hyperslab (mem_dims , dset_dims , dset_id , filespace , memspace , istart , iend )
541+ module subroutine mpi_hyperslab (mem_dims , dset_dims , dset_id , filespace , memspace , istart , iend , stride )
542542! ! Each process defines dataset in memory and writes it to the hyperslab in the file.
543543integer (HSIZE_T), dimension (:), intent (in ) :: mem_dims, dset_dims
544544integer (HID_T), intent (in ) :: dset_id
545545integer (HID_T), intent (inout ) :: filespace, memspace
546546integer , dimension (:), intent (in ) :: istart
547547integer , dimension (size (istart)), intent (in ) :: iend
548+ integer , dimension (size (istart)), intent (in ), optional :: stride
548549end subroutine
549550
550551module integer (HID_T) function mpi_collective(dname) result(xfer_id)
0 commit comments