gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
dc_message.f90
Go to the documentation of this file.
1! -*- mode: f90; coding: utf-8 -*-
2!-----------------------------------------------------------------------
3! Copyright (c) 2000-2026 Gtool Development Group. All rights reserved.
4!-----------------------------------------------------------------------
56 implicit none
57 private
58 public:: messagenotify
59 public:: messagesuppressmpi
60 interface messagenotify
61 module procedure messagenotifyc
62 module procedure messagenotifyi
63 end interface
65 module procedure messagesuppressmpi0
66 end interface
67 integer, save:: output_rank = -1
68contains
142 subroutine messagenotifyc(level, where, message, &
143 & i, r, d, L, n, c1, c2, c3, ca, rank_mpi )
144 use dc_types ,only: string, dp
145 use dc_string ,only: uchar, strhead, printf, cprintf
146 use dc_error ,only: storeerror, usr_errno
147 implicit none
148 character(*), intent(in) :: level
149 character(*), intent(in) :: where
150 character(*), intent(in) :: message
151 integer , intent(in), optional:: i(:), n(:)
152 real , intent(in), optional:: r(:)
153 real(DP) , intent(in), optional:: d(:)
154 logical , intent(in), optional:: L(:)
155 character(*), intent(in), optional:: c1, c2, c3
156 character(*), intent(in), optional:: ca(:)
157 integer , intent(in), optional:: rank_mpi
158 character(string) :: msg
159 continue
160 if ( invalid_rank_number( rank_mpi ) ) return
161 if ( strhead( 'ERROR', trim( uchar(level) ) ) ) then
162 msg = cprintf(message, &
163 & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
164 call storeerror(usr_errno, where, cause_c=msg)
165 elseif ( strhead( 'WARNING', trim( uchar(level) ) ) ) then
166 msg = cprintf(message, &
167 & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
168 msg=' *** WARNING [' // trim(where) // '] *** '// trim(msg)
169 call printf(fmt='%c', c1=msg)
170 else
171 msg = cprintf(message, &
172 & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
173 msg=' *** MESSAGE [' // trim(where) // '] *** ' // trim(msg)
174 call printf(fmt='%c', c1=msg)
175 endif
176 return
177 end subroutine messagenotifyc
227 subroutine messagenotifyi(number, where, message, &
228 & i, r, d, L, n, c1, c2, c3, ca, rank_mpi )
229 use dc_types ,only: dp
230 use dc_string ,only: cprintf
231 use dc_error ,only: storeerror
232 implicit none
233 integer, intent(in) :: number
234 character(*), intent(in) :: where
235 character(*), intent(in), optional:: message
236 integer , intent(in), optional:: i(:), n(:)
237 real , intent(in), optional:: r(:)
238 real(DP) , intent(in), optional:: d(:)
239 logical , intent(in), optional:: L(:)
240 character(*), intent(in), optional:: c1, c2, c3
241 character(*), intent(in), optional:: ca(:)
242 integer , intent(in), optional:: rank_mpi
243 continue
244 if ( invalid_rank_number( rank_mpi ) ) return
245 if (.not. present(message)) then
246 call storeerror(number, where)
247 else
248 call storeerror(number, where, &
249 & cause_c=cprintf( message, &
250 & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca ) )
251 endif
252 return
253 end subroutine messagenotifyi
275 subroutine messagesuppressmpi0( rank )
276 implicit none
277 integer, intent(in):: rank
278 continue
279 output_rank = rank
280 end subroutine messagesuppressmpi0
305 logical function invalid_rank_number( rank_mpi ) result(result)
306 implicit none
307 integer , intent(in), optional:: rank_mpi
308 continue
309 result = .false.
310 return
311 end function invalid_rank_number
313end module dc_message
Error handling module.
Definition dc_error.f90:454
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition dc_error.f90:891
integer, parameter, public usr_errno
-1000 or less: User-defined errors
Definition dc_error.f90:579
Message output module.
Handling character types.
Definition dc_string.f90:83
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public dp
Double Precision Real number
Definition dc_types.f90:92
integer, parameter, public string
Character length for string
Definition dc_types.f90:137