mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-12-22 20:35:44 +01:00
Renamed backend -> back_end for consistency + Better type names, using types in functions.
This commit is contained in:
parent
0651ef66b6
commit
73a8ef1925
@ -82,9 +82,9 @@ module trexio
|
||||
use, intrinsic :: iso_c_binding
|
||||
implicit none
|
||||
|
||||
integer, parameter :: trexio_exit_code = c_int32_t
|
||||
integer, parameter :: trexio_backend = c_int32_t
|
||||
integer, parameter :: trexio_filetype = c_int64_t
|
||||
integer, parameter :: trexio_exit_code = c_int32_t
|
||||
integer, parameter :: trexio_back_end_t = c_int32_t
|
||||
integer, parameter :: trexio_t = c_int64_t
|
||||
|
||||
character(kind=c_char), parameter :: TREXIO_DELIM = c_new_line
|
||||
#+end_src
|
||||
@ -560,15 +560,16 @@ typedef int32_t back_end_t;
|
||||
#define TREXIO_DELIM "\n"
|
||||
#+end_src
|
||||
|
||||
The helper function ~trexio_has_backend~ returns ~true~ if TREXIO compilation includes a back end provided as an argument; ~false~ otherwise.
|
||||
The helper function ~trexio_has_back_end~ returns ~true~ if TREXIO compilation includes a back end provided as an argument; ~false~ otherwise.
|
||||
This is useful due to the fact that HDF5 back end can be disabled at configure step.
|
||||
|
||||
#+begin_src c :tangle prefix_front.h
|
||||
bool trexio_has_backend(back_end_t back_end);
|
||||
bool trexio_has_back_end(back_end_t back_end);
|
||||
#+end_src
|
||||
|
||||
#+begin_src c :tangle prefix_front.c
|
||||
bool trexio_has_backend(back_end_t back_end) {
|
||||
bool trexio_has_back_end(back_end_t back_end) {
|
||||
switch (back_end) {
|
||||
case TREXIO_TEXT:
|
||||
return true;
|
||||
@ -581,20 +582,32 @@ bool trexio_has_backend(back_end_t back_end) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool trexio_has_backend(back_end_t back_end) {
|
||||
return trexio_has_back_end(back_end);
|
||||
}
|
||||
#+end_src
|
||||
|
||||
*** Fortran
|
||||
|
||||
#+begin_src f90 :tangle prefix_fortran.f90
|
||||
integer(trexio_backend), parameter :: TREXIO_HDF5 = 0
|
||||
integer(trexio_backend), parameter :: TREXIO_TEXT = 1
|
||||
! integer(trexio_backend), parameter :: TREXIO_JSON = 2
|
||||
integer(trexio_backend), parameter :: TREXIO_INVALID_BACK_END = 2
|
||||
integer(trexio_back_end_t), parameter :: TREXIO_HDF5 = 0
|
||||
integer(trexio_back_end_t), parameter :: TREXIO_TEXT = 1
|
||||
! integer(trexio_back_end_t), parameter :: TREXIO_JSON = 2
|
||||
integer(trexio_back_end_t), parameter :: TREXIO_INVALID_BACK_END = 2
|
||||
#+end_src
|
||||
|
||||
The function below is a Fortran interface for the aforementioned C-compatible ~trexio_has_backend~ function.
|
||||
The function below is a Fortran interface for the aforementioned C-compatible ~trexio_has_back_end~ function.
|
||||
|
||||
#+begin_src f90 :tangle prefix_fortran.f90
|
||||
interface
|
||||
logical(c_bool) function trexio_has_back_end (back_end) bind(C)
|
||||
use, intrinsic :: iso_c_binding
|
||||
import
|
||||
integer(c_int32_t), intent(in), value :: back_end
|
||||
end function trexio_has_back_end
|
||||
end interface
|
||||
|
||||
interface
|
||||
logical(c_bool) function trexio_has_backend (back_end) bind(C)
|
||||
use, intrinsic :: iso_c_binding
|
||||
@ -604,6 +617,9 @@ interface
|
||||
end interface
|
||||
#+end_src
|
||||
|
||||
Originally, the function was named ~trexio_has_backend~. For
|
||||
consistency, in version 2.2 it was renamed ~trexio_has_back_end~.
|
||||
|
||||
*** Python
|
||||
|
||||
#+begin_src python :tangle prefix_python.py
|
||||
@ -968,13 +984,13 @@ trexio_open(const char* file_name, const char mode,
|
||||
|
||||
#+begin_src f90 :tangle prefix_fortran.f90
|
||||
interface
|
||||
integer(c_int64_t) function trexio_open_c (filename, mode, backend, rc_open) bind(C, name="trexio_open")
|
||||
integer(c_int64_t) function trexio_open_c (filename, mode, back_end, rc_open) bind(C, name="trexio_open")
|
||||
use, intrinsic :: iso_c_binding
|
||||
import
|
||||
character(kind=c_char), dimension(*) :: filename
|
||||
character(kind=c_char), intent(in), value :: mode
|
||||
integer(trexio_backend), intent(in), value :: backend
|
||||
integer(trexio_exit_code), intent(out) :: rc_open
|
||||
character(kind=c_char), dimension(*) :: filename
|
||||
character(kind=c_char), intent(in), value :: mode
|
||||
integer(trexio_back_end_t), intent(in), value :: back_end
|
||||
integer(trexio_exit_code), intent(out) :: rc_open
|
||||
end function trexio_open_c
|
||||
end interface
|
||||
#+end_src
|
||||
@ -3736,7 +3752,7 @@ interface
|
||||
bind(C, name="trexio_write_$group_str$")
|
||||
use, intrinsic :: iso_c_binding
|
||||
import
|
||||
integer(c_int64_t), intent(in), value :: trex_file
|
||||
integer(trexio_t), intent(in), value :: trex_file
|
||||
character(kind=c_char), intent(in) :: str(*)
|
||||
integer(c_int32_t), intent(in), value :: max_str_len
|
||||
end function trexio_write_$group_str$_c
|
||||
@ -3749,7 +3765,7 @@ interface
|
||||
bind(C, name="trexio_read_$group_str$")
|
||||
use, intrinsic :: iso_c_binding
|
||||
import
|
||||
integer(c_int64_t), intent(in), value :: trex_file
|
||||
integer(trexio_t), intent(in), value :: trex_file
|
||||
character(kind=c_char), intent(out) :: str(*)
|
||||
integer(c_int32_t), intent(in), value :: max_str_len
|
||||
end function trexio_read_$group_str$_c
|
||||
@ -3761,7 +3777,7 @@ interface
|
||||
integer(trexio_exit_code) function trexio_has_$group_str$ (trex_file) bind(C)
|
||||
use, intrinsic :: iso_c_binding
|
||||
import
|
||||
integer(c_int64_t), intent(in), value :: trex_file
|
||||
integer(trexio_t), intent(in), value :: trex_file
|
||||
end function trexio_has_$group_str$
|
||||
end interface
|
||||
#+end_src
|
||||
@ -3769,7 +3785,7 @@ end interface
|
||||
#+begin_src f90 :tangle helper_read_attr_str_front_fortran.fh_90
|
||||
integer(trexio_exit_code) function trexio_read_$group_str$ (trex_file, str, max_str_len)
|
||||
implicit none
|
||||
integer(c_int64_t), intent(in), value :: trex_file
|
||||
integer(trexio_t), intent(in), value :: trex_file
|
||||
integer(c_int32_t), intent(in), value :: max_str_len
|
||||
character, intent(out) :: str(*)
|
||||
|
||||
@ -3782,7 +3798,7 @@ end interface
|
||||
integer(trexio_exit_code) function trexio_write_$group_str$ (trex_file, str, max_str_len)
|
||||
use, intrinsic :: iso_c_binding, only : c_null_char
|
||||
implicit none
|
||||
integer(c_int64_t), intent(in), value :: trex_file
|
||||
integer(trexio_t), intent(in), value :: trex_file
|
||||
integer(c_int32_t), intent(in), value :: max_str_len
|
||||
character(len=*), intent(in) :: str
|
||||
|
||||
@ -3887,18 +3903,18 @@ def has_$group_str$(trexio_file) -> bool:
|
||||
|
||||
#+begin_src f90 :tangle helper_fortran.f90
|
||||
contains
|
||||
integer(c_int64_t) function trexio_open (filename, mode, backend, rc_open)
|
||||
integer(trexio_t) function trexio_open (filename, mode, back_end, rc_open)
|
||||
use, intrinsic :: iso_c_binding, only : c_null_char
|
||||
implicit none
|
||||
character(len=*), intent(in) :: filename
|
||||
character, intent(in), value :: mode
|
||||
integer(trexio_backend), intent(in), value :: backend
|
||||
integer(trexio_exit_code), intent(out) :: rc_open
|
||||
character(len=len_trim(filename)+1) :: filename_c
|
||||
character(len=*), intent(in) :: filename
|
||||
character, intent(in), value :: mode
|
||||
integer(trexio_back_end_t), intent(in), value :: back_end
|
||||
integer(trexio_exit_code), intent(out) :: rc_open
|
||||
character(len=len_trim(filename)+1) :: filename_c
|
||||
integer(trexio_exit_code) :: rc
|
||||
|
||||
filename_c = trim(filename) // c_null_char
|
||||
trexio_open = trexio_open_c(filename_c, mode, backend, rc_open)
|
||||
trexio_open = trexio_open_c(filename_c, mode, back_end, rc_open)
|
||||
if (trexio_open == 0_8 .or. rc_open /= TREXIO_SUCCESS) then
|
||||
return
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user