23 use,
intrinsic :: iso_fortran_env
47 character(len=*),
intent(in) :: filename
53 character(len=*),
intent(in) :: name
54 type(c_ptr),
intent(inout) :: var
60 type(c_ptr),
intent(in) :: var
61 type(c_ptr),
intent(out) :: name
62 type(c_ptr),
intent(out) :: type
63 type(c_ptr),
intent(out) :: default
64 type(c_ptr),
intent(out) :: section
65 type(c_ptr),
intent(out) :: desc
71 type(c_ptr),
intent(in) :: var
72 type(c_ptr),
intent(inout) :: opt
77 use,
intrinsic :: iso_fortran_env
79 type(c_ptr),
intent(in) :: opt
80 type(c_ptr),
intent(out) :: name
81 integer(int64),
intent(out) :: val
82 type(c_ptr),
intent(out) :: desc
88 character(len=*),
intent(in) :: name
89 type(c_ptr),
intent(inout) :: var
95 type(c_ptr),
intent(in) :: var
96 character(len=*),
intent(in) :: name
97 integer(c_int),
intent(out) :: val
98 integer(c_int),
intent(out) :: ierr
111 integer,
intent(in) :: iunit
112 character(len=*),
intent(in) :: var
113 integer,
optional,
intent(out):: ierr
115 type(c_ptr) :: handle, opt, name,
type, default, section, desc
116 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
179 if (.not. c_associated(handle))
then
180 write(error_unit,
'(3a)')
'ERROR: Could not find a variable named ', trim(var),
'.'
187 if (.not. c_associated(opt))
exit
191 option_ = iand(option_, not(val))
193 if (val == option_)
then
201 if (is_flag_ .and. (option_ == 0)) l = .
true.
208 character(len=*),
intent(in) :: var
209 integer,
intent(in) :: option
210 logical,
optional,
intent(in) :: is_flag
218 integer,
intent(in) :: iunit
219 character(len=*),
intent(in) :: var
220 integer,
intent(in) :: option
221 character(len=*),
intent(in),
optional :: pre
223 type(c_ptr) :: handle, opt, name, desc
224 integer(int64) :: val
225 logical :: option_found
228 if (.not. c_associated(handle))
then
229 write(iunit,
'(3a)')
'ERROR: Could not find a variable named ', trim(var),
'.'
233 option_found = .false.
237 if (.not. c_associated(opt))
exit
241 if (val == int(option, int64))
then
242 option_found = .
true.
247 write(iunit,
'(4a)', advance=
'no')
"Input:",
' [', var,
' = '
249 if (option_found)
then
252 write(iunit,
'(i6,a)', advance=
'no') option,
" (INVALID)"
254 write(iunit,
'(a)', advance=
'no')
']'
255 if (
present(pre))
then
256 write(iunit,
'(3a)')
' (', trim(pre),
')'
263 if (.not. option_found)
then
265 write(iunit,
'(a,i6,2a)')
"ERROR: invalid option ", option,
" for variable ", trim(var)
273 integer,
intent(in) :: iunit
274 character(len=*),
intent(in) :: var
275 integer,
optional,
intent(out):: ierr
277 type(c_ptr) :: handle, name,
type, default, section, desc
280 if (
present(ierr)) ierr = -1
284 if (c_associated(handle))
then
285 if (
present(ierr)) ierr = 0
299 character(len=*),
intent(in) :: var
300 character(len=*),
intent(in) :: option
302 type(c_ptr) :: handle
311 write(error_unit,
'(4a)')
"ERROR: invalid option ", trim(option),
" for variable ", trim(var)
320 character(len=*),
intent(in) :: var
322 type(c_ptr) :: handle
328 exists = c_associated(handle)
subroutine, public print_c_string(iunit, str, pre, advance)
prints the C string given by the pointer str
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)