C NORMAL    SOURCE    CHAT      05/01/13    02:00:11     5004
      SUBROUTINE NORMAL(A,B,C,SIGMA,ANOR,ALPHA,SELAS,IBOU,ITYP)
C
C          CALCUL DE LA NORMNALE A LA SURFACE DE PLASTICITE
C
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION SIGMA(*),ANOR(*)
C            CALCUL DE M*SIGMA
      DO 1001 IA=1,IBOU
 1001 ANOR(IA)=0.
      GO TO (1,2,2,4,5,6,7,8,9,10,99,99,99,14),ITYP
    1 CONTINUE
      ANOR(1)=A*SIGMA(1)-B*(SIGMA(2)+SIGMA(3))
      ANOR(2)=A*SIGMA(2)-B*(SIGMA(3)+SIGMA(1))
      ANOR(3)=A*SIGMA(3)-B*(SIGMA(1)+SIGMA(2))
      DO 1002 IA=1,3
 1002 ANOR(IA+3)=C*SIGMA(3+IA)
      GO TO 1000
    2 CONTINUE
      ANOR(1)=ALPHA*(SIGMA(1)*A-B*SIGMA(2))
      ANOR(2)=ALPHA*(SIGMA(2)*A-B*SIGMA(1))
      ANOR(4)=       SIGMA(4)*A-B*SIGMA(5)
      ANOR(5)=       SIGMA(5)*A-B*SIGMA(4)
      ANOR(3)=C*SIGMA(3)*ALPHA
      ANOR(6)=C*SIGMA(6)
      GO TO 1000
    4 ANOR(3)=SIGMA(3)
      GO TO 1000
    5 CONTINUE
      GO TO 1000
    6 ANOR(1)=A*SIGMA(1)-B*SIGMA(2)
      ANOR(2)=A*SIGMA(2)-B*SIGMA(1)
      ANOR(4)=C*SIGMA(4)
      GO TO 1000
    7 CONTINUE
      ANOR(1)=ALPHA*A*SIGMA(1)
      ANOR(4)=      A*SIGMA(4)
      GO TO 1000
    8 ANOR(1)=SIGMA(1)
      GO TO 1000
C= Modes de calcul UNIDIMENSIONNELs (1D)
 14   ANOR(1)=A*SIGMA(1)-B*(SIGMA(2)+SIGMA(3))
      ANOR(2)=A*SIGMA(2)-B*(SIGMA(3)+SIGMA(1))
      ANOR(3)=A*SIGMA(3)-B*(SIGMA(1)+SIGMA(2))
C*    GOTO 1000
    9 CONTINUE
   10 CONTINUE
C         NORMALISATION
 1000 CONTINUE
      X=1./SELAS
      Y=0.
      DO 1003 IA=1,IBOU
      ANOR(IA)=ANOR(IA)*X
 1003 Y=Y+ANOR(IA)*ANOR(IA)
      Y=1./SQRT(Y)
      DO 1004 IA=1,IBOU
 1004 ANOR(IA)=ANOR(IA)*Y
      RETURN
  99  WRITE(6,7999)
7999  FORMAT('0 NORMAL - CAS NON IMPLEMENTE ' /)
      RETURN
      END




