C PASSA     SOURCE    CHAT      05/01/13    02:09:44     5004
      SUBROUTINE PASSA(XE,YE,ZE,P,X13,X23,Y13,Y23)
C=======================================================================
C
C    CALCULE MATRICE DE PASSAGE POUR UN TRIANGLE
C
C    ENTREE
C     XE(3) YE(3) ZE(3) =COORDONNEES DU TRIANGLE
C    SOTRIES
C     P(3,3)  = MATRICE DE PASSAGE
C     X13 X23 Y13 Y23 = DIFFERENCES DES COORDONNEES DE L ELEMENT
C
C     AOUT 84
C====================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
       DIMENSION XE(*),YE(*),ZE(*),P(3,3)
      XE12=XE(1)-XE(2)
      XE13=XE(1)-XE(3)
      XE23=XE(2)-XE(3)
      YE12=YE(1)-YE(2)
      YE13=YE(1)-YE(3)
      YE23=YE(2)-YE(3)
      ZE12=ZE(1)-ZE(2)
      ZE13=ZE(1)-ZE(3)
      ZE23=ZE(2)-ZE(3)
      A=1.D0/SQRT(XE12*XE12+YE12*YE12+ZE12*ZE12)
      AI=A
      P(1,1)=-XE12*AI
      P(1,2)=-YE12*AI
      P(1,3)=-ZE12*AI
      AK=-(XE13*P(1,1)+YE13*P(1,2)+ZE13*P(1,3))/(XE12*P(1,1)+YE12*P(1,2)
     1+ZE12*P(1,3))
      XA3=XE13+AK*XE12
      YA3=YE13+AK*YE12
      ZA3=ZE13+AK*ZE12
      A=1.D0/SQRT(XA3*XA3+YA3*YA3+ZA3*ZA3)
      AJ=A
      P(2,1)=-XA3*AJ
      P(2,2)=-YA3*AJ
      P(2,3)=-ZA3*AJ
      P(3,1)=P(1,2)*P(2,3)-P(1,3)*P(2,2)
       P(3,2)=P(1,3)*P(2,1)-P(1,1)*P(2,3)
      P(3,3)=P(1,1)*P(2,2)-P(1,2)*P(2,1)
      X13=P(1,1)*XE13+P(1,2)*YE13+P(1,3)*ZE13
      X23=P(1,1)*XE23+P(1,2)*YE23+P(1,3)*ZE23
      Y13=P(2,1)*XE13+P(2,2)*YE13+P(2,3)*ZE13
      Y23=P(2,1)*XE23+P(2,2)*YE23+P(2,3)*ZE23
      RETURN
       END

