Télécharger gtemrd.eso

Retour à la liste

Numérotation des lignes :

gtemrd
  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.  
  18. -INC PPARAM
  19. -INC CCOPTIO
  20.  
  21. DIMENSION XEL(3,*),SHP(6,*)
  22.  
  23. C CAS 1 DIMENSION
  24. IF (JDIM.EQ.1) THEN
  25. IF (IDIM.EQ.1) THEN
  26. dXdQsi=0.
  27. DO i=1,NBNO
  28. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  29. ENDDO
  30. DJAC=ABS(dXdQsi)
  31. ELSE IF (IDIM.EQ.2) THEN
  32. dXdQsi=0.
  33. dYdQsi=0.
  34. DO i=1,NBNO
  35. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  36. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  37. ENDDO
  38. DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi)
  39. ELSE IF (IDIM.EQ.3) THEN
  40. dXdQsi=0.
  41. dYdQsi=0.
  42. dZdQsi=0.
  43. DO i=1,NBNO
  44. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  45. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  46. dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  47. ENDDO
  48. DJAC=SQRT(dXdQsi*dXdQsi+dYdQsi*dYdQsi+dZdQsi*dZdQsi)
  49. ENDIF
  50.  
  51. C CAS 2 DIMENSIONS
  52. ELSE IF (JDIM.EQ.2) THEN
  53. dXdQsi=0.
  54. dYdQsi=0.
  55. dZdQsi=0.
  56. dXdEta=0.
  57. dYdEta=0.
  58. dZdEta=0.
  59. IF (IDIM.EQ.3) THEN
  60. DO i=1,NBNO
  61. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  62. dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  63. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  64. dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  65. dZdQsi=dZdQsi+SHP(2,i)*XEL(3,i)
  66. dZdEta=dZdEta+SHP(3,i)*XEL(3,i)
  67. ENDDO
  68. V1=dYdQsi*dZdEta-dZdQsi*dYdEta
  69. V2=dZdQsi*dXdEta-dXdQsi*dZdEta
  70. V3=dXdQsi*dYdEta-dYdQsi*dXdEta
  71. DJAC=SQRT(V1*V1+V2*V2+V3*V3)
  72. ELSE IF (IDIM.EQ.2) THEN
  73. DO i=1,NBNO
  74. dXdQsi=dXdQsi+SHP(2,i)*XEL(1,i)
  75. dXdEta=dXdEta+SHP(3,i)*XEL(1,i)
  76. dYdQsi=dYdQsi+SHP(2,i)*XEL(2,i)
  77. dYdEta=dYdEta+SHP(3,i)*XEL(2,i)
  78. ENDDO
  79. DJAC=ABS(dXdQsi*dYdEta-dXdEta*dYdQsi)
  80. ENDIF
  81.  
  82. C CAS 3 DIMENSIONS
  83. ELSE IF (JDIM.EQ.3) THEN
  84. D11=0.
  85. D21=0.
  86. D31=0.
  87. D12=0.
  88. D22=0.
  89. D32=0.
  90. D13=0.
  91. D23=0.
  92. D33=0.
  93. DO i=1,NBNO
  94. D11=D11+SHP(2,i)*XEL(1,i)
  95. D21=D21+SHP(3,i)*XEL(1,i)
  96. D31=D31+SHP(4,i)*XEL(1,i)
  97. D12=D12+SHP(2,i)*XEL(2,i)
  98. D22=D22+SHP(3,i)*XEL(2,i)
  99. D32=D32+SHP(4,i)*XEL(2,i)
  100. D13=D13+SHP(2,i)*XEL(3,i)
  101. D23=D23+SHP(3,i)*XEL(3,i)
  102. D33=D33+SHP(4,i)*XEL(3,i)
  103. ENDDO
  104. DInv11=D22*D33-D23*D32
  105. DInv12=D32*D13-D12*D33
  106. DInv13=D12*D23-D22*D13
  107. DJAC=ABS(D11*DInv11+D21*DInv12+D31*DInv13)
  108. ENDIF
  109.  
  110. RETURN
  111. END
  112.  
  113.  
  114.  
  115.  

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