Télécharger dcogau.eso

Retour à la liste

Numérotation des lignes :

dcogau
  1. C DCOGAU SOURCE GOUNAND 21/06/02 21:15:45 11022
  2. SUBROUTINE DCOGAU(JCOEFF,JDFFPG,
  3. $ JDCOFG,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : DCOGAU
  9. C PROJET : Noyau linéaire NLIN
  10. C DESCRIPTION : Calcul du coefficient aux points de Gauss d'un élément
  11. C de référence pour chaque élément réel.
  12. C Le coefficient peut être scalaire, vectoriel ou
  13. C tensoriel. Les fonctions d'interpolation seront les
  14. C mêmes pour chaque composante du vecteur ou chaque
  15. C coefficient des matrices.
  16. C Les valeurs nodales devront être exprimées par rapport
  17. C aux coordonnées de l'espace de référence (par exemple,
  18. C s'il y a des dérivées, elles devront être exprimées par
  19. C rapport à ksi, eta...)
  20. C Si les valeurs sont des variables généralisées, il n'y
  21. C a peut-être rien à faire. (?)
  22. C
  23. C
  24. C LANGAGE : ESOPE
  25. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  26. C mél : gounand@semt2.smts.cea.fr
  27. C***********************************************************************
  28. C APPELES : PRCHVA (impression d'un segment de type MCHEVA)
  29. C DCOGA1 (calcul de JDCOFG (fortran 77))
  30. C APPELE PAR : NLIN
  31. C***********************************************************************
  32. C ENTREES :
  33. C ENTREES/SORTIES : -
  34. C SORTIES :
  35. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  36. C***********************************************************************
  37. C VERSION : v3.1, 30/07/04, possiblité de travailler
  38. C dans l'espace de référence
  39. C VERSION : v1, 26/08/03, version initiale
  40. C HISTORIQUE : v1, 26/08/03, création
  41. C HISTORIQUE :
  42. C HISTORIQUE :
  43. C***********************************************************************
  44. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  45. C en cas de modification de ce sous-programme afin de faciliter
  46. C la maintenance !
  47. C***********************************************************************
  48.  
  49. -INC PPARAM
  50. -INC CCOPTIO
  51. -INC TNLIN
  52. *-INC SMCHAEL
  53. INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  54. POINTEUR JCOEFF.MCHEVA
  55. POINTEUR JDCOFG.MCHEVA
  56. * Valeurs des fns d'interpolation du coeff. aux points de Gauss
  57. POINTEUR JDFFPG.MCHEVA
  58. *
  59. INTEGER IMPR,IRET
  60. *
  61. INTEGER NDLIG,NDCOL,N2DLIG,N2DCOL,NDNOEU,NLDF,NLCO
  62. INTEGER NDDL,IESREL,NBPOGO,NBELEM
  63. *
  64. * Executable statements
  65. *
  66. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans dcogau'
  67. * IESREL=IDIM
  68. SEGACT JDFFPG
  69. NDLIG=JDFFPG.WELCHE(/1)
  70. NDCOL=JDFFPG.WELCHE(/2)
  71. N2DLIG=JDFFPG.WELCHE(/3)
  72. IESP=JDFFPG.WELCHE(/4)
  73. NDNOEU=JDFFPG.WELCHE(/5)
  74. NLDF =JDFFPG.WELCHE(/6)
  75. * Correction pour l'option 'EREF', les gradients sont alors
  76. * dans l'espace de référence
  77. * IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.IESREL) THEN
  78. IF (NDLIG.NE.1.OR.N2DLIG.NE.1) THEN
  79. WRITE(IOIMP,*) 'Erreur dims JDFFPG'
  80. GOTO 9999
  81. ENDIF
  82. NDDL=NDCOL
  83. NBPOGO=NDNOEU
  84. * NBELEM=NDELM
  85. SEGACT JCOEFF
  86. NDLIG=JCOEFF.WELCHE(/1)
  87. NDCOL=JCOEFF.WELCHE(/2)
  88. N2DLIG=JCOEFF.WELCHE(/3)
  89. N2DCOL=JCOEFF.WELCHE(/4)
  90. NDNOEU=JCOEFF.WELCHE(/5)
  91. NLCO =JCOEFF.WELCHE(/6)
  92. IF (NDLIG.NE.1.OR.N2DLIG.NE.1.OR.N2DCOL.NE.1.OR.NDNOEU.NE.1) THEN
  93. * $ .OR.NDELM.NE.NBELEM) THEN
  94. WRITE(IOIMP,*) 'Erreur dims JCOEFF'
  95. GOTO 9999
  96. ENDIF
  97. NBELEM=MAX(NLDF,NLCO)
  98. IF (NLDF.NE.1.AND.NLDF.NE.NBELEM) THEN
  99. WRITE(IOIMP,*) 'Erreur nb. elem. JDFFPG'
  100. GOTO 9999
  101. ENDIF
  102. IF (NLCO.NE.1.AND.NLCO.NE.NBELEM) THEN
  103. WRITE(IOIMP,*) 'Erreur nb. elem. JCOEFF'
  104. GOTO 9999
  105. ENDIF
  106. *
  107. * Initialisations...
  108. *
  109. NBLIG=1
  110. NBCOL=1
  111. N2LIG=1
  112. N2COL=IESP
  113. NBPOI=NBPOGO
  114. NBELM=NBELEM
  115. SEGINI JDCOFG
  116. *
  117. * On effectue le calcul du coefficient aux points de Gauss
  118. *
  119. CALL DCOGA1(NDDL,IESP,NBPOGO,NLDF,NLCO,NBELEM,
  120. $ JCOEFF.WELCHE,JDFFPG.WELCHE,
  121. $ JDCOFG.WELCHE,
  122. $ IMPR,IRET)
  123. IF (IRET.NE.0) GOTO 9999
  124. SEGDES JDCOFG
  125. SEGDES JCOEFF
  126. SEGDES JDFFPG
  127. IF (IMPR.GT.3) THEN
  128. WRITE(IOIMP,*) 'On a créé',
  129. $ ' JDCOFG(élément , poi.gauss ,',
  130. $ ' dim.esp.rel ,1,1,1)'
  131. CALL PRCHVA(JDCOFG,IMPR,IRET)
  132. IF (IRET.NE.0) GOTO 9999
  133. ENDIF
  134. *
  135. * Normal termination
  136. *
  137. IRET=0
  138. RETURN
  139. *
  140. * Format handling
  141. *
  142. *
  143. * Error handling
  144. *
  145. 9999 CONTINUE
  146. IRET=1
  147. WRITE(IOIMP,*) 'An error was detected in subroutine dcogau'
  148. RETURN
  149. *
  150. * End of subroutine DCOGAU
  151. *
  152. END
  153.  
  154.  
  155.  
  156.  
  157.  

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