Télécharger cogau.eso

Retour à la liste

Numérotation des lignes :

cogau
  1. C COGAU SOURCE GOUNAND 21/06/02 21:15:28 11022
  2. SUBROUTINE COGAU(JCOEF,FNCOPG,
  3. $ JCOEFG,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : COGAU
  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 COGA1 (calcul de JCOEFG (fortran 77))
  30. C APPELE PAR : NLIN
  31. C***********************************************************************
  32. C ENTREES : * JCOEF (type MCHEVA) : valeurs des ddl du
  33. C coefficient tensoriel sur le maillage
  34. C élémentaire courant.
  35. C Structure (cf.include SMCHAEL) :
  36. C (1, nb. ddl, nb. comp. duales,
  37. C nb. comp. primales, 1, nb. éléments)
  38. C * FNCOPG (type MCHEVA) : valeurs des fonctions
  39. C d'interpolation pour le coefficient aux points
  40. C de gauss sur l'élément de référence.
  41. C Structure (cf.include SMCHAEL) :
  42. C (1, nb. ddl, 1, dim.esp.réf, nb. poi. gauss, 1)
  43. C
  44. C ENTREES/SORTIES : -
  45. C SORTIES : * JCOEFG (type MCHEVA) : valeurs du coefficient
  46. C tensoriel aux points de Gauss sur le maillage
  47. C élémentaire.
  48. C Structure (cf.include SMCHAEL) :
  49. C (1, 1, nb. comp. duales, nb. comp. primales,
  50. C nb. poi. gauss, nb. éléments)
  51. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  52. C***********************************************************************
  53. C VERSION : v1, 17/08/99, version initiale
  54. C HISTORIQUE : v1, 17/08/99, création
  55. C HISTORIQUE :
  56. C HISTORIQUE :
  57. C***********************************************************************
  58. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  59. C en cas de modification de ce sous-programme afin de faciliter
  60. C la maintenance !
  61. C***********************************************************************
  62.  
  63. -INC PPARAM
  64. -INC CCOPTIO
  65. -INC TNLIN
  66. *-INC SMCHAEL
  67. INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  68. POINTEUR JCOEF.MCHEVA
  69. POINTEUR JCOEFG.MCHEVA
  70. * Valeurs des fns d'interpolation du coeff. aux points de Gauss
  71. POINTEUR FNCOPG.MCHEVA
  72. *
  73. INTEGER IMPR,IRET
  74. *
  75. INTEGER NDLIG,NDCOL,ND2LI,ND2CO
  76. INTEGER NDPOGO,NDELEM,NDNOEU,NDNOE2
  77. *
  78. * Executable statements
  79. *
  80. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans cogau'
  81. SEGACT FNCOPG
  82. NDNOEU=FNCOPG.WELCHE(/2)
  83. NDPOGO=FNCOPG.WELCHE(/5)
  84. SEGACT JCOEF
  85. NDLIG=JCOEF.WELCHE(/1)
  86. NDNOE2=JCOEF.WELCHE(/5)
  87. IF (NDLIG.NE.1.OR.NDNOE2.NE.1) THEN
  88. WRITE(IOIMP,*) 'Erreur dims JCOEF'
  89. GOTO 9999
  90. ENDIF
  91. NDCOL=JCOEF.WELCHE(/2)
  92. ND2LI=JCOEF.WELCHE(/3)
  93. ND2CO=JCOEF.WELCHE(/4)
  94. NDELEM=JCOEF.WELCHE(/6)
  95. IF (NDCOL.NE.NDNOEU) THEN
  96. WRITE(IOIMP,*) 'Incompatibilité fns interpolation-coefficient'
  97. WRITE(IOIMP,*) 'NDNOEU=',NDNOEU,' NDCOL=',NDCOL
  98. GOTO 9999
  99. ENDIF
  100. *
  101. * Initialisations...
  102. *
  103. NBLIG=1
  104. NBCOL=1
  105. N2LIG=ND2LI
  106. N2COL=ND2CO
  107. NBPOI=NDPOGO
  108. NBELM=NDELEM
  109. SEGINI JCOEFG
  110. *
  111. * On effectue le calcul du coefficient aux points de Gauss
  112. *
  113. CALL COGA1(ND2LI,ND2CO,NDNOEU,NDPOGO,NDELEM,
  114. * $ JCOEF.WELCHE,MFFCPG.FNPG,
  115. $ JCOEF.WELCHE,FNCOPG.WELCHE,
  116. $ JCOEFG.WELCHE,
  117. $ IMPR,IRET)
  118. IF (IRET.NE.0) GOTO 9999
  119. SEGDES JCOEFG
  120. SEGDES JCOEF
  121. * SEGDES MFFCPG
  122. SEGDES FNCOPG
  123. IF (IMPR.GT.3) THEN
  124. WRITE(IOIMP,*) 'On a créé',
  125. $ ' JCOEFG(élément , poi.gauss ,',
  126. $ ' comp.pri , comp.dua ,1,1)'
  127. CALL PRCHVA(JCOEFG,IMPR,IRET)
  128. IF (IRET.NE.0) GOTO 9999
  129. ENDIF
  130. *
  131. * Normal termination
  132. *
  133. IRET=0
  134. RETURN
  135. *
  136. * Format handling
  137. *
  138. *
  139. * Error handling
  140. *
  141. 9999 CONTINUE
  142. IRET=1
  143. WRITE(IOIMP,*) 'An error was detected in subroutine cogau'
  144. RETURN
  145. *
  146. * End of subroutine COGAU
  147. *
  148. END
  149.  
  150.  
  151.  
  152.  

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