C VPAST     SOURCE    CHAT      05/01/13    04:09:46     5004
      SUBROUTINE VPAST(VCORE,B)
C=======================================================================
C
C     CONSTRUCTION DE LA MATRICE DE PASSAGE
C     FAISANT PASSER DES COORDONNEES GLOBALES AUX COORDONNEES
C     LOCALES POUR UN TRIANGLE OU UN QUADRANGLE( DANS CE CAS ON PREND
C       LE PLAN S APPUYANT SUR LES 3 PREMIERS NOEUDS
C ENTREES
C    VCORE(3,3)=COORD DU TRIANGLE OU DU QUADRANGLE (1 COL = 1 PT)
C SORTIES
C    B(3,3)    =MATRICE DE PASSAGE
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION VCORE(3,*),B(3,*)
C
C
      X21=VCORE(1,2)-VCORE(1,1)
      Y21=VCORE(2,2)-VCORE(2,1)
      Z21=VCORE(3,2)-VCORE(3,1)
      X31=VCORE(1,3)-VCORE(1,1)
      Y31=VCORE(2,3)-VCORE(2,1)
      Z31=VCORE(3,3)-VCORE(3,1)
      VL12=SQRT(X21*X21+Y21*Y21+Z21*Z21)
      A1=Y21*Z31-Y31*Z21
      A2=X31*Z21-X21*Z31
      A3=X21*Y31-X31*Y21
      TWOA=SQRT(A1*A1+A2*A2+A3*A3)
C
      VL12=1.D0/VL12
      TWOA=1.D0/TWOA
      B(1,1)=X21*VL12
      B(1,2)=Y21*VL12
      B(1,3)=Z21*VL12
      B(3,1)=A1*TWOA
      B(3,2)=A2*TWOA
      B(3,3)=A3*TWOA
      B(2,1)=B(3,2)*B(1,3)-B(3,3)*B(1,2)
      B(2,2)=B(3,3)*B(1,1)-B(1,3)*B(3,1)
      B(2,3)=B(3,1)*B(1,2)-B(3,2)*B(1,1)
      RETURN
      END

