GNU Octave 10.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 
Loading...
Searching...
No Matches
xerrwd.f
Go to the documentation of this file.
1
2*DECK XERRWD
3 SUBROUTINE xerrwd (MSG, NMES, NERR, LEVEL, NI, I1, I2, NR, R1, R2)
4C***BEGIN PROLOGUE XERRWD
5C***SUBSIDIARY
6C***PURPOSE Write error message with values.
7C***LIBRARY MATHLIB
8C***CATEGORY R3C
9C***TYPE DOUBLE PRECISION (XERRWV-S, XERRWD-D)
10C***AUTHOR Hindmarsh, Alan C., (LLNL)
11C***DESCRIPTION
12C
13C Subroutines XERRWD, XSETF, XSETUN, and the function routine IXSAV,
14C as given here, constitute a simplified version of the SLATEC error
15C handling package.
16C
17C All arguments are input arguments.
18C
19C MSG = The message (character array).
20C NMES = The length of MSG (number of characters).
21C NERR = The error number (not used).
22C LEVEL = The error level..
23C 0 or 1 means recoverable (control returns to caller).
24C 2 means fatal (run is aborted--see note below).
25C NI = Number of integers (0, 1, or 2) to be printed with message.
26C I1,I2 = Integers to be printed, depending on NI.
27C NR = Number of reals (0, 1, or 2) to be printed with message.
28C R1,R2 = Reals to be printed, depending on NR.
29C
30C Note.. this routine is machine-dependent and specialized for use
31C in limited context, in the following ways..
32C 1. The argument MSG is assumed to be of type CHARACTER, and
33C the message is printed with a format of (1X,A).
34C 2. The message is assumed to take only one line.
35C Multi-line messages are generated by repeated calls.
36C 3. If LEVEL = 2, control passes to the statement STOP
37C to abort the run. This statement may be machine-dependent.
38C 4. R1 and R2 are assumed to be in double precision and are printed
39C in D21.13 format.
40C
41C***ROUTINES CALLED IXSAV
42C***REVISION HISTORY (YYMMDD)
43C 920831 DATE WRITTEN
44C 921118 Replaced MFLGSV/LUNSAV by IXSAV. (ACH)
45C 930329 Modified prologue to SLATEC format. (FNF)
46C 930407 Changed MSG from CHARACTER*1 array to variable. (FNF)
47C 930922 Minor cosmetic change. (FNF)
48C***END PROLOGUE XERRWD
49C
50C*Internal Notes:
51C
52C For a different default logical unit number, IXSAV (or a subsidiary
53C routine that it calls) will need to be modified.
54C For a different run-abort command, change the statement following
55C statement 100 at the end.
56C-----------------------------------------------------------------------
57C Subroutines called by XERRWD.. None
58C Function routine called by XERRWD.. IXSAV
59C-----------------------------------------------------------------------
60C**End
61C
62C Declare arguments.
63C
64 DOUBLE PRECISION R1, R2
65 INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR
66 CHARACTER*(*) MSG
67C
68C Declare local variables.
69C
70 INTEGER LUNIT, IXSAV, MESFLG
71C
72C Get logical unit number and message print flag.
73C
74C***FIRST EXECUTABLE STATEMENT XERRWD
75 lunit = ixsav(1, 0, .false.)
76 mesflg = ixsav(2, 0, .false.)
77 IF (mesflg .EQ. 0) GO TO 100
78C
79C Write the message.
80C
81 WRITE (lunit,10) msg(1:nmes)
82 10 FORMAT(1x,a)
83 IF (ni .EQ. 1) WRITE (lunit, 20) i1
84 20 FORMAT(6x,'In above message, I1 =',i10)
85 IF (ni .EQ. 2) WRITE (lunit, 30) i1,i2
86 30 FORMAT(6x,'In above message, I1 =',i10,3x,'I2 =',i10)
87 IF (nr .EQ. 1) WRITE (lunit, 40) r1
88 40 FORMAT(6x,'In above message, R1 =',d21.13)
89 IF (nr .EQ. 2) WRITE (lunit, 50) r1,r2
90 50 FORMAT(6x,'In above, R1 =',d21.13,3x,'R2 =',d21.13)
91C
92C Abort the run if LEVEL = 2.
93C
94 100 IF (level .NE. 2) RETURN
95 CALL xstopx (' ')
96C----------------------- End of Subroutine XERRWD ----------------------
97 END
subroutine xerrwd(msg, nmes, nerr, level, ni, i1, i2, nr, r1, r2)
Definition xerrwd.f:4