xerrwd(3f) - [M_odepack::Matrix] Write error message with values.
subroutine xerrwd(Msg,Nmes,Nerr,Level,Ni,I1,I2,Nr,R1,R2)
character(len=*),intent(in) :: Msg
integer :: Nmes
integer :: Nerr
integer,intent(in) :: Level
integer,intent(in) :: Ni
integer,intent(in) :: I1
integer,intent(in) :: I2
integer,intent(in) :: Nr
real(kind=dp),intent(in) :: R1
real(kind=dp),intent(in) :: R2
Subroutines XERRWD, XSETF, XSETUN, and the function routine IXSAV, as given here, constitute a simplified version of the SLATEC error handling package.
All arguments are input arguments.
The message (character array).
The length of MSG (number of characters).
The error number (not used).
The error level.. 0 or 1 means recoverable (control returns to caller). 2 means fatal (run is aborted–see note below).
Number of integers (0, 1, or 2) to be printed with message.
Integers to be printed, depending on NI.
Number of reals (0, 1, or 2) to be printed with message.
Reals to be printed, depending on NR.
Note.. this routine is machine-dependent and specialized for use in limited context, in the following ways..
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | Msg | |||
integer | :: | Nmes | ||||
integer | :: | Nerr | ||||
integer, | intent(in) | :: | Level | |||
integer, | intent(in) | :: | Ni | |||
integer, | intent(in) | :: | I1 | |||
integer, | intent(in) | :: | I2 | |||
integer, | intent(in) | :: | Nr | |||
real(kind=dp), | intent(in) | :: | R1 | |||
real(kind=dp), | intent(in) | :: | R2 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | lunit | ||||
integer, | public | :: | mesflg |
subroutine xerrwd(Msg,Nmes,Nerr,Level,Ni,I1,I2,Nr,R1,R2) character(len=*),intent(in) :: Msg integer :: Nmes integer :: Nerr integer,intent(in) :: Level integer,intent(in) :: Ni integer,intent(in) :: I1 integer,intent(in) :: I2 integer,intent(in) :: Nr real(kind=dp),intent(in) :: R1 real(kind=dp),intent(in) :: R2 integer :: lunit , mesflg ! Get LUN (logical unit number) and message print flag. lunit = ixsav(1,0,.false.) mesflg = ixsav(2,0,.false.) if ( mesflg/=0 ) then ! Write the message. write (lunit,'(1x,a)') Msg if ( Ni==1 ) write (lunit,"(6x,'In above message, I1 =',i10)") I1 if ( Ni==2 ) write (lunit,"(6x,'In above message, I1 =',i10,3x,'I2 =',i10)") I1 , I2 if ( Nr==1 ) write (lunit,"(6x,'In above message, R1 =',d21.13)") R1 if ( Nr==2 ) write (lunit,"(6x,'In above, R1 =',d21.13,3x,'R2 =',d21.13)") R1 , R2 endif ! Abort the run if LEVEL = 2. if ( Level==2 ) stop end subroutine xerrwd