20 #include "../base/base_uses.f90"
26 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'cp_parser_ilist_methods'
38 TYPE(ilist_type),
POINTER :: ilist
39 CHARACTER(LEN=*) :: token
43 cpassert(
ASSOCIATED(ilist))
44 ind = index(token,
"..")
45 READ (unit=token(:ind - 1), fmt=*) ilist%istart
46 READ (unit=token(ind + 2:), fmt=*) ilist%iend
47 IF (ilist%istart > ilist%iend) &
48 CALL cp_abort(__location__, &
49 "Invalid list range specified: "// &
50 trim(adjustl(cp_to_string(ilist%istart)))//
".."// &
51 trim(adjustl(cp_to_string(ilist%iend))))
52 ilist%nel_list = ilist%iend - ilist%istart + 1
53 ilist%ipresent = ilist%istart
65 TYPE(ilist_type),
POINTER :: ilist
67 cpassert(
ASSOCIATED(ilist))
68 ilist%ipresent = ilist%ipresent + 1
69 IF (ilist%ipresent > ilist%iend)
THEN
81 TYPE(ilist_type),
POINTER :: ilist
83 cpassert(
ASSOCIATED(ilist))
84 IF (ilist%ipresent == ilist%iend)
THEN
85 ilist%istart = huge(0)
87 ilist%nel_list = huge(0)
88 ilist%ipresent = huge(0)
89 ilist%in_use = .false.
various routines to log and control the output. The idea is that decisions about where to log should ...
a module to allow simple internal preprocessing in input files.
subroutine, public ilist_update(ilist)
updates the integer listing type
subroutine, public ilist_setup(ilist, token)
setup the integer listing type
subroutine, public ilist_reset(ilist)
updates the integer listing type
a module to allow simple internal preprocessing in input files.