Download norcos.eso

Back to the list

   1 : C NORCOS    SOURCE    CHAT      05/01/13    01:59:43     5004           
   2 : C NORCOS      SOURCE
   3 :       SUBROUTINE NORCOS(VAL,NPTEL,NEL,XCOOR,NDIM,NUM,XE,INU)
   4 : C=======================================================================
   5 : C     SUBROUTINE DE CALCUL DU COSINUS DE L'ANGLE ENTRE LES DEUX
   6 : C     DIAGONALES D'UN QUA4
   7 : C          PHILIPPE BEAUMIER  90
   8 : C     FAIT UNE BOUCLE SUR LES ELEMENTS
   9 : C     
  10 : C=======================================================================
  11 : C     
  12 : C  INPUT
  13 : C     
  14 : C     NPTEL          : NOMBRE DE POINTS PAR ELEMENT
  15 : C     NEL            : NOMBRE D'ELEMENTS
  16 : C     XCOOR()        : VECTEUR DES COORDONNEES DES NOEUDS
  17 : C     NDIM           : DIMENSION (2 OU 3)
  18 : C     NUM(NPTEL,NEL) : TABLEAU DES NUMEROS DES ELEMENTS
  19 : C     XE(3,NPTEL)    : TABLEAU DES COORDONNEES DES NOEUDS
  20 : C     INU            : NUMERO DE L'ELEMENT GEOMETRIQUE
  21 : C     
  22 : C   OUTPUT
  23 : C     
  24 : C     VAL(NPTEL,NEL) :ION DES MOTS CLES LUS
  25 : C     
  26 :       IMPLICIT INTEGER(I-N)
  27 :       IMPLICIT REAL*8(A-H,O-Z)
  28 : C    Include contenant quelques constantes dont XPI :
  29 : -INC CCREEL
  30 : C     
  31 :       DIMENSION VAL(1,*),XCOOR(*),NUM(NPTEL,*),XE(3,*)
  32 :       DIMENSION V1(3),V2(3),V3(3),V4(3)
  33 : C     
  34 : C     BOUCLE SUR LES ELEMENTS
  35 : C     
  36 :       IF((NDIM.EQ.3).AND.(INU.EQ.8)) THEN
  37 :          DO 1 IB=1,NEL
  37 :             CALL DOXE(XCOOR,NDIM,NPTEL,NUM,IB,XE)
  38 : C     
  39 : C     CALCUL DES NORMALES @ L'ELEMENT
  40 : C     
  41 :             DO 10 IA=1,3
  42 :                V1(IA) = XE(IA,2) - XE(IA,1)
  43 :                V2(IA) = XE(IA,4) - XE(IA,1)
  44 :  10         CONTINUE
  45 :             V3(1) = V1(2) * V2(3) - V2(2)* V1(3)
  46 :             V3(2) = V1(3) * V2(1) - V2(3)* V1(1)
  47 :             V3(3) = V1(1) * V2(2) - V2(1)* V1(2)
  48 :             Z3 = SQRT(V3(1)**2 + V3(2)**2 + V3(3)**2)
  49 :             DO 11 IA=1,3
  50 :                V1(IA) = XE(IA,4) - XE(IA,3)
  51 :                V2(IA) = XE(IA,2) - XE(IA,3)
  52 :  11         CONTINUE
  53 :             V4(1) = V1(2) * V2(3) - V2(2)* V1(3)
  54 :             V4(2) = V1(3) * V2(1) - V2(3)* V1(1)
  55 :             V4(3) = V1(1) * V2(2) - V2(1)* V1(2)
  56 :             Z4 = SQRT(V4(1)**2 + V4(2)**2 + V4(3)**2)
  57 :             PS = 0.D0
  58 :             DO 12 IA=1,3
  59 :                PS = PS + V3(IA) * V4(IA)
  60 :  12         CONTINUE
  61 :             PS = PS / (Z3 * Z4)
  62 :             ZOZO = MIN(1.D0,ABS(PS))
  63 : C     ON PREND LE MIN SUITE A ERREUR SUR CRAY
  64 :             VAL(1,IB) = 100.D0-200.D0/XPI*ACOS(ZOZO)
  65 :  1       CONTINUE
  66 :       ELSE
  67 :          DO 2 IB=1,NEL
  68 :             VAL(1,IB) = 100.D0
  69 :  2       CONTINUE
  70 :       ENDIF
  71 : C     
  72 :       RETURN
  73 :       END
  74 : 
  75 : 
  76 :  
  77 :  
  78 :  

© Cast3M 2003 - All rights reserved.
Disclaimer