Télécharger geolf2.eso

Retour à la liste

Numérotation des lignes :

geolf2
  1. C GEOLF2 SOURCE GOUNAND 21/06/02 21:16:07 11022
  2. SUBROUTINE GEOLF2(LRFVOL,IQUVOL,SFAVOL,
  3. $ MYDISC,METING,MYFALS,MYFPGS,
  4. $ JCOOR,SSFACT,NBELEF,
  5. $ JMAJA2,JMIJA2,JDTJA2,LERJ2,
  6. $ IMPR,IRET)
  7. IMPLICIT REAL*8 (A-H,O-Z)
  8. IMPLICIT INTEGER (I-N)
  9. C***********************************************************************
  10. C NOM : GEOLF2
  11. C PROJET : Noyau linéaire NLIN
  12. C DESCRIPTION :
  13. C
  14. C LANGAGE : ESOPE
  15. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  16. C mél : gounand@semt2.smts.cea.fr
  17. C***********************************************************************
  18. C APPELES :
  19. C APPELE PAR :
  20. C***********************************************************************
  21. C ENTREES :
  22. C ENTREES/SORTIES : -
  23. C SORTIES :
  24. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  25. C***********************************************************************
  26. C VERSION : v1, 30/07/03, version initiale
  27. C HISTORIQUE : v1, 30/07/03, création
  28. C HISTORIQUE :
  29. C HISTORIQUE :
  30. C***********************************************************************
  31. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  32. C en cas de modification de ce sous-programme afin de faciliter
  33. C la maintenance !
  34. C***********************************************************************
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. -INC SMELEME
  38. POINTEUR SFAVOL.MELEME
  39. -INC SMLENTI
  40. POINTEUR KPQVOL.MLENTI
  41. *
  42. -INC TNLIN
  43. *-INC SFACTIV
  44. *-INC SMCHAEL
  45. INTEGER NBLIG,NBCOL,N2LIG,N2COL,NBPOI,NBELM
  46. POINTEUR JCOOR.MCHEVA
  47. POINTEUR KCOOR.MCHEVA
  48. POINTEUR FFFAC.MCHEVA
  49. POINTEUR DFFFAC.MCHEVA
  50. POINTEUR JMAJA2.MCHEVA
  51. POINTEUR JMIJA2.MCHEVA
  52. POINTEUR JDTJA2.MCHEVA
  53. *-INC SELREF
  54. POINTEUR LRFVOL.ELREF
  55. POINTEUR LRFFAC.ELREF
  56. *-INC SFALRF
  57. POINTEUR MYFALS.FALRFS
  58. *-INC SPOGAU
  59. POINTEUR PGFAC.POGAU
  60. *-INC SFAPG
  61. POINTEUR MYFPGS.FAPGS
  62. *-INC SIQUAF
  63. POINTEUR IQUVOL.IQUAF
  64. *
  65. LOGICAL LERJ2
  66. CHARACTER*4 MYDISC,METING
  67. INTEGER NBELEV,NBELEF,NBELFV
  68. INTEGER IMPR,IRET
  69. *
  70. * Executable statements
  71. *
  72. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans geolf2'
  73. *
  74. * 1ere etape : on crée les ddl de la transfo geometrique
  75. *
  76. SEGACT IQUVOL
  77. NDIMQR=IQUVOL.XCONQR(/1)
  78. NBNOQR=IQUVOL.XCONQR(/2)
  79. SEGDES IQUVOL
  80. SEGACT LRFVOL
  81. NDDLVO=LRFVOL.NPQUAF(/1)
  82. JG=NBNOQR
  83. SEGINI KPQVOL
  84. DO IDDLVO=1,NDDLVO
  85. KPQVOL.LECT(LRFVOL.NPQUAF(IDDLVO))=IDDLVO
  86. ENDDO
  87. SEGDES LRFVOL
  88. SEGACT SFAVOL
  89. ITYFAC=SFAVOL.ITYPEL
  90. CALL KEEF(ITYFAC,MYDISC,
  91. $ MYFALS,
  92. $ LRFFAC,
  93. $ IMPR,IRET)
  94. IF (IRET.NE.0) GOTO 9999
  95. SEGACT LRFFAC
  96. NDDLFA=LRFFAC.NPQUAF(/1)
  97. SEGACT SSFACT
  98. NBELFV=SSFACT.LFACTI(/1)
  99. NBELEV=SSFACT.LFACTI(/2)
  100. NBLIG=1
  101. NBCOL=NDDLFA
  102. N2LIG=1
  103. N2COL=NDIMQR
  104. NBPOI=1
  105. NBELM=NBELEF
  106. SEGINI KCOOR
  107. SEGACT JCOOR
  108. IBELEF=0
  109. DO IBELEV=1,NBELEV
  110. DO IBELFV=1,NBELFV
  111. IF (SSFACT.LFACTI(IBELFV,IBELEV)) THEN
  112. IBELEF=IBELEF+1
  113. DO IDDLFA=1,NDDLFA
  114. IBNOQR=SFAVOL.NUM(LRFFAC.NPQUAF(IDDLFA),IBELFV)
  115. IBNOVO=KPQVOL.LECT(IBNOQR)
  116. DO IDIMQR=1,NDIMQR
  117. KCOOR.WELCHE(1,IDDLFA,1,IDIMQR,1,IBELEF)=
  118. $ JCOOR.WELCHE(1,IBNOVO,1,IDIMQR,1,IBELEV)
  119. ENDDO
  120. ENDDO
  121. ENDIF
  122. ENDDO
  123. ENDDO
  124. SEGDES JCOOR
  125. SEGDES SSFACT
  126. SEGDES LRFFAC
  127. SEGDES SFAVOL
  128. SEGSUP KPQVOL
  129. *
  130. * 2ème étape : - on crée les fonctions de forme et leurs dérivées
  131. * pour la transformation géométrie face -> volume
  132. * - on récupère coordonnées et poids des points de
  133. * Gauss pour la méthode METING sur la face de
  134. * référence
  135. * - pour chaque face de l'élément de référence volumique
  136. * on construit les coordonnées des points de Gauss
  137. * attenant à l'aide de la transformation géométrique
  138. *
  139. CALL KEPG(ITYFAC,METING,
  140. $ MYFPGS,
  141. $ PGFAC,
  142. $ IMPR,IRET)
  143. IF (IRET.NE.0) GOTO 9999
  144. *
  145. * In KFNREF : SEGINI FFFAC
  146. * In KFNREF : SEGINI DFFFAC
  147. *
  148. CALL KFNREF(LRFFAC,PGFAC,
  149. $ FFFAC,DFFFAC,
  150. $ IMPR,IRET)
  151. IF (IRET.NE.0) GOTO 9999
  152. SEGSUP FFFAC
  153. *
  154. * 3ème étape : On crée le déterminant de la matrice jacobienne
  155. * aux points de Gauss et on multiplie
  156. * les poids des points de Gauss par ce déterminant
  157. *
  158. * In GEOLIN : SEGINI JMAJA2
  159. * In GEOLIN : SEGINI JMIJA2
  160. * In GEOLIN : SEGINI JDTJA2
  161. * SEGPRT,DFFFAC
  162. * SEGPRT,KCOOR
  163. CALL GEOLIN(DFFFAC,KCOOR,NBELEF,
  164. $ JMAJA2,JMIJA2,JDTJA2,LERJ2,
  165. $ IMPR,IRET)
  166. IF (IRET.NE.0) GOTO 9999
  167. * SEGPRT,JDTJA2
  168. * In GEOLIN : SEGDES JMAJA2
  169. * In GEOLIN : SEGDES JMIJA2
  170. * In GEOLIN : SEGDES JDTJA2
  171. SEGSUP DFFFAC
  172. SEGSUP KCOOR
  173. * SEGPRT,IQUVOL
  174. * SEGPRT,SFAVOL
  175. * SEGPRT,LRFVOL
  176. * SEGPRT,LRFFAC
  177. * SEGPRT,SSFACT
  178. * SEGPRT, JCOOR
  179. * SEGPRT, KCOOR
  180. * SEGPRT,PGFAC
  181. * SEGPRT,DFFFAC
  182. * SEGPRT,JMAJA2
  183. * SEGPRT,JDTJA2
  184. * STOP 16
  185.  
  186. *
  187. * Normal termination
  188. *
  189. IRET=0
  190. RETURN
  191. *
  192. * Format handling
  193. *
  194. *
  195. * Error handling
  196. *
  197. 9999 CONTINUE
  198. IRET=1
  199. WRITE(IOIMP,*) 'An error was detected in subroutine geolf2'
  200. RETURN
  201. *
  202. * End of subroutine GEOLF2
  203. *
  204. END
  205.  
  206.  
  207.  
  208.  

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