Télécharger inelpy.eso

Retour à la liste

Numérotation des lignes :

inelpy
  1. C INELPY SOURCE GOUNAND 21/06/02 21:16:28 11022
  2. SUBROUTINE INELPY(MYLRFS,IMPR,IRET)
  3. IMPLICIT REAL*8 (A-H,O-Z)
  4. IMPLICIT INTEGER (I-N)
  5. C***********************************************************************
  6. C NOM : INELPY
  7. C PROJET : Noyau linéaire NLIN
  8. C DESCRIPTION : Remplit le segment des éléments de référence
  9. C avec les éléments de référence de dimension 3,
  10. C de forme pyramidale.
  11. C C'est la pyramide de Castem
  12. C
  13.  
  14.  
  15. C REFERENCES :
  16. C LANGAGE : ESOPE
  17. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  18. C mél : gounand@semt2.smts.cea.fr
  19. C***********************************************************************
  20. C APPELES : INILRF, INILAG, GBAPCO, GPOBUL, GPOFBU
  21. C APPELE PAR : INLRFS
  22. C***********************************************************************
  23. C ENTREES : -
  24. C ENTREES/SORTIES : MYLRFS
  25. C SORTIES : -
  26. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  27. C***********************************************************************
  28. C VERSION : v1, 23/03/00, version initiale
  29. C HISTORIQUE : v1, 23/03/00, création
  30. C HISTORIQUE : v2, 10/05/00, modif. du segment ELREF
  31. C HISTORIQUE :
  32. C HISTORIQUE :
  33. C***********************************************************************
  34. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  35. C en cas de modification de ce sous-programme afin de faciliter
  36. C la maintenance !
  37. C***********************************************************************
  38.  
  39. -INC PPARAM
  40. -INC CCOPTIO
  41. -INC TNLIN
  42. *-INC SELREF
  43. POINTEUR MYLRFS.ELREFS
  44. POINTEUR ELCOUR.ELREF
  45. *-INC SPOLYNO
  46. POINTEUR MYBPOL.POLYNS
  47. *
  48. INTEGER IMPR,IRET
  49. * Elément de nom : L2D0PY1
  50. REAL*8 UNS4
  51. PARAMETER (UNS4=0.25D0)
  52. * Elément de nom : H1D1PY5
  53. REAL*8 ZERO,UN
  54. PARAMETER (ZERO=0.D0,UN=1.D0)
  55. * Elément de nom : H1D2PY13
  56. REAL*8 UNS2,UNS3
  57. PARAMETER (UNS2=1.D0/2.D0,UNS3=1.D0/3.D0)
  58. *
  59. INTEGER INDDL
  60. *
  61. * Executable statements
  62. *
  63. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans inelpy'
  64. *
  65. * Elément de nom : L2D0PY1
  66. * Sur une pyramide : élément de Lagrange, fonction L2, approximation
  67. * nodale, espace de référence de dimension 3, 1 noeud, 1 degré de
  68. * liberté, degré de l'approximation : 0
  69. *
  70. * In INILRF : SEGINI ELCOUR
  71. CALL INILRF('L2D0PY1','PYRAMIDE','LAGRANGE','L2',
  72. $ 3,1,1,0,
  73. $ ELCOUR,
  74. $ IMPR,IRET)
  75. IF (IRET.NE.0) GOTO 9999
  76. C Inutile
  77. C ELCOUR.XCONOD(1,1)=UNS4
  78. C ELCOUR.XCONOD(2,1)=ZERO
  79. C ELCOUR.XCONOD(3,1)=ZERO
  80. ELCOUR.NPQUAF(1)=19
  81. ELCOUR.NUMCMP(1)=1
  82. * Initialise la correspondance ddl-noeud+ord.der
  83. CALL INILAG(ELCOUR,IMPR,IRET)
  84. IF (IRET.NE.0) GOTO 9999
  85. * Pas de base polynomiale
  86. ELCOUR.MBPOLY=0
  87. SEGDES ELCOUR
  88. MYLRFS.LISEL(**)=ELCOUR
  89. *
  90. * Elément de nom : H1D1PY5
  91. * Sur une pyramide : élément de Lagrange, fonction H1, approximation
  92. * nodale, espace de référence de dimension 3, 5 noeuds, 5 degrés de
  93. * liberté, degré de l'approximation : 1 (environ)
  94. *
  95. * In INILRF : SEGINI ELCOUR
  96. CALL INILRF('H1D1PY5','PYRAMIDE','LAGRANGE','H1',
  97. $ 3,5,5,1,
  98. $ ELCOUR,
  99. $ IMPR,IRET)
  100. IF (IRET.NE.0) GOTO 9999
  101. C Inutile
  102. C ELCOUR.XCONOD(1,1)=ZERO
  103. C ELCOUR.XCONOD(2,1)=ZERO
  104. C ELCOUR.XCONOD(3,1)=ZERO
  105. * Les d.d.l. sont aux noeuds 1,3,5,7,13
  106. ELCOUR.NPQUAF(1)=1
  107. ELCOUR.NPQUAF(2)=3
  108. ELCOUR.NPQUAF(3)=5
  109. ELCOUR.NPQUAF(4)=7
  110. ELCOUR.NPQUAF(5)=13
  111. DO 213 INDDL=1,5
  112. ELCOUR.NUMCMP(INDDL)=1
  113. 213 CONTINUE
  114. * Initialise la correspondance ddl-noeud+ord.der
  115. CALL INILAG(ELCOUR,IMPR,IRET)
  116. IF (IRET.NE.0) GOTO 9999
  117. *Pas de base polynômiale
  118. ELCOUR.MBPOLY=0
  119. SEGDES ELCOUR
  120. MYLRFS.LISEL(**)=ELCOUR
  121. *
  122. * Elément de nom : H1D2PY13
  123. * Sur une pyramide : élément de Lagrange, fonction H1, approximation
  124. * nodale, espace de référence de dimension 3, 13 noeuds, 13 degrés de
  125. * liberté, degré de l'approximation : 2 (environ)
  126. *
  127. * In INILRF : SEGINI ELCOUR
  128. CALL INILRF('H1D2PY13','PYRAMIDE','LAGRANGE','H1',
  129. $ 3,13,13,2,
  130. $ ELCOUR,
  131. $ IMPR,IRET)
  132. IF (IRET.NE.0) GOTO 9999
  133. C Inutile
  134. C ELCOUR.XCONOD(1,1)=ZERO
  135. C ELCOUR.XCONOD(2,1)=ZERO
  136. C ELCOUR.XCONOD(3,1)=ZERO
  137. * Les d.d.l. sont aux noeuds 1,...,13
  138. DO 217 INDDL=1,13
  139. ELCOUR.NPQUAF(INDDL)=INDDL
  140. ELCOUR.NUMCMP(INDDL)=1
  141. 217 CONTINUE
  142. * Initialise la correspondance ddl-noeud+ord.der
  143. CALL INILAG(ELCOUR,IMPR,IRET)
  144. IF (IRET.NE.0) GOTO 9999
  145. * Pas de base polynômiale (on recopie l'élément de castem)
  146. ELCOUR.MBPOLY=0
  147. SEGDES ELCOUR
  148. MYLRFS.LISEL(**)=ELCOUR
  149. *
  150. * Normal termination
  151. *
  152. IRET=0
  153. RETURN
  154. *
  155. * Format handling
  156. *
  157. *
  158. * Error handling
  159. *
  160. 9999 CONTINUE
  161. IRET=1
  162. WRITE(IOIMP,*) 'An error was detected in subroutine inelpy'
  163. RETURN
  164. *
  165. * End of subroutine INELPY
  166. *
  167. END
  168.  
  169.  
  170.  
  171.  
  172.  

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