@@ -86,7 +86,15 @@ module h5fortran
86
86
public :: hdf5_file, is_hdf5
87
87
public :: hdf_rank_check, hdf_shape_check, hdf5version, h5exist, hdf5_close
88
88
public :: mpi_collective, mpi_hyperslab
89
- public :: h5write_attr, h5read_attr
89
+ public :: h5write, h5read, h5write_attr, h5read_attr
90
+
91
+ interface h5write
92
+ procedure lt0write, lt1write, lt2write, lt3write, lt4write, lt5write, lt6write, lt7write
93
+ end interface
94
+
95
+ interface h5read
96
+ procedure lt0read, lt1read, lt2read, lt3read, lt4read, lt5read, lt6read, lt7read
97
+ end interface
90
98
91
99
interface h5write_attr
92
100
procedure lt0writeattr, lt1writeattr
@@ -156,6 +164,99 @@ module subroutine get_hdf5_config(parallel_compression)
156
164
end subroutine
157
165
end interface
158
166
167
+ interface ! < writer_lt.f90
168
+
169
+ module subroutine lt0write (filename , dname , A )
170
+ character (* ), intent (in ) :: filename, dname
171
+ class(* ), intent (in ) :: A
172
+ end subroutine
173
+
174
+ module subroutine lt1write (filename , dname , A )
175
+ character (* ), intent (in ) :: filename, dname
176
+ class(* ), intent (in ) :: A(:)
177
+ end subroutine
178
+
179
+ module subroutine lt2write (filename , dname , A )
180
+ character (* ), intent (in ) :: filename, dname
181
+ class(* ), intent (in ) :: A(:,:)
182
+ end subroutine
183
+
184
+ module subroutine lt3write (filename , dname , A )
185
+ character (* ), intent (in ) :: filename, dname
186
+ class(* ), intent (in ) :: A(:,:,:)
187
+ end subroutine
188
+
189
+ module subroutine lt4write (filename , dname , A )
190
+ character (* ), intent (in ) :: filename, dname
191
+ class(* ), intent (in ) :: A(:,:,:,:)
192
+ end subroutine
193
+
194
+ module subroutine lt5write (filename , dname , A )
195
+ character (* ), intent (in ) :: filename, dname
196
+ class(* ), intent (in ) :: A(:,:,:,:,:)
197
+ end subroutine
198
+
199
+ module subroutine lt6write (filename , dname , A )
200
+ character (* ), intent (in ) :: filename, dname
201
+ class(* ), intent (in ) :: A(:,:,:,:,:,:)
202
+ end subroutine
203
+
204
+ module subroutine lt7write (filename , dname , A )
205
+ character (* ), intent (in ) :: filename, dname
206
+ class(* ), intent (in ) :: A(:,:,:,:,:,:,:)
207
+ end subroutine
208
+
209
+ end interface
210
+
211
+
212
+ interface ! < reader_lt.f90
213
+
214
+ module logical function h5exist(filename, dname, mpi)
215
+ character (* ), intent (in ) :: filename, dname
216
+ logical , intent (in ), optional :: mpi
217
+ end function
218
+
219
+ module subroutine lt0read (filename , dname , A )
220
+ character (* ), intent (in ) :: filename, dname
221
+ class(* ), intent (out ) :: A
222
+ end subroutine
223
+
224
+ module subroutine lt1read (filename , dname , A )
225
+ character (* ), intent (in ) :: filename, dname
226
+ class(* ), intent (inout ) :: A(:)
227
+ end subroutine
228
+
229
+ module subroutine lt2read (filename , dname , A )
230
+ character (* ), intent (in ) :: filename, dname
231
+ class(* ), intent (inout ) :: A(:,:)
232
+ end subroutine
233
+
234
+ module subroutine lt3read (filename , dname , A )
235
+ character (* ), intent (in ) :: filename, dname
236
+ class(* ), intent (inout ) :: A(:,:,:)
237
+ end subroutine
238
+
239
+ module subroutine lt4read (filename , dname , A )
240
+ character (* ), intent (in ) :: filename, dname
241
+ class(* ), intent (inout ) :: A(:,:,:,:)
242
+ end subroutine
243
+
244
+ module subroutine lt5read (filename , dname , A )
245
+ character (* ), intent (in ) :: filename, dname
246
+ class(* ), intent (inout ) :: A(:,:,:,:,:)
247
+ end subroutine
248
+
249
+ module subroutine lt6read (filename , dname , A )
250
+ character (* ), intent (in ) :: filename, dname
251
+ class(* ), intent (inout ) :: A(:,:,:,:,:,:)
252
+ end subroutine
253
+
254
+ module subroutine lt7read (filename , dname , A )
255
+ character (* ), intent (in ) :: filename, dname
256
+ class(* ), intent (inout ) :: A(:,:,:,:,:,:,:)
257
+ end subroutine
258
+ end interface
259
+
159
260
160
261
interface ! < writer.f90
161
262
@@ -284,11 +385,6 @@ module logical function hdf_check_exist(self, dname)
284
385
! ! * arrays: to work correctly when actual argument is allocatable
285
386
! ! * scalar: to work correctly with character type
286
387
287
- module logical function h5exist(filename, dname, mpi)
288
- character (* ), intent (in ) :: filename, dname
289
- logical , intent (in ) :: mpi
290
- end function
291
-
292
388
module subroutine h5read_scalar (self , dname , A )
293
389
class(hdf5_file), intent (in ) :: self
294
390
character (* ), intent (in ) :: dname
0 commit comments