31 function process_arguments(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16)
result(outString)
33 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t01
34 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t02
35 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t03
36 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t04
37 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t05
38 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t06
39 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t07
40 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t08
41 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t09
42 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t10
43 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t11
44 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t12
45 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t13
46 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t14
47 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t15
48 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t16
50 CHARACTER(len = 32000) :: outstring
54 if (
present(t16)) outstring = t16 // trim(outstring)
55 if (
present(t15)) outstring = t15 // trim(outstring)
56 if (
present(t14)) outstring = t14 // trim(outstring)
57 if (
present(t13)) outstring = t13 // trim(outstring)
58 if (
present(t12)) outstring = t12 // trim(outstring)
59 if (
present(t11)) outstring = t11 // trim(outstring)
60 if (
present(t10)) outstring = t10 // trim(outstring)
61 if (
present(t09)) outstring = t09 // trim(outstring)
62 if (
present(t08)) outstring = t08 // trim(outstring)
63 if (
present(t07)) outstring = t07 // trim(outstring)
64 if (
present(t06)) outstring = t06 // trim(outstring)
65 if (
present(t05)) outstring = t05 // trim(outstring)
66 if (
present(t04)) outstring = t04 // trim(outstring)
67 if (
present(t03)) outstring = t03 // trim(outstring)
68 if (
present(t02)) outstring = t02 // trim(outstring)
69 if (
present(t01)) outstring = t01 // trim(outstring)
71 end function process_arguments
75 SUBROUTINE message(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, &
76 uni, advance, show, reset_format)
80 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t01
81 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t02
82 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t03
83 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t04
84 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t05
85 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t06
86 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t07
87 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t08
88 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t09
89 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t10
90 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t11
91 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t12
92 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t13
93 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t14
94 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t15
95 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t16
96 INTEGER,
INTENT(IN),
OPTIONAL :: uni
97 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: advance
98 LOGICAL,
INTENT(IN),
OPTIONAL :: show
99 LOGICAL,
INTENT(IN),
OPTIONAL :: reset_format
101 CHARACTER(len = 32000) :: outstring
102 CHARACTER(len = 10) :: format_string
104 CHARACTER(len = 3) :: advance_
105 logical :: reset_format_, show_
108 if (
present(show) ) show_ = show
110 if (.not. show_ )
return
114 reset_format_ = .false.
115 if (
present(uni) ) uni_ = uni
116 if (
present(advance) ) advance_ = advance
117 if (
present(reset_format) ) reset_format_ = reset_format
119 outstring = process_arguments(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16)
121 if ( reset_format_ )
then
123 call stput(format_string,
"0")
124 outstring = trim(format_string) // outstring
127 write(uni_,
'(a)', advance = advance_) trim(outstring)
132 SUBROUTINE error_message(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, &
133 uni, advance, show, raise, reset_format)
135 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t01
136 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t02
137 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t03
138 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t04
139 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t05
140 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t06
141 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t07
142 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t08
143 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t09
144 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t10
145 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t11
146 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t12
147 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t13
148 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t14
149 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t15
150 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: t16
151 INTEGER,
INTENT(IN),
OPTIONAL :: uni
152 CHARACTER(len = *),
INTENT(IN),
OPTIONAL :: advance
153 LOGICAL,
INTENT(IN),
OPTIONAL :: show
154 LOGICAL,
INTENT(IN),
OPTIONAL :: raise
155 LOGICAL,
INTENT(IN),
OPTIONAL :: reset_format
158 logical :: show_, raise_
163 if (
present(show) ) show_ = show
164 if (
present(raise) ) raise_ = raise
165 if (
present(uni) ) uni_ = uni
167 call message(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, uni_, advance, show_, reset_format)
Provides computational, mathematical, physical, and file constants.
integer, parameter nerr
Standard error file unit.
integer, parameter nout
Standard output file unit.
Module providing a logging framework.
subroutine, public stput(str, code)
generate format string
Write out concatenated strings.
subroutine, public error_message(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, uni, advance, show, raise, reset_format)
Write out an error message to stderr and call stop 1.
logical, save, public show_err
global control switch to show error messages
logical, save, public show_msg
global control switch to show normal messages
subroutine, public message(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15, t16, uni, advance, show, reset_format)
Write out an error message to stdout.