Download gorien.eso

Back to the list

   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