1 : C GORIEN SOURCE CHAT 05/01/13 00:19:04 5004 2 : C 3 : C 4 : INTEGER FUNCTION GORIEN(IT, N, C, IDIMC, ZERO ) 5 : C ***************************************************************** 6 : C OBJET : RENVOI L'ORIENTATION DE L'ELEMENT +1 SI POSITIF 7 : C -1 SI NEGATIF, 0 SI NUL 8 : C EN ENTREE : 9 : C IT : NUMERO DES NOEUDS DE L'ELEMENT 10 : C N : NOMBRE DE NOEUDS DE L'ELEMENT 11 : C C : COORDONNEES DES NOEUDS 12 : C IDIMC : DIMENSION DE L'ESPACE 13 : C ZERO : SURFACE CONSIDEREE COMME NULLE 14 : C CONDITIONS D'APPLICATIONS : N'A PAS DE SENS SI LA DIMENSION DE 15 : C L'ELEMENT EST INFERIEURE A LA DIMENSION DE L'ESPACE 16 : C POUR ORIENTER UN QUADRANGLE IL SUFFIT DE DONNER LE 17 : C PREMIER TRIANGLE. 18 : C ***************************************************************** 19 : IMPLICIT INTEGER(I-N) 20 : INTEGER IT(*),N,IDIMC 21 : REAL*8 C(*), ZERO 22 : C 23 : DIMENSION X(12) 24 : INTEGER I,J 25 : REAL*8 X,VX,VY,VZ,TAILLE 26 : C 27 : TAILLE = 0.0 28 : GORIEN= 0 29 : DO 10 I=1,(N-1) 30 : DO 20 J=1,IDIMC 31 : X((I-1)*IDIMC+J) = C(((IT(I+1)-1)*IDIMC)+J) 32 : > - C(((IT(I)-1)*IDIMC)+J) 33 : 20 CONTINUE 34 : 10 CONTINUE 35 : IF( IDIMC .EQ. 3 )THEN 36 : VX = (X(2) * X(6)) - (X(5) * X(3)) 37 : VY = (X(3) * X(4)) - (X(6) * X(1)) 38 : VZ = (X(1) * X(5)) - (X(4) * X(2)) 39 : ENDIF 40 : C 41 : C CAS DU SEGMENT (1D, 2D, 3D) 42 : C 43 : IF( N. EQ. 2 )THEN 44 : IF( IDIMC .EQ. 1 )THEN 45 : TAILLE = X(1) 46 : ENDIF 47 : C 48 : C CAS DU TRIANGLE (2D, 3D) 49 : C 50 : ELSE IF( N.EQ.3 ) THEN 51 : IF( IDIMC .EQ. 2 )THEN 52 : TAILLE = ((X(1) * X(4)) - (X(2) * X(3))) / 2. 53 : ENDIF 54 : C 55 : C CAS DU TETRAEDRE (3D) 56 : C 57 : ELSE IF( N. EQ. 4 )THEN 58 : TAILLE = ((VX * X(7)) + (VY * X(8)) + (VZ * X(9))) / 6. 59 : ENDIF 60 : IF( TAILLE .GT. ZERO )GORIEN= 1 61 : IF( TAILLE .LT. ZERO )GORIEN= -1 62 : END 63 : 64 :
© Cast3M 2003 - All rights reserved.
Disclaimer