Skip to content

Commit 7563acc

Browse files
committed
example: reopen same file, same mode
1 parent d000c7c commit 7563acc

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

cmake/check_hdf5.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ program main
1717
print '(a,i0)', "H5F_ACC_TRUNC_F = ", H5F_ACC_TRUNC_F
1818
print '(a,i0)', "H5F_ACC_RDWR_F = ", H5F_ACC_RDWR_F
1919

20-
if(H5F_ACC_RDONLY_F == H5F_ACC_TRUNC_F .or. H5F_ACC_RDONLY_F == H5F_ACC_RDWR_F) then
20+
if(any(H5F_ACC_RDONLY_F == [H5F_ACC_TRUNC_F, H5F_ACC_RDWR_F])) then
2121
error stop "H5F_ACC_RDONLY, H5F_ACC_TRUNC, H5F_ACC_RDWR are not all distinct"
2222
endif
2323

example/CMakeLists.txt

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.22...3.27)
1+
cmake_minimum_required(VERSION 3.22...4.1)
22

33
project(h5fortranExample
44
LANGUAGES C CXX Fortran)
@@ -11,21 +11,13 @@ find_package(h5fortran CONFIG REQUIRED)
1111
add_library(fortran_interface fortran_interface.f90)
1212
target_link_libraries(fortran_interface PRIVATE h5fortran::h5fortran)
1313

14-
add_executable(ex_fcn ex_fcn.f90)
15-
target_link_libraries(ex_fcn PRIVATE h5fortran::h5fortran)
16-
add_test(NAME Fortran_fcn COMMAND ex_fcn)
14+
foreach(t IN ITEMS ex_fcn ex_oo ex_oo3d char_repeat_read vtk_write)
1715

18-
add_executable(ex_oo ex_oo.f90)
19-
target_link_libraries(ex_oo PRIVATE h5fortran::h5fortran)
20-
add_test(NAME Fortran_oo COMMAND ex_oo)
16+
add_executable(${t} ${t}.f90)
17+
target_link_libraries(${t} PRIVATE h5fortran::h5fortran)
18+
add_test(NAME Fortran_${t} COMMAND ${t})
2119

22-
add_executable(repeat_char_read char_repeat_read.f90)
23-
target_link_libraries(repeat_char_read PRIVATE h5fortran::h5fortran)
24-
25-
## VTK HDF5 write example
26-
add_executable(vtk_write vtk_write.f90)
27-
target_link_libraries(vtk_write PRIVATE h5fortran::h5fortran)
28-
add_test(NAME VTK COMMAND vtk_write ${CMAKE_CURRENT_BINARY_DIR}/vtk.hdf)
20+
endforeach()
2921

3022
## C, C++ examples
3123

@@ -45,11 +37,15 @@ add_test(NAME CPP_fcn COMMAND cpp_fcn)
4537
get_property(test_names DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY TESTS)
4638
set_property(TEST ${test_names} PROPERTY WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
4739

40+
if(NOT DEFINED LINUX AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
41+
set(LINUX true)
42+
endif()
43+
4844
if(WIN32)
4945
set_property(TEST ${test_names} PROPERTY
5046
ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${ZLIB_INCLUDE_DIRS}/../bin;PATH=path_list_prepend:${h5fortran_DIR}/../bin"
5147
)
52-
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
48+
elseif(LINUX)
5349
set_property(TEST ${test_names} PROPERTY
5450
ENVIRONMENT_MODIFICATION "LD_LIBRARY_PATH=path_list_prepend:${ZLIB_INCLUDE_DIRS}/../lib;LD_LIBRARY_PATH=path_list_prepend:${h5fortran_DIR}/../lib"
5551
)

example/vtk_write.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ program vtk_write
2626
real, allocatable :: Iterations(:,:,:), IterationsGradient(:,:,:,:)
2727

2828
call get_command_argument(1, filename, status=ierr)
29-
if(ierr /= 0) error stop "please give filename to write"
29+
if(ierr /= 0) filename = "vtk_hdf_example.h5"
3030

3131
call h % open(filename, 'w')
3232

0 commit comments

Comments
 (0)