Télécharger tpyr5a.eso

Retour à la liste

Numérotation des lignes :

tpyr5a
  1. C TPYR5A SOURCE PV 21/02/04 21:15:13 10874
  2. SUBROUTINE TPYR5A(POINTS,QSIGAU,ETAGAU,DZEGAU,POIGAU,SHPTOT)
  3. IMPLICIT INTEGER(I-N)
  4. IMPLICIT REAL*8(A-H,O-Z)
  5. ************************************************************************
  6. *
  7. * T P Y R 5 A
  8. * -----------
  9. *
  10. * FONCTION: ON ACQUIERT:
  11. * --------- - LES COORDONNEES INTRINSEQUES
  12. * - LES FONCTIONS DE FORME ET LEURS DERIVEES
  13. * POUR L'ELEMENT DE THERMIQUE PYR5
  14. *
  15. * MODULES UTILISES:
  16. * -----------------
  17. *
  18.  
  19. -INC PPARAM
  20. -INC CCOPTIO
  21. *
  22. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  23. * -----------
  24. *
  25. * POINTS (E) CHAINE DE CARACTERES:
  26. * 'NOEUDS' SI ON VEUT LES VALEURS AUX NOEUDS
  27. * 'GAUSS' POUR LES VALEURS AUX POINTS DE GAUSS.
  28. * QSIGAU (S) |
  29. * ETAGAU (S) | COORDONNEES INTRINSEQUES
  30. * DZEGAU (S) |
  31. * POIGAU (S) POIDS D'INTEGRATION
  32. * SHPTOT (S) FOCTIONS DE FORME ET LEURS DERIVEES.
  33. *
  34. REAL*8 QSIGAU(5),ETAGAU(5),DZEGAU(5),POIGAU(5)
  35. REAL*8 SHPTOT(6,5,5)
  36. CHARACTER*(*) POINTS
  37. *
  38. * CONSTANTES:
  39. * -----------
  40. *
  41. *
  42. PARAMETER ( O0=0.D0 )
  43. PARAMETER ( O1=1.D0 )
  44. PARAMETER ( O5=0.5D0 )
  45. ** PARAMETER ( POI1=0.1333333333333333D0 )
  46. ** PARAMETER ( POI2=0.1333333333333333D0 )
  47. PARAMETER (POI1 = 4.D0/30.D0)
  48. PARAMETER (POI2 = 4.D0/30.D0)
  49. PARAMETER ( H1=0.153175416344814577870518365005440D0 )
  50. PARAMETER ( H2=0.637298334620741688517926539978239D0 )
  51. PARAMETER ( O215=2.D0/15.D0 )
  52. PARAMETER ( O4=4.D0 )
  53.  
  54.  
  55. *
  56. * AUTEUR, DATE DE CREATION:
  57. * -------------------------
  58. *
  59. * SOURCE A1,REPRIS PAR DENIS ROBERT,LE 29 OCTOBRE 1987
  60. *
  61. * LANGAGE:
  62. * --------
  63. *
  64. * FORTRAN77
  65. *
  66. ************************************************************************
  67. *
  68. IF (POINTS(1:5).EQ.'NOEUD') GOTO 66
  69. IF (POINTS(1:5).NE.'GAUSS') GOTO 100
  70. *
  71. * COORDONNEES DES 5 POINTS DE GAUSS
  72. *
  73. NBPGAU=5
  74. NBNO=5
  75. QSIGAU(1)= O5
  76. QSIGAU(2)= O0
  77. QSIGAU(3)=-O5
  78. QSIGAU(4)= O0
  79. QSIGAU(5)= O0
  80. ETAGAU(1)= O0
  81. ETAGAU(2)= O5
  82. ETAGAU(3)= O0
  83. ETAGAU(4)=-O5
  84. ETAGAU(5)= O0
  85. DO 251 IA=1,4
  86. DZEGAU(IA)= H1
  87. POIGAU(IA)= POI1
  88. 251 CONTINUE
  89. DZEGAU(5)= H2
  90. POIGAU(5)= POI2
  91. GOTO 2
  92. *
  93. * COORDONNEES DES NOEUDS
  94. *
  95. 66 CONTINUE
  96. NBNO=5
  97. NBPGAU=5
  98. QSIGAU(1)= O1
  99. QSIGAU(2)= O0
  100. QSIGAU(3)=-O1
  101. QSIGAU(4)= O0
  102. ETAGAU(1)= O0
  103. ETAGAU(2)= O1
  104. ETAGAU(3)= O0
  105. ETAGAU(4)=-O1
  106. DZEGAU(5)= O1
  107. DO 261 IA=1,5
  108. POIGAU(IA)=O215
  109. 261 CONTINUE
  110. *
  111. * FONCTIONS DE FORME ET LEURS DERIVEES
  112. *
  113. 2 DO 1 I=1,NBPGAU
  114. DZEM =O1-DZEGAU(I)
  115. DZEM4=(O1-DZEGAU(I))*O4
  116. AUX0 = QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-O1
  117. AUX01=-QSIGAU(I)+ETAGAU(I)+DZEGAU(I)-O1
  118. AUX02=-QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-O1
  119. AUX03= QSIGAU(I)-ETAGAU(I)+DZEGAU(I)-O1
  120. *
  121. IF(ABS(DZEGAU(I)-O1).LT.1.D-6) THEN
  122. DO IB=1,5
  123. DO IA=1,3
  124. SHPTOT(IA,IB,I)= O0
  125. enddo
  126. enddo
  127. SHPTOT(1,5,I)= O1
  128. SHPTOT(2,1,I)= O5
  129. SHPTOT(2,3,I)=-O5
  130. SHPTOT(3,2,I)= O5
  131. SHPTOT(3,4,I)=-O5
  132. DO 252 IA=1,4
  133. SHPTOT(4,IA,I)=-O5
  134. 252 CONTINUE
  135. SHPTOT(4,5,I)= O1
  136. GOTO 1
  137. ENDIF
  138. *
  139. SHPTOT(1,1,I)=AUX01*AUX02/DZEM4
  140. SHPTOT(1,2,I)=AUX02*AUX03/DZEM4
  141. SHPTOT(1,3,I)=AUX0 *AUX03/DZEM4
  142. SHPTOT(1,4,I)=AUX0 *AUX01/DZEM4
  143. SHPTOT(1,5,I)=DZEGAU(I)
  144. SHPTOT(2,1,I)=(-AUX01-AUX02)/DZEM4
  145. SHPTOT(2,2,I)=( AUX02-AUX03)/DZEM4
  146. SHPTOT(2,3,I)=( AUX0 +AUX03)/DZEM4
  147. SHPTOT(2,4,I)=( AUX01-AUX0 )/DZEM4
  148. SHPTOT(2,5,I)=O0
  149. SHPTOT(3,1,I)=( AUX02-AUX01)/DZEM4
  150. SHPTOT(3,2,I)=(-AUX02-AUX03)/DZEM4
  151. SHPTOT(3,3,I)=( AUX03-AUX0 )/DZEM4
  152. SHPTOT(3,4,I)=( AUX0 +AUX01)/DZEM4
  153. SHPTOT(3,5,I)=O0
  154. SHPTOT(4,1,I)=(AUX01+AUX02+AUX01*AUX02/DZEM)/DZEM4
  155. SHPTOT(4,2,I)=(AUX02+AUX03+AUX02*AUX03/DZEM)/DZEM4
  156. SHPTOT(4,3,I)=(AUX03+AUX0 +AUX03*AUX0 /DZEM)/DZEM4
  157. SHPTOT(4,4,I)=( AUX0+AUX01+ AUX0*AUX01/DZEM)/DZEM4
  158. SHPTOT(4,5,I)=O1
  159. 1 CONTINUE
  160. RETURN
  161. 100 CONTINUE
  162. CALL ERREUR(19)
  163. *
  164. END
  165.  
  166.  
  167.  
  168.  

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