Télécharger dfnfrf.eso

Retour à la liste

Numérotation des lignes :

  1. C DFNFRF SOURCE GOUNAND 06/08/04 21:15:30 5520
  2. SUBROUTINE DFNFRF(DFFPG,JMIJAC,SSFACT,NBELEF,
  3. $ JDFFPG,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : DFNFRF
  9. C DESCRIPTION : Calcul des dérivées premières des fonctions de forme aux
  10. C points de Gauss sur l'élément réel.
  11. C
  12. C \partial_x = [j] \partial_{\xi}
  13. C
  14. C où \partial_x = trans( \frac{\partial}{\partial_x}
  15. C \frac{\partial}{\partial_y}
  16. C \frac{\partial}{\partial_z} )
  17. C
  18. C \partial_{\xi} = trans( \frac{\partial}{\partial_{\xi}}
  19. C \frac{\partial}{\partial_{\eta}}
  20. C \frac{\partial}{\partial_{\zeta}})
  21. C
  22. C [j] est l'inverse de la matrice jacobienne
  23. C
  24. C cf. Dhatt et Touzot p.52
  25. C
  26. C LANGAGE : ESOPE
  27. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  28. C mél : gounand@semt2.smts.cea.fr
  29. C***********************************************************************
  30. C APPELES : RSET8 (copie de tableaux de CHARACTER*8)
  31. C PRCHVA (impression d'un segment de type MCHEVA)
  32. C DFNFRF1 (calcul des dérivées premières des fonctions
  33. C de forme aux points de Gauss sur l'élément
  34. C réel (fortran 77))
  35. C APPELE PAR : NLAP, NCVN
  36. C***********************************************************************
  37. C ENTREES : * DFFPG (type MCHEVA) : valeurs des dérivées
  38. C premières des fonctions d'interpolation aux
  39. C points de gauss sur l'élément de référence.
  40. C Structure (cf.include SMCHAEL) :
  41. C (1, nb. ddl, 1, dim.esp.réf, nb. poi. gauss, 1)
  42. C * JMIJAC (type MCHEVA) : valeurs de l'inverse de
  43. C la matrice jacobienne aux points de Gauss sur
  44. C le maillage élémentaire.
  45. C Structure (cf.include SMCHAEL) :
  46. C (1, 1, dim. esp. référence, dim. esp. réel,
  47. C nb. poi. gauss, nb. éléments)
  48. C ENTREES/SORTIES : -
  49. C SORTIES : * JDFFPG (type MCHEVA) : valeurs des dérivées
  50. C premières des fonctions d'interpolation
  51. C aux points de gauss sur l'élément réel.
  52. C Structure (cf.include SMCHAEL) :
  53. C (1, nb. ddl, 1, 1, nb. poi. gauss, nb. élém.)
  54. C TRAVAIL : * NDDL (type entier) : nombre de ddl (par
  55. C élément) de la transformation géométrique.
  56. C * IESREF (type entier) : dimension de l'espace de
  57. C référence.
  58. C * IESREL (type entier) : dimension de l'espace
  59. C réel (i.e. géométrique).
  60. C * NBPOGO (type entier) : nombre de points
  61. C d'intégration.
  62. C * NDELEM (type entier) : nombre d'éléments du
  63. C maillage élémentaire courant.
  64. C***********************************************************************
  65. C VERSION : v2, 03/10/03, refonte complète (modif SMPOUET)
  66. C VERSION : v1, 19/05/00, version initiale
  67. C HISTORIQUE : v1, 19/05/00, création
  68. C HISTORIQUE :
  69. C HISTORIQUE :
  70. C***********************************************************************
  71. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  72. C en cas de modification de ce sous-programme afin de faciliter
  73. C la maintenance !
  74. C***********************************************************************
  75. -INC CCOPTIO
  76. CBEGININCLUDE SFACTIV
  77. SEGMENT FACTIV
  78. POINTEUR IFACTI(NBSOUV).SFACTI
  79. ENDSEGMENT
  80. SEGMENT SFACTI
  81. POINTEUR ISFACT(NBSOFV).SSFACT
  82. ENDSEGMENT
  83. SEGMENT SSFACT
  84. LOGICAL LFACTI(NBELFV,NBELEV)
  85. ENDSEGMENT
  86. CENDINCLUDE SFACTIV
  87. CBEGININCLUDE SMCHAEL
  88. SEGMENT MCHAEL
  89. POINTEUR IMACHE(N1).MELEME
  90. POINTEUR ICHEVA(N1).MCHEVA
  91. ENDSEGMENT
  92. SEGMENT MCHEVA
  93. REAL*8 VELCHE(NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM)
  94. ENDSEGMENT
  95. SEGMENT LCHEVA
  96. POINTEUR LISCHE(NBCHE).MCHEVA
  97. ENDSEGMENT
  98. CENDINCLUDE SMCHAEL
  99. INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  100. POINTEUR DFFPG.MCHEVA
  101. POINTEUR JMIJAC.MCHEVA
  102. POINTEUR JDFFPG.MCHEVA
  103. *
  104. INTEGER NBELEF
  105. INTEGER IMPR,IRET
  106. *
  107. INTEGER NDLIG,NDCOL,N2DLIG,NDNOEU,NBELEV,NBELFV
  108. INTEGER NDDL,IESREF,IESREL,NBPOGO,NBELEM
  109. *
  110. * Executable statements
  111. *
  112. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dfnfrf'
  113. SEGACT SSFACT
  114. NBELFV=SSFACT.LFACTI(/1)
  115. NBELEV=SSFACT.LFACTI(/2)
  116. IESREL=IDIM
  117. *
  118. SEGACT DFFPG
  119. NDLIG =DFFPG.VELCHE(/1)
  120. NDDL =DFFPG.VELCHE(/2)
  121. N2DLIG=DFFPG.VELCHE(/3)
  122. IESREF=DFFPG.VELCHE(/4)
  123. NBPOGO=DFFPG.VELCHE(/5)
  124. NDELEM=DFFPG.VELCHE(/6)
  125. IF (NDLIG.NE.1.OR.N2DLIG.NE.1
  126. $ .OR.(NDELEM.NE.NBELFV)) THEN
  127. WRITE(IOIMP,*) 'Erreur dims DFFPG'
  128. GOTO 9999
  129. ENDIF
  130. *
  131. SEGACT JMIJAC
  132. NDLIG =JMIJAC.VELCHE(/1)
  133. NDCOL =JMIJAC.VELCHE(/2)
  134. N2DLIG=JMIJAC.VELCHE(/3)
  135. N2DCOL=JMIJAC.VELCHE(/4)
  136. NDNOEU=JMIJAC.VELCHE(/5)
  137. NBELEM=JMIJAC.VELCHE(/6)
  138. IF (NDLIG.NE.1.OR.NDCOL.NE.1.OR.N2DLIG.NE.IESREF
  139. $ .OR.N2DCOL.NE.IESREL
  140. $ .OR.(NDNOEU.NE.1.AND.NDNOEU.NE.NBPOGO)
  141. $ .OR.NBELEM.NE.NBELEF) THEN
  142. WRITE(IOIMP,*) 'Erreur dims JMIJAC'
  143. GOTO 9999
  144. ENDIF
  145. NPJMI=NDNOEU
  146. *
  147. * Initialisations...
  148. *
  149. NBLIG=1
  150. NBCOL=NDDL
  151. N2LIG=1
  152. N2COL=IESREL
  153. NBPOI=NBPOGO
  154. NBELM=NBELEF
  155. SEGINI JDFFPG
  156. *
  157. * On effectue le calcul du coefficient aux points de Gauss
  158. *
  159. CALL DFNFF1(NDDL,IESREF,IESREL,NBPOGO,NBELEV,NBELEF,NBELFV,
  160. $ NPJMI,
  161. $ DFFPG.VELCHE,JMIJAC.VELCHE,SSFACT.LFACTI,
  162. $ JDFFPG.VELCHE,
  163. $ IMPR,IRET)
  164. IF (IRET.NE.0) GOTO 9999
  165. SEGDES JDFFPG
  166. SEGDES DFFPG
  167. SEGDES JMIJAC
  168. SEGDES SSFACT
  169. *
  170. * Normal termination
  171. *
  172. IRET=0
  173. RETURN
  174. *
  175. * Format handling
  176. *
  177. *
  178. * Error handling
  179. *
  180. 9999 CONTINUE
  181. IRET=1
  182. WRITE(IOIMP,*) 'An error was detected in subroutine dfnfrf'
  183. RETURN
  184. *
  185. * End of subroutine DFNFRF
  186. *
  187. END
  188.  
  189.  
  190.  

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