Télécharger norcos.eso

Retour à la liste

Numérotation des lignes :

  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
  38. CALL DOXE(XCOOR,NDIM,NPTEL,NUM,IB,XE)
  39. C
  40. C CALCUL DES NORMALES @ L'ELEMENT
  41. C
  42. DO 10 IA=1,3
  43. V1(IA) = XE(IA,2) - XE(IA,1)
  44. V2(IA) = XE(IA,4) - XE(IA,1)
  45. 10 CONTINUE
  46. V3(1) = V1(2) * V2(3) - V2(2)* V1(3)
  47. V3(2) = V1(3) * V2(1) - V2(3)* V1(1)
  48. V3(3) = V1(1) * V2(2) - V2(1)* V1(2)
  49. Z3 = SQRT(V3(1)**2 + V3(2)**2 + V3(3)**2)
  50. DO 11 IA=1,3
  51. V1(IA) = XE(IA,4) - XE(IA,3)
  52. V2(IA) = XE(IA,2) - XE(IA,3)
  53. 11 CONTINUE
  54. V4(1) = V1(2) * V2(3) - V2(2)* V1(3)
  55. V4(2) = V1(3) * V2(1) - V2(3)* V1(1)
  56. V4(3) = V1(1) * V2(2) - V2(1)* V1(2)
  57. Z4 = SQRT(V4(1)**2 + V4(2)**2 + V4(3)**2)
  58. PS = 0.D0
  59. DO 12 IA=1,3
  60. PS = PS + V3(IA) * V4(IA)
  61. 12 CONTINUE
  62. PS = PS / (Z3 * Z4)
  63. ZOZO = MIN(1.D0,ABS(PS))
  64. C ON PREND LE MIN SUITE A ERREUR SUR CRAY
  65. VAL(1,IB) = 100.D0-200.D0/XPI*ACOS(ZOZO)
  66. 1 CONTINUE
  67. ELSE
  68. DO 2 IB=1,NEL
  69. VAL(1,IB) = 100.D0
  70. 2 CONTINUE
  71. ENDIF
  72. C
  73. RETURN
  74. END
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales