Télécharger geolf2.eso

Retour à la liste

Numérotation des lignes :

geolf2
  1. C GEOLF2 SOURCE GOUNAND 26/01/09 21:15:22 12441
  2. SUBROUTINE GEOLF2(LRFVOL,IQUVOL,SFAVOL,
  3. $ MYDISC,METING,MYFALS,MYFPGS,
  4. $ JCOOR,SSFACT,NBELEF,
  5. $ JMAJA2,JMIJA2,JDTJA2,
  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. CHARACTER*4 MYDISC,METING
  66. INTEGER NBELEV,NBELEF,NBELFV
  67. INTEGER IMPR,IRET
  68. *
  69. * Executable statements
  70. *
  71. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans geolf2'
  72. *
  73. * 1ere etape : on crée les ddl de la transfo geometrique
  74. *
  75. SEGACT IQUVOL
  76. NDIMQR=IQUVOL.XCONQR(/1)
  77. NBNOQR=IQUVOL.XCONQR(/2)
  78. SEGDES IQUVOL
  79. SEGACT LRFVOL
  80. NDDLVO=LRFVOL.NPQUAF(/1)
  81. JG=NBNOQR
  82. SEGINI KPQVOL
  83. DO IDDLVO=1,NDDLVO
  84. KPQVOL.LECT(LRFVOL.NPQUAF(IDDLVO))=IDDLVO
  85. ENDDO
  86. SEGDES LRFVOL
  87. SEGACT SFAVOL
  88. ITYFAC=SFAVOL.ITYPEL
  89. CALL KEEF(ITYFAC,MYDISC,
  90. $ MYFALS,
  91. $ LRFFAC,
  92. $ IMPR,IRET)
  93. IF (IRET.NE.0) GOTO 9999
  94. SEGACT LRFFAC
  95. NDDLFA=LRFFAC.NPQUAF(/1)
  96. SEGACT SSFACT
  97. NBELFV=SSFACT.LFACTI(/1)
  98. NBELEV=SSFACT.LFACTI(/2)
  99. NBLIG=1
  100. NBCOL=NDDLFA
  101. N2LIG=1
  102. N2COL=NDIMQR
  103. NBPOI=1
  104. NBELM=NBELEF
  105. SEGINI KCOOR
  106. SEGACT JCOOR
  107. IBELEF=0
  108. DO IBELEV=1,NBELEV
  109. DO IBELFV=1,NBELFV
  110. IF (SSFACT.LFACTI(IBELFV,IBELEV)) THEN
  111. IBELEF=IBELEF+1
  112. DO IDDLFA=1,NDDLFA
  113. IBNOQR=SFAVOL.NUM(LRFFAC.NPQUAF(IDDLFA),IBELFV)
  114. IBNOVO=KPQVOL.LECT(IBNOQR)
  115. DO IDIMQR=1,NDIMQR
  116. KCOOR.WELCHE(1,IDDLFA,1,IDIMQR,1,IBELEF)=
  117. $ JCOOR.WELCHE(1,IBNOVO,1,IDIMQR,1,IBELEV)
  118. ENDDO
  119. ENDDO
  120. ENDIF
  121. ENDDO
  122. ENDDO
  123. SEGDES JCOOR
  124. SEGDES SSFACT
  125. SEGDES LRFFAC
  126. SEGDES SFAVOL
  127. SEGSUP KPQVOL
  128. *
  129. * 2ème étape : - on crée les fonctions de forme et leurs dérivées
  130. * pour la transformation géométrie face -> volume
  131. * - on récupère coordonnées et poids des points de
  132. * Gauss pour la méthode METING sur la face de
  133. * référence
  134. * - pour chaque face de l'élément de référence volumique
  135. * on construit les coordonnées des points de Gauss
  136. * attenant à l'aide de la transformation géométrique
  137. *
  138. CALL KEPG(ITYFAC,METING,
  139. $ MYFPGS,
  140. $ PGFAC,
  141. $ IMPR,IRET)
  142. IF (IRET.NE.0) GOTO 9999
  143. *
  144. * In KFNREF : SEGINI FFFAC
  145. * In KFNREF : SEGINI DFFFAC
  146. *
  147. CALL KFNREF(LRFFAC,PGFAC,
  148. $ FFFAC,DFFFAC,
  149. $ IMPR,IRET)
  150. IF (IRET.NE.0) GOTO 9999
  151. SEGSUP FFFAC
  152. *
  153. * 3ème étape : On crée le déterminant de la matrice jacobienne
  154. * aux points de Gauss et on multiplie
  155. * les poids des points de Gauss par ce déterminant
  156. *
  157. * In GEOLIN : SEGINI JMAJA2
  158. * In GEOLIN : SEGINI JMIJA2
  159. * In GEOLIN : SEGINI JDTJA2
  160. * SEGPRT,DFFFAC
  161. * SEGPRT,KCOOR
  162. CALL GEOLIN(DFFFAC,KCOOR,NBELEF,
  163. $ JMAJA2,JMIJA2,JDTJA2,
  164. $ IMPR,IRET)
  165. IF (IRET.NE.0) GOTO 9999
  166. * SEGPRT,JDTJA2
  167. * In GEOLIN : SEGDES JMAJA2
  168. * In GEOLIN : SEGDES JMIJA2
  169. * In GEOLIN : SEGDES JDTJA2
  170. SEGSUP DFFFAC
  171. SEGSUP KCOOR
  172. * SEGPRT,IQUVOL
  173. * SEGPRT,SFAVOL
  174. * SEGPRT,LRFVOL
  175. * SEGPRT,LRFFAC
  176. * SEGPRT,SSFACT
  177. * SEGPRT, JCOOR
  178. * SEGPRT, KCOOR
  179. * SEGPRT,PGFAC
  180. * SEGPRT,DFFFAC
  181. * SEGPRT,JMAJA2
  182. * SEGPRT,JDTJA2
  183. * STOP 16
  184.  
  185. *
  186. * Normal termination
  187. *
  188. IRET=0
  189. RETURN
  190. *
  191. * Format handling
  192. *
  193. *
  194. * Error handling
  195. *
  196. 9999 CONTINUE
  197. IRET=1
  198. WRITE(IOIMP,*) 'An error was detected in subroutine geolf2'
  199. RETURN
  200. *
  201. * End of subroutine GEOLF2
  202. *
  203. END
  204.  
  205.  

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