C DEFER2 SOURCE FANDEUR 14/01/22 21:15:08 7891 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 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