@@ -104,15 +104,15 @@ module h5mpi
104
104
interface ! < write.f90
105
105
module subroutine hdf_create (self , dname , dtype , mem_dims , dset_dims , &
106
106
filespace_id , memspace , dset_id , dtype_id , &
107
- istart , iend , chunk_size , compact , charlen )
107
+ istart , iend , stride , chunk_size , compact , charlen )
108
108
109
109
class(hdf5_file), intent (in ) :: self
110
110
character (* ), intent (in ) :: dname
111
111
integer (HID_T), intent (in ) :: dtype
112
112
integer (HSIZE_T), dimension (:), intent (in ) :: mem_dims, dset_dims
113
113
integer (HID_T), intent (out ) :: filespace_id, memspace, dset_id
114
114
integer (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
116
116
logical , intent (in ), optional :: compact
117
117
integer , intent (in ), optional :: charlen ! < length of character scalar
118
118
end subroutine
@@ -152,59 +152,59 @@ module subroutine h5write_scalar(self, dname, A, compact)
152
152
logical , intent (in ), optional :: compact
153
153
end subroutine
154
154
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 )
156
156
class(hdf5_file), intent (in ) :: self
157
157
character (* ), intent (in ) :: dname
158
158
class(* ), 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
160
160
logical , intent (in ), optional :: compact
161
161
end subroutine
162
162
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 )
164
164
class(hdf5_file), intent (in ) :: self
165
165
character (* ), intent (in ) :: dname
166
166
class(* ), 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
168
168
logical , intent (in ), optional :: compact
169
169
end subroutine
170
170
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 )
172
172
class(hdf5_file), intent (in ) :: self
173
173
character (* ), intent (in ) :: dname
174
174
class(* ), 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
176
176
logical , intent (in ), optional :: compact
177
177
end subroutine
178
178
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 )
180
180
class(hdf5_file), intent (in ) :: self
181
181
character (* ), intent (in ) :: dname
182
182
class(* ), 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
184
184
logical , intent (in ), optional :: compact
185
185
end subroutine
186
186
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 )
188
188
class(hdf5_file), intent (in ) :: self
189
189
character (* ), intent (in ) :: dname
190
190
class(* ), 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
192
192
logical , intent (in ), optional :: compact
193
193
end subroutine
194
194
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 )
196
196
class(hdf5_file), intent (in ) :: self
197
197
character (* ), intent (in ) :: dname
198
198
class(* ), 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
200
200
logical , intent (in ), optional :: compact
201
201
end subroutine
202
202
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 )
204
204
class(hdf5_file), intent (in ) :: self
205
205
character (* ), intent (in ) :: dname
206
206
class(* ), 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
208
208
logical , intent (in ), optional :: compact
209
209
end subroutine
210
210
@@ -289,53 +289,53 @@ module subroutine h5read_scalar(self, dname, A)
289
289
class(* ), intent (inout ) :: A
290
290
end subroutine
291
291
292
- module subroutine h5read_1d (self , dname , A , istart , iend )
292
+ module subroutine h5read_1d (self , dname , A , istart , iend , stride )
293
293
class(hdf5_file), intent (in ) :: self
294
294
character (* ), intent (in ) :: dname
295
295
class(* ), intent (inout ) :: A(:)
296
- integer , intent (in ), dimension (1 ), optional :: istart, iend
296
+ integer , intent (in ), dimension (1 ), optional :: istart, iend, stride
297
297
end subroutine
298
298
299
- module subroutine h5read_2d (self , dname , A , istart , iend )
299
+ module subroutine h5read_2d (self , dname , A , istart , iend , stride )
300
300
class(hdf5_file), intent (in ) :: self
301
301
character (* ), intent (in ) :: dname
302
302
class(* ), intent (inout ) :: A(:,:)
303
- integer , intent (in ), dimension (2 ), optional :: istart, iend
303
+ integer , intent (in ), dimension (2 ), optional :: istart, iend, stride
304
304
end subroutine
305
305
306
- module subroutine h5read_3d (self , dname , A , istart , iend )
306
+ module subroutine h5read_3d (self , dname , A , istart , iend , stride )
307
307
class(hdf5_file), intent (in ) :: self
308
308
character (* ), intent (in ) :: dname
309
309
class(* ), intent (inout ) :: A(:,:,:)
310
- integer , intent (in ), dimension (3 ), optional :: istart, iend
310
+ integer , intent (in ), dimension (3 ), optional :: istart, iend, stride
311
311
end subroutine
312
312
313
- module subroutine h5read_4d (self , dname , A , istart , iend )
313
+ module subroutine h5read_4d (self , dname , A , istart , iend , stride )
314
314
class(hdf5_file), intent (in ) :: self
315
315
character (* ), intent (in ) :: dname
316
316
class(* ), intent (inout ) :: A(:,:,:,:)
317
- integer , intent (in ), dimension (4 ), optional :: istart, iend
317
+ integer , intent (in ), dimension (4 ), optional :: istart, iend, stride
318
318
end subroutine
319
319
320
- module subroutine h5read_5d (self , dname , A , istart , iend )
320
+ module subroutine h5read_5d (self , dname , A , istart , iend , stride )
321
321
class(hdf5_file), intent (in ) :: self
322
322
character (* ), intent (in ) :: dname
323
323
class(* ), intent (inout ) :: A(:,:,:,:,:)
324
- integer , intent (in ), dimension (5 ), optional :: istart, iend
324
+ integer , intent (in ), dimension (5 ), optional :: istart, iend, stride
325
325
end subroutine
326
326
327
- module subroutine h5read_6d (self , dname , A , istart , iend )
327
+ module subroutine h5read_6d (self , dname , A , istart , iend , stride )
328
328
class(hdf5_file), intent (in ) :: self
329
329
character (* ), intent (in ) :: dname
330
330
class(* ), intent (inout ) :: A(:,:,:,:,:,:)
331
- integer , intent (in ), dimension (6 ), optional :: istart, iend
331
+ integer , intent (in ), dimension (6 ), optional :: istart, iend, stride
332
332
end subroutine
333
333
334
- module subroutine h5read_7d (self , dname , A , istart , iend )
334
+ module subroutine h5read_7d (self , dname , A , istart , iend , stride )
335
335
class(hdf5_file), intent (in ) :: self
336
336
character (* ), intent (in ) :: dname
337
337
class(* ), intent (inout ) :: A(:,:,:,:,:,:,:)
338
- integer , intent (in ), dimension (7 ), optional :: istart, iend
338
+ integer , intent (in ), dimension (7 ), optional :: istart, iend, stride
339
339
end subroutine
340
340
341
341
end interface
@@ -538,13 +538,14 @@ module logical function is_hdf5(filename)
538
538
character (* ), intent (in ) :: filename
539
539
end function
540
540
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 )
542
542
! ! Each process defines dataset in memory and writes it to the hyperslab in the file.
543
543
integer (HSIZE_T), dimension (:), intent (in ) :: mem_dims, dset_dims
544
544
integer (HID_T), intent (in ) :: dset_id
545
545
integer (HID_T), intent (inout ) :: filespace, memspace
546
546
integer , dimension (:), intent (in ) :: istart
547
547
integer , dimension (size (istart)), intent (in ) :: iend
548
+ integer , dimension (size (istart)), intent (in ), optional :: stride
548
549
end subroutine
549
550
550
551
module integer (HID_T) function mpi_collective(dname) result(xfer_id)
0 commit comments