1
1
module h5mpi
2
2
3
- use , intrinsic :: iso_c_binding, only : C_NULL_CHAR
4
3
use , intrinsic :: iso_fortran_env, only : real32, real64, int32, int64, stderr= >error_unit
5
4
6
5
use mpi, only : MPI_COMM_WORLD, MPI_INFO_NULL, mpi_comm_rank
@@ -12,8 +11,11 @@ module h5mpi
12
11
13
12
implicit none (type, external )
14
13
14
+ private
15
+
15
16
integer , parameter :: mpi_h5comm = MPI_COMM_WORLD, mpi_h5info = MPI_INFO_NULL
16
17
18
+ ! > main type
17
19
type :: hdf5_file
18
20
19
21
character (:), allocatable :: filename
@@ -84,13 +86,15 @@ module h5mpi
84
86
85
87
end type mpi_tags
86
88
87
- private
88
- public :: mpi_h5comm, hdf5_file, mpi_tags, has_parallel_compression, is_hdf5, &
89
- hdf_rank_check, hdf_shape_check, mpi_collective, mpi_hyperslab, &
90
- hdf5version, h5exist, hdf5_close, &
91
- HSIZE_T, &
92
- H5T_INTEGER_F, H5T_FLOAT_F, H5T_STRING_F, &
93
- H5T_NATIVE_REAL, H5T_NATIVE_DOUBLE, H5T_NATIVE_INTEGER, H5T_NATIVE_CHARACTER, H5T_STD_I64LE
89
+
90
+ public :: mpi_h5comm, mpi_tags, has_parallel_compression
91
+ public :: hdf5_file, is_hdf5
92
+ public :: hdf_rank_check, hdf_shape_check, hdf5version, h5exist, hdf5_close
93
+ public :: mpi_collective, mpi_hyperslab
94
+
95
+ ! ! for submodules only
96
+ public :: HSIZE_T, H5T_NATIVE_REAL, H5T_NATIVE_DOUBLE, H5T_NATIVE_INTEGER, H5T_NATIVE_CHARACTER, H5T_STD_I64LE
97
+ public :: H5T_INTEGER_F, H5T_FLOAT_F, H5T_STRING_F
94
98
95
99
interface ! < write.f90
96
100
module subroutine hdf_create (self , dname , dtype , mem_dims , dset_dims , &
@@ -115,7 +119,7 @@ module subroutine write_group(self, group_path)
115
119
end subroutine write_group
116
120
117
121
module subroutine create_softlink (self , tgt , link )
118
- class(hdf5_file), intent (inout ) :: self
122
+ class(hdf5_file), intent (in ) :: self
119
123
character (* ), intent (in ) :: tgt, & ! < target path to link
120
124
link ! < soft link path to create
121
125
end subroutine create_softlink
0 commit comments