C MAPALI    SOURCE    CB215821  16/04/21    21:17:43     8920
C MAPALI     SOURCE    DJ        93/01/12    21:20:55     781
      SUBROUTINE MAPALI(XE,NBNN,WORK,B,KERRE)
C=======================================================================
C     RECHERCHE DU REPERE LOCAL DE LIA2 ( element de liaison a 2 noeuds)
C=======================================================================
      IMPLICIT INTEGER(I-N)
      IMPLICIT REAL*8(A-H,O-Z)
      DIMENSION XE(3,NBNN),B(3,3),WORK(9)
* ---------------------------------------------------
      VX2P=WORK(7)
      VY2P=WORK(8)
      VZ2P=WORK(9)
C
      VX1=XE(1,2)-XE(1,1)
      VY1=XE(2,2)-XE(2,1)
      VZ1=XE(3,2)-XE(3,1)
      VL1=SQRT(VX1*VX1+VY1*VY1+VZ1*VZ1)
      AL=VL1
      KERRE=0
      IF(AL.EQ.0.D0) THEN
         KERRE=1
         GO TO 999
      ENDIF
C
      VX3=VY1*VZ2P-VY2P*VZ1
      VY3=VX2P*VZ1-VX1*VZ2P
      VZ3=VX1*VY2P-VX2P*VY1
      VL3=SQRT(VX3*VX3+VY3*VY3+VZ3*VZ3)
C
      B(1,1)=VX1/VL1
      B(1,2)=VY1/VL1
      B(1,3)=VZ1/VL1
      B(3,1)=VX3/VL3
      B(3,2)=VY3/VL3
      B(3,3)=VZ3/VL3
      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)
 999  CONTINUE
C
*      WRITE(*,*) ' matrice  BPSS  '
*      WRITE(*,1190) ((B(IA,IC),IA=1,3),IC=1,3)
*1199  FORMAT(12(1X,E8.2))
      RETURN
      END




