C ERREUR SOURCE PV 11/04/08 21:15:49 6934 C C EDITION DES MESSAGES D'ERREURS C SUBROUTINE ERREUR(ITYYP) IMPLICIT INTEGER(I-N) -INC CCOPTIO -INC CCNOYAU -INC SMBLOC -INC CCASSIS EXTERNAL LONG CHARACTER*10 FMT CHARACTER*133 CHERR(2),CHEN(2) CHARACTER*80 CHLU(2) DATA FMT/'(1X,A...) '/ * ETAIT-ON DEJA EN ERREUR IF(IERR.NE.0) RETURN * * EN TETE DE MESSAGE D'ERREUR ITYP = ITYYP * NIVEAU=0 CALL ERREU1(0,CHLU,NIVEAU,NBL) IF (NBL.EQ.0) GOTO 10 CALL ERREU2(CHLU,CHEN,NBL,ITYP) * * DANS LE CAS DE MESSAGE ISSU DE LIRE ON REGARDE SI MESLIR A ETE * UTILISE. * ITYPAN=ITYP IF( ITYP.EQ.37) THEN IF( MESERR.NE.0) ITYP= MESERR MESERR=0 ENDIF * MESSAGE D'ERREUR CALL ERREU1(ITYP,CHLU,NIVEAU,NBL) IF(ITYPAN.EQ.37) NIVEAU=2 IF (NBL.EQ.0) GOTO 10 CALL ERREU2(CHLU,CHERR,NBL,ITYP) * if (niveau.gt.3) return IERR=NIVEAU C - pour les ASSISTANTS ith=0 if (nbesc.ne.0) call ooonth(ith) if (ith.ne.0) then if ( (IERR .GT. 0) .and. (ierper.lt.3) ) then MERRES = ierres SEGACT MERRES*MOD LOSIER = .TRUE. IASSER = ith SEGDES MERRES mescla = imescl(ith) jjjerr = ITYYP end if end if IERMAX=MAX0(IERR,IERMAX) * est on dans le mode erreur controle ?? if (ierper.eq.4.and.ierr.ne.0) return * IF (NIVEAU.NE.0) THEN ILON=LONG(CHEN(1)) WRITE (FMT(6:8),FMT='(I3)') ILON WRITE (IOIMP,FMT=FMT) CHEN(1) ENDIF ILON=LONG(CHERR(1)) WRITE (FMT(6:8),FMT='(I3)') ILON WRITE (IOIMP,FMT=FMT) CHERR(1) IF (NBL.GE.2) THEN ILON=LONG(CHERR(2)) WRITE (FMT(6:8),FMT='(I3)') ILON WRITE (IOIMP,FMT=FMT) CHERR(2) ENDIF IF (IIMPI.NE.0.AND.ITYP.GE.1) CALL GIBTRB 10 CONTINUE if (ierr.gt.1) call gibtrb IF (IERMAX.GT.2) CALL FIN * cas erreur fatale IF (IERR.GT.0.AND.IERPER.EQ.1) CALL FIN * cas ou on ignore les erreurs IF (IERPER.GE.3) RETURN IF (IERR.GT.0) THEN MBERR=MAX(IERR,MBERR) IF (IOLEC.NE.IOTER) THEN CALL ERREU1(-1,CHLU,NIVEAU,NBL) IF (NBL.EQ.0) RETURN CALL ERREU2(CHLU,CHERR,NBL,ITYP) ILON=LONG(CHERR(1)) WRITE (FMT(6:8),FMT='(I3)') ILON WRITE (IOIMP,FMT=FMT) CHERR(1) IOLEC=IOTER CALL GINT2 ENDIF ENDIF END