dc_message::messagenotify Interface Reference

Private Member Functions

subroutine messagenotifyc (level, where, message, i, r, d, L, n, c1, c2, c3, ca, rank_mpi)
 
subroutine messagenotifyi (number, where, message, i, r, d, L, n, c1, c2, c3, ca, rank_mpi)
 

Detailed Description

Definition at line 40 of file dc_message.f90.

Member Function/Subroutine Documentation

◆ messagenotifyc()

subroutine dc_message::messagenotify::messagenotifyc ( character(*), intent(in)  level,
character(*), intent(in)  where,
character(*), intent(in)  message,
integer, dimension(:), intent(in), optional  i,
real, dimension(:), intent(in), optional  r,
real(dp), dimension(:), intent(in), optional  d,
logical, dimension(:), intent(in), optional  L,
integer, dimension(:), intent(in), optional  n,
character(*), intent(in), optional  c1,
character(*), intent(in), optional  c2,
character(*), intent(in), optional  c3,
character(*), dimension(:), intent(in), optional  ca,
integer, intent(in), optional  rank_mpi 
)
private

Definition at line 51 of file dc_message.f90.

51  !
52  !=== メッセージの出力およびエラーによる終了
53  !
54  ! メッセージを標準出力へ出力したい場合に用います。
55  !
56  ! 文字型変数 where にはプログラム名 (サブルーチン名) など、
57  ! プログラム内のどこでメッセージを出力するのかを示すものを与えます。
58  !
59  ! 文字型変数 message には、出力したい文字列を与えます。
60  ! オプション変数 i, r, d, L, s, n, c1, c2, c3 を付加する事も出来ます。
61  ! 詳細に関しては dc_string#CPrintf を参照して下さい。
62  !
63  ! 文字型変数 level は出力するメッセージの種類を決める引数で、
64  ! <b><tt>"W"</tt></b> (または<b><tt>"Warning"</tt></b>
65  ! など <b><tt>"W"</tt></b> で始まる文字)
66  ! を与える事で<b>警告</b>であることを、
67  ! <b><tt>"E"</tt></b> (または<b><tt>"Error"</tt></b>
68  ! など <b><tt>"E"</tt></b> で始まる文字) を与える事で
69  ! <b>エラー (メッセージ出力後プログラムを終了) </b>であることを、
70  ! それ以外の文字 (大抵は <b><tt>"M"</tt></b>
71  ! を与えることを想定しています)
72  ! を与える事で<b>通常のメッセージ</b>であることを指定します。
73  ! <b><tt>"E"</tt></b>を与えた場合はメッセージ出力後、プログラムを
74  ! 強制終了させます。エラーコードは dc_error#USR_ERRNO となります。
75  !
76  use dc_types ,only: string, dp
77  use dc_string ,only: uchar, strhead, printf, cprintf
78  use dc_error ,only: storeerror, usr_errno
79  implicit none
80  character(*), intent(in) :: level ! "E", "W", "M" のどれかを与える。
81  character(*), intent(in) :: where ! プログラム名、手続き名
82  character(*), intent(in) :: message ! メッセージ
83  integer , intent(in), optional:: i(:), n(:)
84  real , intent(in), optional:: r(:)
85  real(DP) , intent(in), optional:: d(:)
86  logical , intent(in), optional:: l(:)
87  character(*), intent(in), optional:: c1, c2, c3
88  character(*), intent(in), optional:: ca(:)
89  integer , intent(in), optional:: rank_mpi
90  ! MPI 使用時に, ここで指定された
91  ! ランク数のノードでのみ
92  ! メッセージ出力を行います.
93  ! 負の値を与えた場合には,
94  ! 全てのノードで出力を行います.
95  !
96  ! MPI を使用していない場合には
97  ! このオプションは無視されます.
98  !
99  ! When MPI is used, messages are
100  ! output in only node that has
101  ! this runk number.
102  ! If negative value is given,
103  ! output is done on all nodes
104  !
105  ! This option is ignored
106  ! if MPI is not used.
107  !
108  character(string) :: msg
109  continue
110  if ( invalid_rank_number( rank_mpi ) ) return
111  if ( strhead( 'ERROR', trim( uchar(level) ) ) ) then
112  msg = cprintf(message, &
113  & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
114  call storeerror(usr_errno, where, cause_c=msg)
115  elseif ( strhead( 'WARNING', trim( uchar(level) ) ) ) then
116  msg = cprintf(message, &
117  & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
118  msg=' *** WARNING [' // trim(where) // '] *** '// trim(msg)
119  call printf(fmt='%c', c1=msg)
120  else
121  msg = cprintf(message, &
122  & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
123  msg=' *** MESSAGE [' // trim(where) // '] *** ' // trim(msg)
124  call printf(fmt='%c', c1=msg)
125  endif
126  return
integer, parameter, public usr_errno
Definition: dc_error.f90:604
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
文字型変数の操作.
Definition: dc_string.f90:24
種別型パラメタを提供します。
Definition: dc_types.f90:49
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition: dc_types.f90:118

◆ messagenotifyi()

subroutine dc_message::messagenotify::messagenotifyi ( integer, intent(in)  number,
character(*), intent(in)  where,
character(*), intent(in), optional  message,
integer, dimension(:), intent(in), optional  i,
real, dimension(:), intent(in), optional  r,
real(dp), dimension(:), intent(in), optional  d,
logical, dimension(:), intent(in), optional  L,
integer, dimension(:), intent(in), optional  n,
character(*), intent(in), optional  c1,
character(*), intent(in), optional  c2,
character(*), intent(in), optional  c3,
character(*), dimension(:), intent(in), optional  ca,
integer, intent(in), optional  rank_mpi 
)
private

Definition at line 130 of file dc_message.f90.

130  !
131  !=== メッセージの出力およびエラーによる終了
132  !
133  ! 基本的にもう一方の MessageNotify (または dc_message#MessageNotifyC)
134  ! と同様ですが、こちらは第1引数に数値型変数
135  ! number をとります。この number はエラーコードとして、
136  ! そのまま dc_error#StoreError に引き渡されます。
137  ! エラーコードに関しては (dc_error を参照ください)
138  !
139  use dc_types ,only: dp
140  use dc_string ,only: cprintf
141  use dc_error ,only: storeerror, usr_errno
142  implicit none
143  integer, intent(in) :: number ! エラーコード (dc_error 参照)
144  character(*), intent(in) :: where
145  character(*), intent(in), optional:: message
146  integer , intent(in), optional:: i(:), n(:)
147  real , intent(in), optional:: r(:)
148  real(DP) , intent(in), optional:: d(:)
149  logical , intent(in), optional:: l(:)
150  character(*), intent(in), optional:: c1, c2, c3
151  character(*), intent(in), optional:: ca(:)
152  integer , intent(in), optional:: rank_mpi
153  ! MPI 使用時に, ここで指定された
154  ! ランク数のノードでのみ
155  ! メッセージ出力を行います.
156  ! 負の値を与えた場合には,
157  ! 全てのノードで出力を行います.
158  !
159  ! MPI を使用していない場合には
160  ! このオプションは無視されます.
161  !
162  ! When MPI is used, messages are
163  ! output in only node that has
164  ! this runk number.
165  ! If negative value is given,
166  ! output is done on all nodes
167  !
168  ! This option is ignored
169  ! if MPI is not used.
170  !
171  continue
172  if ( invalid_rank_number( rank_mpi ) ) return
173  if (.not. present(message)) then
174  call storeerror(number, where)
175  else
176  call storeerror(number, where, &
177  & cause_c=cprintf( message, &
178  & i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca ) )
179  endif
180  return
integer, parameter, public usr_errno
Definition: dc_error.f90:604
subroutine, public storeerror(number, where, err, cause_c, cause_i)
Definition: dc_error.f90:830
integer, parameter, public dp
倍精度実数型変数
Definition: dc_types.f90:83
文字型変数の操作.
Definition: dc_string.f90:24
種別型パラメタを提供します。
Definition: dc_types.f90:49

The documentation for this interface was generated from the following file: