C KREPER SOURCE CHAT 05/01/13 01:06:37 5004 SUBROUTINE KREPER(NES,NSOM,U1,A1,HCM) IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION U1(NES),A1(NES,NSOM),HCM(NES,NES) DIMENSION R(3,3),T1(3),T2(3) C C Calcul des facteurs de forme en 3D C calcul de la matrice de passage du repere H.C au repere global C C NES : dim espace C NSOM : nombre de sommets C U1 : vecteur normal unitaire C A1 : sommets du triangle C HCM : matrice de passage C le repere local est orthonorme =(U1,A1.12,produit vectoriel) C DO 1 I=1,NES R(I,1)=U1(I) T1(I)=A1(I,2)-A1(I,1) 1 CONTINUE S=0.D0 DO 2 I=1,NES S = S+T1(I)*T1(I) 2 CONTINUE S = DSQRT(S) IF(S.LT.1D-10) THEN WRITE(6,*) ' >KREPER longueur cote 1 nulle' ELSE DO 3 I=1,NES T1(I)=T1(I)/S 3 CONTINUE C produit vectoriel CALL KPVEC(U1,T1,T2) DO 4 I=1,NES R(I,2)=T1(I) R(I,3)=T2(I) 4 CONTINUE C matrice inverse CALL KPINV3(R,HCM) C write(6,*) ' >KREPER : matrice R ' C CALL UTPRIN(R,NES,NES) C write(6,*) ' >KREPER : matrice inverse ' C CALL UTPRIN(HCM,NES,NES) ENDIF RETURN END