Télécharger dfnfrf.eso

Retour à la liste

Numérotation des lignes :

dfnfrf
  1. C DFNFRF SOURCE GOUNAND 21/06/02 21:15:49 11022
  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 SMTNLIN)
  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.  
  76. -INC PPARAM
  77. -INC CCOPTIO
  78. -INC TNLIN
  79. *-INC SFACTIV
  80. *-INC SMCHAEL
  81. INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  82. POINTEUR DFFPG.MCHEVA
  83. POINTEUR JMIJAC.MCHEVA
  84. POINTEUR JDFFPG.MCHEVA
  85. *
  86. INTEGER NBELEF
  87. INTEGER IMPR,IRET
  88. *
  89. INTEGER NDLIG,NDCOL,N2DLIG,NDNOEU,NBELEV,NBELFV
  90. INTEGER NDDL,IESREF,IESREL,NBPOGO,NBELEM
  91. *
  92. * Executable statements
  93. *
  94. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dfnfrf'
  95. SEGACT SSFACT
  96. NBELFV=SSFACT.LFACTI(/1)
  97. NBELEV=SSFACT.LFACTI(/2)
  98. IESREL=IDIM
  99. *
  100. SEGACT DFFPG
  101. NDLIG =DFFPG.WELCHE(/1)
  102. NDDL =DFFPG.WELCHE(/2)
  103. N2DLIG=DFFPG.WELCHE(/3)
  104. IESREF=DFFPG.WELCHE(/4)
  105. NBPOGO=DFFPG.WELCHE(/5)
  106. NDELEM=DFFPG.WELCHE(/6)
  107. IF (NDLIG.NE.1.OR.N2DLIG.NE.1
  108. $ .OR.(NDELEM.NE.NBELFV)) THEN
  109. WRITE(IOIMP,*) 'Erreur dims DFFPG'
  110. GOTO 9999
  111. ENDIF
  112. *
  113. SEGACT JMIJAC
  114. NDLIG =JMIJAC.WELCHE(/1)
  115. NDCOL =JMIJAC.WELCHE(/2)
  116. N2DLIG=JMIJAC.WELCHE(/3)
  117. N2DCOL=JMIJAC.WELCHE(/4)
  118. NDNOEU=JMIJAC.WELCHE(/5)
  119. NBELEM=JMIJAC.WELCHE(/6)
  120. IF (NDLIG.NE.1.OR.NDCOL.NE.1.OR.N2DLIG.NE.IESREF
  121. $ .OR.N2DCOL.NE.IESREL
  122. $ .OR.(NDNOEU.NE.1.AND.NDNOEU.NE.NBPOGO)
  123. $ .OR.NBELEM.NE.NBELEF) THEN
  124. WRITE(IOIMP,*) 'Erreur dims JMIJAC'
  125. GOTO 9999
  126. ENDIF
  127. NPJMI=NDNOEU
  128. *
  129. * Initialisations...
  130. *
  131. NBLIG=1
  132. NBCOL=NDDL
  133. N2LIG=1
  134. N2COL=IESREL
  135. NBPOI=NBPOGO
  136. NBELM=NBELEF
  137. SEGINI JDFFPG
  138. *
  139. * On effectue le calcul du coefficient aux points de Gauss
  140. *
  141. CALL DFNFF1(NDDL,IESREF,IESREL,NBPOGO,NBELEV,NBELEF,NBELFV,
  142. $ NPJMI,
  143. $ DFFPG.WELCHE,JMIJAC.WELCHE,SSFACT.LFACTI,
  144. $ JDFFPG.WELCHE,
  145. $ IMPR,IRET)
  146. IF (IRET.NE.0) GOTO 9999
  147. SEGDES JDFFPG
  148. SEGDES DFFPG
  149. SEGDES JMIJAC
  150. SEGDES SSFACT
  151. *
  152. * Normal termination
  153. *
  154. IRET=0
  155. RETURN
  156. *
  157. * Format handling
  158. *
  159. *
  160. * Error handling
  161. *
  162. 9999 CONTINUE
  163. IRET=1
  164. WRITE(IOIMP,*) 'An error was detected in subroutine dfnfrf'
  165. RETURN
  166. *
  167. * End of subroutine DFNFRF
  168. *
  169. END
  170.  
  171.  
  172.  
  173.  

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