24 use,
intrinsic :: iso_fortran_env
54 logical,
public :: show_progress_bar = .
true.
58 use,
intrinsic :: iso_fortran_env
60 real(real64) :: oct_clock
61 end function oct_clock
65 subroutine oct_gettimeofday(sec, usec)
67 integer,
intent(out) :: sec, usec
68 end subroutine oct_gettimeofday
72 subroutine oct_nanosleep(sec, nsec)
74 integer,
intent(in) :: sec
75 integer,
intent(in) :: nsec
76 end subroutine oct_nanosleep
85 character(kind=c_char),
intent(in) :: filename(*)
90 subroutine oct_break_c_string(str, s, line)
93 type(c_ptr),
intent(in) :: str
94 type(c_ptr),
intent(inout) :: s
95 character(kind=c_char),
intent(out) :: line(*)
96 end subroutine oct_break_c_string
106 character(kind=c_char),
intent(in) :: str(*)
107 integer,
intent(out) :: l
112 integer(c_intptr_t) function oct_get_memory_usage()
113 use iso_c_binding,
only: c_intptr_t
115 end function oct_get_memory_usage
121 character(len=*),
intent(in) :: dir
122 character(len=*),
intent(inout) :: filename
124 character(kind=c_char) :: c_name(len(filename)+1)
130 character(kind=c_char),
intent(in) :: dir(*)
131 character(kind=c_char),
intent(out) :: filename(*)
145 character(len=*),
intent(in) :: f_string
146 character(kind=c_char,len=1) :: c_string(len_trim(f_string) + 1)
150 strlen = len_trim(f_string)
153 c_string(i) = f_string(i:i)
155 c_string(strlen+1) = c_null_char
163 character(kind=c_char,len=1),
intent(in) :: c_string(*)
164 character(len=*),
intent(out) :: f_string
169 do while(c_string(i) /= c_null_char .and. i <= len(f_string))
170 f_string(i:i) = c_string(i)
173 if (i < len(f_string)) f_string(i:) =
' '
181 integer,
intent(in) :: a
183 integer,
intent(in) :: maxcount
185 if (show_progress_bar)
then
186 call oct_progress_bar(a, maxcount)
193 integer,
intent(in) :: a
194 character(len=*),
intent(in) :: s
196 integer,
allocatable :: list(:)
198 allocate(list(2**14))
202 if (list(a) == 1) inlist = .
true.
209 character(len=*),
intent(in) :: name
215 character(kind=c_char),
intent(in) :: name(*)
223 character(len=*),
intent(in) :: name
226 subroutine oct_rm(name)
bind(c)
229 character(kind=c_char),
intent(in) :: name(*)
237 character(len=*),
intent(inout) :: name
238 character(kind=c_char) :: c_name(len(name)+1)
244 character(kind=c_char),
intent(out) :: name(*)
254 character(len=*),
intent(in) :: dirname
260 character(kind=c_char),
intent(in) :: dirname(*)
269 character(len=*),
intent(in) :: var
270 character(len=*),
intent(inout) :: val
272 character(kind=c_char) :: c_val(len(val)+1)
278 character(kind=c_char),
intent(in) :: var(*)
279 character(kind=c_char),
intent(inout) :: val(*)
289 integer,
intent(in) :: errno
290 character(len=*),
intent(inout) :: res
292 character(kind=c_char) :: cres(len(res)+1)
298 integer,
intent(in) :: errno
299 character(kind=c_char),
intent(inout) :: res(*)
309 real(real64),
intent(inout) :: freq
310 integer,
intent(in) :: tag
311 integer,
intent(out) :: ierr
312 character(len=*),
intent(in) :: dirname
317 use,
intrinsic :: iso_fortran_env
319 real(real64),
intent(inout) :: freq
320 integer,
intent(in) :: tag
321 integer,
intent(out) :: ierr
322 character(kind=c_char),
intent(in) :: dirname(*)
330 character(len=*),
intent(inout) :: fpath
332 character(kind=c_char) :: path(len(fpath)+1)
337 character(kind=c_char),
intent(out) :: var(*)
347 character(len=*),
intent(in) :: path
348 character(len=*),
intent(inout) :: dir
350 character(kind=c_char) :: cdir(len(dir)+1)
354 character(kind=c_char),
intent(in) :: path(*)
355 character(kind=c_char),
intent(inout) :: dir(*)
System information (time, memory, sysname)
subroutine, public loct_rm(name)
logical function, public loct_isinstringlist(a, s)
subroutine, public loct_search_file_lr(freq, tag, ierr, dirname)
subroutine, public loct_mkdir(name)
subroutine, public loct_progress_bar(a, maxcount)
A wrapper around the progress bar, such that it can be silenced without needing to dress the call wit...
subroutine, public loct_print_recipe(dir, filename)
subroutine, public loct_strerror(errno, res)
subroutine, public loct_getenv(var, val)
subroutine, public loct_dirname(path, dir)
logical function, public loct_dir_exists(dirname)
character(kind=c_char, len=1) function, dimension(len_trim(f_string)+1), private string_f_to_c(f_string)
convert a Fortran string to a C string
subroutine, public loct_executable_path(fpath)
subroutine string_c_to_f(c_string, f_string)
convert a C string to a Fortran string
subroutine, public loct_sysname(name)
void oct_wfs_list(char *str_c, fint l[16384])
void oct_executable_path(char *path)
void oct_rm(char *name_c)
void oct_sysname(char *name_c)
int oct_number_of_lines(char *name_c)
void oct_dirname(char *fn, char *dn)
void oct_getenv(char *name_c, char *var_c)
int oct_dir_exists(char *name_c)
void oct_search_file_lr(double *freq, const fint *tag, fint *ierr, char *name_c)
void oct_mkdir(char *name_c)
void oct_strerror(const fint *err, char *res)
void oct_print_recipe(char *dir_, char *filename)