23 use,
intrinsic :: iso_fortran_env
48 character(kind=c_char),
intent(in) :: filename(*)
54 character(kind=c_char),
intent(in) :: name(*)
55 type(c_ptr),
intent(inout) :: var
61 type(c_ptr),
intent(in) :: var
62 type(c_ptr),
intent(out) :: name
63 type(c_ptr),
intent(out) :: type
64 type(c_ptr),
intent(out) :: default
65 type(c_ptr),
intent(out) :: section
66 type(c_ptr),
intent(out) :: desc
72 type(c_ptr),
intent(in) :: var
73 type(c_ptr),
intent(inout) :: opt
78 use,
intrinsic :: iso_fortran_env
80 type(c_ptr),
intent(in) :: opt
81 type(c_ptr),
intent(out) :: name
82 integer(int64),
intent(out) :: val
83 type(c_ptr),
intent(out) :: desc
89 character(kind=c_char),
intent(in) :: name(*)
90 type(c_ptr),
intent(inout) :: var
96 type(c_ptr),
intent(in) :: var
97 character(kind=c_char),
intent(in) :: name(*)
98 integer,
intent(out) :: val
99 integer,
intent(out) :: ierr
112 integer,
intent(in) :: iunit
113 character(len=*),
intent(in) :: var
114 integer,
optional,
intent(out):: ierr
116 type(c_ptr) :: handle, opt, name,
type, default, section, desc
117 integer(int64) :: val
121 if (.not. c_associated(handle))
then
122 if (
present(ierr))
then
126 write(iunit,
'(3a)')
'ERROR: Could not find a variable named ', trim(var),
'.'
131 if (
present(ierr)) ierr = 0
138 write(iunit,
'(a)')
"Description:"
145 if (.not. c_associated(opt))
then
149 write(iunit,
'(a)')
"Available options:"
163 character(len=*),
intent(in) :: var
164 integer(int64),
intent(in) :: option
165 logical,
optional,
intent(in) :: is_flag
167 type(c_ptr) :: handle, opt, name, desc
168 integer(int64) :: val, option_
172 if (
present(is_flag)) is_flag_ = is_flag
178 if (.not. c_associated(handle))
then
179 write(0,
'(3a)')
'ERROR: Could not find a variable named ', trim(var),
'.'
186 if (.not. c_associated(opt))
exit
190 option_ = iand(option_, not(val))
192 if (val == option_)
then
200 if (is_flag_ .and. (option_ == 0)) l = .
true.
207 character(len=*),
intent(in) :: var
208 integer,
intent(in) :: option
209 logical,
optional,
intent(in) :: is_flag
217 integer,
intent(in) :: iunit
218 character(len=*),
intent(in) :: var
219 integer,
intent(in) :: option
220 character(len=*),
intent(in),
optional :: pre
222 type(c_ptr) :: handle, opt, name, desc
223 integer(int64) :: val
224 logical :: option_found
225 character(kind=c_char) :: cvar(
c_str_len(var))
229 if (.not. c_associated(handle))
then
230 write(iunit,
'(3a)')
'ERROR: Could not find a variable named ', trim(var),
'.'
234 option_found = .false.
238 if (.not. c_associated(opt))
exit
242 if (val == int(option, int64))
then
243 option_found = .
true.
248 write(iunit,
'(4a)', advance=
'no')
"Input:",
' [', var,
' = '
250 if (option_found)
then
253 write(iunit,
'(i6,a)', advance=
'no') option,
" (INVALID)"
255 write(iunit,
'(a)', advance=
'no')
']'
256 if (
present(pre))
then
257 write(iunit,
'(3a)')
' (', trim(pre),
')'
264 if (.not. option_found)
then
266 write(iunit,
'(a,i6,2a)')
"ERROR: invalid option ", option,
" for variable ", trim(var)
274 integer,
intent(in) :: iunit
275 character(len=*),
intent(in) :: var
276 integer,
optional,
intent(out):: ierr
278 type(c_ptr) :: handle, name,
type, default, section, desc
281 if (
present(ierr)) ierr = -1
285 if (c_associated(handle))
then
286 if (
present(ierr)) ierr = 0
300 character(len=*),
intent(in) :: var
301 character(len=*),
intent(in) :: option
303 type(c_ptr) :: handle
311 write(0,
'(4a)')
"ERROR: invalid option ", trim(option),
" for variable ", trim(var)
320 character(len=*),
intent(in) :: var
322 character(kind=c_char) :: cvar(
c_str_len(var))
323 type(c_ptr) :: handle
330 exists = c_associated(handle)
character(kind=c_char, len=1) function, dimension(:), allocatable, public string_f_to_c(f_string)
convert a Fortran string to a C string
subroutine, public print_c_string(iunit, str, pre, advance)
prints the C string given by the pointer str
integer pure function, public c_str_len(fortran_char)
Convert fortran character length to C character length.
subroutine, public varinfo_print_option(iunit, var, option, pre)
logical function varinfo_valid_option_8(var, option, is_flag)
subroutine, public varinfo_print(iunit, var, ierr)
logical function varinfo_valid_option_4(var, option, is_flag)
subroutine, public varinfo_search(iunit, var, ierr)
logical function, public varinfo_exists(var)
integer function, public varinfo_option(var, option)