1 | *
|
---|
2 | * $Id: mnwarn.F,v 1.1.1.1 2003-06-11 14:18:30 cmv Exp $
|
---|
3 | *
|
---|
4 | * $Log: not supported by cvs2svn $
|
---|
5 | * Revision 1.1.1.1 1996/03/07 14:31:32 mclareni
|
---|
6 | * Minuit
|
---|
7 | *
|
---|
8 | *
|
---|
9 | #include "minuit/pilot.h"
|
---|
10 | SUBROUTINE MNWARN(COPT,CORG,CMES)
|
---|
11 | C If COPT='W', CMES is a WARning message from CORG.
|
---|
12 | C If COPT='D', CMES is a DEBug message from CORG.
|
---|
13 | C If SET WARnings is in effect (the default), this routine
|
---|
14 | C prints the warning message CMES coming from CORG.
|
---|
15 | C If SET NOWarnings is in effect, the warning message is
|
---|
16 | C stored in a circular buffer of length MAXMES.
|
---|
17 | C If called with CORG=CMES='SHO', it prints the messages in
|
---|
18 | C the circular buffer, FIFO, and empties the buffer.
|
---|
19 | #include "minuit/d506dp.inc"
|
---|
20 | #include "minuit/d506cm.inc"
|
---|
21 | CHARACTER COPT*1, CORG*(*), CMES*(*), CTYP*7
|
---|
22 | PARAMETER (MAXMES=10)
|
---|
23 | CHARACTER ORIGIN(MAXMES,2)*10, WARMES(MAXMES,2)*60
|
---|
24 | COMMON/MN7WRC/ORIGIN, WARMES
|
---|
25 | COMMON/MN7WRI/NFCWAR(MAXMES,2),ICIRC(2)
|
---|
26 | CHARACTER ENGLSH*20
|
---|
27 | C
|
---|
28 | IF (CORG(1:3).EQ.'SHO' .AND. CMES(1:3).EQ.'SHO') GO TO 200
|
---|
29 | C Either print warning or put in buffer
|
---|
30 | IF (COPT .EQ. 'W') THEN
|
---|
31 | ITYP = 1
|
---|
32 | IF (LWARN) THEN
|
---|
33 | WRITE (ISYSWR,'(A,A/A,A)') ' MINUIT WARNING IN ',CORG,
|
---|
34 | + ' ============== ',CMES
|
---|
35 | RETURN
|
---|
36 | ENDIF
|
---|
37 | ELSE
|
---|
38 | ITYP = 2
|
---|
39 | IF (LREPOR) THEN
|
---|
40 | WRITE (ISYSWR,'(A,A/A,A)') ' MINUIT DEBUG FOR ',CORG,
|
---|
41 | + ' ============== ',CMES
|
---|
42 | RETURN
|
---|
43 | ENDIF
|
---|
44 | ENDIF
|
---|
45 | C if appropriate flag is off, fill circular buffer
|
---|
46 | IF (NWRMES(ITYP) .EQ. 0) ICIRC(ITYP) = 0
|
---|
47 | NWRMES(ITYP) = NWRMES(ITYP) + 1
|
---|
48 | ICIRC(ITYP) = ICIRC(ITYP) + 1
|
---|
49 | IF (ICIRC(ITYP) .GT. MAXMES) ICIRC(ITYP) = 1
|
---|
50 | IC = ICIRC(ITYP)
|
---|
51 | ORIGIN(IC,ITYP) = CORG
|
---|
52 | WARMES(IC,ITYP) = CMES
|
---|
53 | NFCWAR(IC,ITYP) = NFCN
|
---|
54 | RETURN
|
---|
55 | C
|
---|
56 | C 'SHO WARnings', ask if any suppressed mess in buffer
|
---|
57 | 200 CONTINUE
|
---|
58 | IF (COPT .EQ. 'W') THEN
|
---|
59 | ITYP = 1
|
---|
60 | CTYP = 'WARNING'
|
---|
61 | ELSE
|
---|
62 | ITYP = 2
|
---|
63 | CTYP = '*DEBUG*'
|
---|
64 | ENDIF
|
---|
65 | IF (NWRMES(ITYP) .GT. 0) THEN
|
---|
66 | ENGLSH = ' WAS SUPPRESSED. '
|
---|
67 | IF (NWRMES(ITYP) .GT. 1) ENGLSH = 'S WERE SUPPRESSED.'
|
---|
68 | WRITE (ISYSWR,'(/1X,I5,A,A,A,A/)') NWRMES(ITYP),
|
---|
69 | + ' MINUIT ',CTYP,' MESSAGE', ENGLSH
|
---|
70 | NM = NWRMES(ITYP)
|
---|
71 | IC = 0
|
---|
72 | IF (NM .GT. MAXMES) THEN
|
---|
73 | WRITE (ISYSWR,'(A,I2,A)') ' ONLY THE MOST RECENT ',
|
---|
74 | + MAXMES,' WILL BE LISTED BELOW.'
|
---|
75 | NM = MAXMES
|
---|
76 | IC = ICIRC(ITYP)
|
---|
77 | ENDIF
|
---|
78 | WRITE (ISYSWR,'(A)') ' CALLS ORIGIN MESSAGE'
|
---|
79 | DO 300 I= 1, NM
|
---|
80 | IC = IC + 1
|
---|
81 | IF (IC .GT. MAXMES) IC = 1
|
---|
82 | WRITE (ISYSWR,'(1X,I6,1X,A,1X,A)')
|
---|
83 | + NFCWAR(IC,ITYP),ORIGIN(IC,ITYP),WARMES(IC,ITYP)
|
---|
84 | 300 CONTINUE
|
---|
85 | NWRMES(ITYP) = 0
|
---|
86 | WRITE (ISYSWR,'(1H )')
|
---|
87 | ENDIF
|
---|
88 | RETURN
|
---|
89 | END
|
---|