| [2403] | 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
|
|---|