@@ -3,62 +3,42 @@ program test_deflate_props
33use , intrinsic :: iso_fortran_env, only : int64, stderr= >output_unit
44
55use hdf5, only : H5D_CHUNKED_F, H5D_CONTIGUOUS_F
6- use mpi, only : mpi_init, mpi_comm_rank, mpi_comm_size, MPI_COMM_WORLD
76
8- use h5fortran, only: hdf5_file, HSIZE_T, has_parallel_compression
7+ use h5fortran, only: hdf5_file, HSIZE_T
98
109implicit none (type, external )
1110
12- external :: mpi_finalize
13-
1411character (* ), parameter :: fn1= ' deflate1.h5'
1512integer , parameter :: N(2 ) = [50 , 1000 ], &
1613MIN_COMP = 2 ! < lots of CPUs, smaller arrays => poorer compression
1714
18- integer :: ierr, mpi_id
19-
20-
21- call mpi_init(ierr)
22- if (ierr /= 0 ) error stop " mpi_init"
23-
24- call mpi_comm_rank(MPI_COMM_WORLD, mpi_id, ierr)
25- if (ierr/= 0 ) error stop " mpi_comm_rank"
26-
27- call test_read_deflate_props(fn1, N, mpi_id)
28- if (mpi_id == 0 ) print * ,' OK: HDF5 read deflate properties'
15+ call test_read_deflate_props(fn1, N)
16+ print * ,' OK: HDF5 read deflate properties'
2917
3018call test_get_deflate(fn1)
31- if (mpi_id == 0 ) print * , ' OK: HDF5 get deflate'
32-
33- call mpi_finalize(ierr)
34- if (ierr /= 0 ) error stop " mpi_finalize"
19+ print * , ' OK: HDF5 get deflate'
3520
3621contains
3722
3823
39- subroutine test_read_deflate_props (fn , N , mpi_id )
24+ subroutine test_read_deflate_props (fn , N )
4025
4126character (* ), intent (in ) :: fn
42- integer , intent (in ) :: N(2 ), mpi_id
27+ integer , intent (in ) :: N(2 )
4328
4429type (hdf5_file) :: h5f
4530
46- integer :: fsize, layout
47- integer (int64) :: crat
31+ integer :: layout
32+ real :: fsize, crat
4833integer (HSIZE_T) :: chunks(2 )
4934
50- if (mpi_id == 0 ) then
51- inquire (file= fn, size= fsize)
52- crat = (N(1 ) * N(2 ) * 32 / 8 ) / fsize
53- print ' (A,F6.2,A,I6)' ,' #1 filesize (Mbytes): ' ,fsize/ 1e6 , ' compression ratio:' ,crat
54- if (has_parallel_compression()) then
55- if (crat < MIN_COMP) error stop ' 2D low compression'
56- else
57- print * , " test_read_deflate_props: MPI commpression was disabled, so " // fn // " was not compressed."
58- endif
59- endif
35+ call h5f% open (fn, action= ' r' )
36+
37+ fsize = real (h5f% filesize())
6038
61- call h5f% open (fn, action= ' r' , mpi= .true. )
39+ crat = (N(1 ) * N(2 ) * 32 / 8 ) / fsize
40+ print ' (A,F6.2,A,f7.1)' ,' #1 filesize (Mbytes): ' ,fsize/ 1e6 , ' compression ratio:' ,crat
41+ if (crat < MIN_COMP) error stop ' 2D low compression'
6242
6343layout = h5f% layout(' /A' )
6444if (layout /= H5D_CHUNKED_F) error stop ' #1 not chunked layout: ' // fn
@@ -85,15 +65,9 @@ subroutine test_get_deflate(fn)
8565
8666type (hdf5_file) :: h5f
8767
88- call h5f% open (fn, action= ' r' , mpi= .true. )
89-
90- if (h5f% parallel_compression) then
91- if (.not. h5f% deflate(" /A" )) error stop " test_get_deflate: expected deflate MPI"
92- else
93- if (h5f% deflate(" /A" )) error stop " test_get_deflate: expected no deflate MPI"
94- endif
68+ call h5f% open (fn, action= ' r' )
9569
96- if (.not. h5f% deflate(" /noMPI " )) error stop " expected deflate as dataset was written without MPI "
70+ if (.not. h5f% deflate(" /A " )) error stop " test_get_deflate: expected deflate"
9771
9872call h5f% close ()
9973
0 commit comments