C DEFER2    SOURCE    BP208322  15/06/22    21:17:01     8543

C=======================================================================
C=  Parametres :                                                       =
C=  ------------                                                       =
C=   INPLAS   (E)   Numero de materiau inelastique                     =
C=   MFR      (E)   Formulation associee a l'element                   =
C=   MELE     (E)   Numero de l'element fini (cf. NOMTP dans CCHAMP)   =
C=   IB       (E)   Numero de l'element dans la zone elementaire       =
C=   IGAU     (E)   Numero du point de Gauss                           =
C=   KERR1    (E)   Indice d'erreur                                    =
C=   KERRE    (E)   Indice d'erreur                                    =
C=======================================================================

      SUBROUTINE DEFER2 (INPLAS,MFR,MELE,IB,IGAU,KERR1,KERRE)

      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8 (A-H,O-Z)


-INC PPARAM
-INC CCOPTIO
-INC CCHAMP

      PARAMETER (NUERRM=5)
      CHARACTER*72 CHERRU(NUERRM)

      IF (KERRE.EQ.0) RETURN
      IF (KERR1.EQ.2) RETURN

C=  Impression de quelques messages d erreurs
C= -------------------------------------------
      INTERR(1)=IB
      INTERR(2)=IGAU
      INTERR(3)=ABS(INPLAS)
      MOTERR(1:4)=NOMTP(MELE)

C= ---
C=  1 - Cas ou KERR1 = 1
C= ---
      IF (KERR1.EQ.1) THEN
        CALL ERREUR(KERRE)
        CALL ERREUR(267)
C= ---
C=  2 - Cas ou KERR1 = 0
C= ---
      ELSE IF (KERR1.EQ.0) THEN
        IF (KERRE.EQ.1) THEN
          CALL ERREUR(267)
        ELSE IF (KERRE.EQ.2) THEN
          CALL ERREUR(268)
        ELSE IF (KERRE.EQ.7) THEN
          CALL ERREUR(355)
        ELSE IF (KERRE.EQ.21) THEN
          CALL ERREUR(276)
        ELSE IF (KERRE.EQ.22) THEN
          CALL ERREUR(275)
        ELSE IF (KERRE.EQ.30) THEN
          CALL ERREUR(270)
        ELSE IF (KERRE.EQ.31) THEN
          CALL ERREUR(271)
        ELSE IF (KERRE.EQ.32) THEN
          CALL ERREUR(272)
        ELSE IF (KERRE.EQ.33) THEN
          CALL ERREUR(273)
        ELSE IF (KERRE.EQ.34) THEN
          CALL ERREUR(325)
        ELSE IF (KERRE.EQ.35) THEN
          CALL ERREUR(331)
        ELSE IF (KERRE.EQ.36) THEN
          CALL ERREUR(330)
        ELSE IF (KERRE.EQ.37) THEN
          CALL ERREUR(354)
        ELSE IF (KERRE.EQ.38) THEN
          CALL ERREUR(360)
        ELSE IF (KERRE.EQ.48) THEN
          CALL ERREUR(366)
        ELSE IF (KERRE.EQ.49) THEN
          CALL ERREUR(365)
        ELSE IF (KERRE.EQ.50) THEN
          CALL ERREUR(464)
        ELSE IF (KERRE.EQ.51) THEN
          CALL ERREUR(529)
        ELSE IF (KERRE.EQ.52) THEN
          CALL ERREUR(366)
        ELSE IF (KERRE.EQ.53) THEN
          CALL ERREUR(530)
        ELSE IF (KERRE.EQ.54) THEN
          CALL ERREUR(564)
        ELSE IF (KERRE.EQ.55) THEN
          CALL ERREUR(561)
        ELSE IF (KERRE.EQ.56) THEN
          CALL ERREUR(562)
        ELSE IF (KERRE.EQ.57) THEN
          CALL ERREUR(604)
        ELSE IF (KERRE.EQ.58) THEN
          CALL ERREUR(605)
        ELSE IF (KERRE.EQ.59) THEN
          CALL ERREUR(606)
        ELSE IF (KERRE.EQ.60) THEN
          CALL ERREUR(619)
        ELSE IF (KERRE.EQ.61) THEN
          CALL ERREUR(652)
        ELSE IF (KERRE.EQ.62) THEN
          CALL ERREUR(653)
        ELSE IF (KERRE.EQ.63) THEN
          CALL ERREUR(268)
        ELSE IF (KERRE.EQ.64) THEN
          CALL ERREUR(655)
        ELSE IF (KERRE.EQ.65) THEN
          CALL ERREUR(656)
        ELSE IF (KERRE.EQ.66) THEN
          CALL ERREUR(657)
        ELSE IF (KERRE.EQ.67) THEN
          CALL ERREUR(658)
        ELSE IF (KERRE.EQ.68) THEN
          CALL ERREUR(659)
        ELSE IF (KERRE.EQ.69) THEN
          CALL ERREUR(714)
        ELSE IF (KERRE.EQ.70) THEN
          CALL ERREUR(654)
        ELSE IF (KERRE.EQ.71) THEN
          CALL ERREUR(412)
        ELSE IF (KERRE.EQ.72) THEN
          CALL ERREUR(923)
        ELSE IF (KERRE.EQ.73) THEN
          CALL ERREUR(924)
        ELSE IF (KERRE.EQ.75) THEN
          CALL ERREUR(876)
        ELSE IF (KERRE.EQ.82) THEN
          CALL ERREUR(895)
        ELSE IF (KERRE.EQ.90) THEN
          CALL ERREUR(958)
        ELSE IF (KERRE.EQ.99) THEN
          MOTERR(1:4)=NOMAC(INPLAS)
          MOTERR(5:12)=NOMFR(MFR)
          CALL ERREUR(269)
        ELSE
          CALL ERREUR (563)
        ENDIF
C= ---
C=  3 - Cas ou KERR1 < 0
C=      Modeles EXTERNES integres par UMAT ou CREEP
C=      Code erreur renvoye par la programmation de l'utilisateur
C= ---
C=      Dans le cas d'un modele NON_LINEAIRE UTILISATEUR integre par
C=      UMAT, l'utilisateur a alors la possibilite de completer le
C=      message d'erreur (965) en adaptant le sousprogramme UMAERR
C=      a son modele (via le numero declare dans l'operateur MODELE).
C= ---
      ELSE IF (KERR1.LT.0) THEN
C*      CMATE=MOTERR(5:20)
        IF (ABS(KERRE).EQ.92) THEN
          ISIGN=ABS(KERRE)/KERRE
          IRET=ISIGN*(-1-KERR1)
          INTERR(1)=-1
          INTERR(2)=IRET
          CALL ERREUR(965)
          IF (IRET.EQ.251) THEN
            CALL ERREUR(251)
            CALL ERREUR(5)
          ENDIF
          CALL UMAERR(MOTERR(5:20),IRET,NBLIG,CHERRU,NUERRM)
          NBLIG=MAX(0,MIN(NBLIG,NUERRM))
          DO i=1,NBLIG
            WRITE(IOIMP,10) CHERRU(i)
          ENDDO
 10       FORMAT(1X,A)
        ELSE IF (ABS(KERRE).EQ.93) THEN
          ISIGN=ABS(KERRE)/KERRE
          IRET=ISIGN*(-1-KERR1)
          INTERR(1)=-2
          INTERR(2)=IRET
          CALL ERREUR(962)
          IF (IRET.EQ.251) THEN
            CALL ERREUR(251)
            CALL ERREUR(5)
          ENDIF
        ELSE
          CALL ERREUR(563)
        ENDIF
      ENDIF

      RETURN
      END



