Télécharger gtemrd.eso

Retour à la liste

Numérotation des lignes :

  1. C GTEMRD SOURCE CHAT 05/01/13 00:21:53 5004
  2.  
  3. C-----------------------------------------------------------------------
  4. C ENTREES
  5. C XEL(3,NBNO)=COORDONNEES LOCALES DE L ELEMENT
  6. C SHP(6,NBNO)=DERIVEES PAR RAPPORT A LA GEOMETRIE DE REFERENCE
  7. C JDIM=DIMENSION
  8. C NBNO=NOMBRE DE NOEUDS
  9. C SORTIES
  10. C DJAC =JACOBIEN
  11. C-----------------------------------------------------------------------
  12. SUBROUTINE GTEMRD (XEL,SHP,JDIM,NBNO,DJAC)
  13.  
  14. IMPLICIT INTEGER(I-N)
  15. IMPLICIT REAL*8 (A-H,O-Z)
  16.  
  17. -INC CCOPTIO
  18.  
  19. DIMENSION XEL(3,*),SHP(6,*)
  20.  
  21. C CAS 1 DIMENSION
  22. IF (JDIM.EQ.1) THEN
  23. IF (IDIM.EQ.1) THEN
  24. dXdQsi=0.
  25. DO i=1,NBNO
  26. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  27. ENDDO
  28. DJAC=ABS(dXdQsi)
  29. ELSE IF (IDIM.EQ.2) THEN
  30. dXdQsi=0.
  31. dYdQsi=0.
  32. DO i=1,NBNO
  33. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  34. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  35. ENDDO
  36. DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi)
  37. ELSE IF (IDIM.EQ.3) THEN
  38. dXdQsi=0.
  39. dYdQsi=0.
  40. dZdQsi=0.
  41. DO i=1,NBNO
  42. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  43. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  44. dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  45. ENDDO
  46. DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi+dZdQsi*dZdQsi)
  47. ENDIF
  48.  
  49. C CAS 2 DIMENSIONS
  50. ELSE IF (JDIM.EQ.2) THEN
  51. dXdQsi=0.
  52. dYdQsi=0.
  53. dZdQsi=0.
  54. dXdEta=0.
  55. dYdEta=0.
  56. dZdEta=0.
  57. IF (IDIM.EQ.3) THEN
  58. DO i=1,NBNO
  59. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  60. dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  61. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  62. dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  63. dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  64. dZdEta=dZdEta+SHP(3,i)*XEL(3,i)
  65. ENDDO
  66. V1=dYdQsi*dZdEta-dZdQsi*dYdEta
  67. V2=dZdQsi*dXdEta-dXdQsi*dZdEta
  68. V3=dXdQsi*dYdEta-dYdQsi*dXdEta
  69. DJAC=SQRT(V1*V1+V2*V2+V3*V3)
  70. ELSE IF (IDIM.EQ.2) THEN
  71. DO i=1,NBNO
  72. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  73. dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  74. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  75. dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  76. ENDDO
  77. DJAC=ABS(dXdQsi*dYdEta-dXdEta*dYdQsi)
  78. ENDIF
  79.  
  80. C CAS 3 DIMENSIONS
  81. ELSE IF (JDIM.EQ.3) THEN
  82. D11=0.
  83. D21=0.
  84. D31=0.
  85. D12=0.
  86. D22=0.
  87. D32=0.
  88. D13=0.
  89. D23=0.
  90. D33=0.
  91. DO i=1,NBNO
  92. D11=D11+SHP(2,i)*XEL(1,i)
  93. D21=D21+SHP(3,i)*XEL(1,i)
  94. D31=D31+SHP(4,i)*XEL(1,i)
  95. D12=D12+SHP(2,i)*XEL(2,i)
  96. D22=D22+SHP(3,i)*XEL(2,i)
  97. D32=D32+SHP(4,i)*XEL(2,i)
  98. D13=D13+SHP(2,i)*XEL(3,i)
  99. D23=D23+SHP(3,i)*XEL(3,i)
  100. D33=D33+SHP(4,i)*XEL(3,i)
  101. ENDDO
  102. DInv11=D22*D33-D23*D32
  103. DInv12=D32*D13-D12*D33
  104. DInv13=D12*D23-D22*D13
  105. DJAC=ABS(D11*DInv11+D21*DInv12+D31*DInv13)
  106. ENDIF
  107.  
  108. RETURN
  109. END
  110.  
  111.  
  112.  
  113.  

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