@@ -86,7 +86,15 @@ module h5fortran
8686public :: hdf5_file, is_hdf5
8787public :: hdf_rank_check, hdf_shape_check, hdf5version, h5exist, hdf5_close
8888public :: 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
9098
9199interface h5write_attr
92100procedure lt0writeattr, lt1writeattr
@@ -156,6 +164,99 @@ module subroutine get_hdf5_config(parallel_compression)
156164end subroutine
157165end interface
158166
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+
159260
160261interface ! < writer.f90
161262
@@ -284,11 +385,6 @@ module logical function hdf_check_exist(self, dname)
284385! ! * arrays: to work correctly when actual argument is allocatable
285386! ! * scalar: to work correctly with character type
286387
287- module logical function h5exist(filename, dname, mpi)
288- character (* ), intent (in ) :: filename, dname
289- logical , intent (in ) :: mpi
290- end function
291-
292388module subroutine h5read_scalar (self , dname , A )
293389class(hdf5_file), intent (in ) :: self
294390character (* ), intent (in ) :: dname
0 commit comments