Télécharger hvit.eso

Retour à la liste

Numérotation des lignes :

hvit
  1. C HVIT SOURCE CB215821 24/04/12 21:16:17 11897
  2. SUBROUTINE HVIT
  3. C-----------------------------------------------------------------------
  4. C Calcul de la vitesse aux centres des elements dans le cas d'une
  5. C formulation DARCY en elements finis mixtes hybrides.
  6. C
  7. C On obtient la vitesse au centre des elements en exprimant
  8. C l'interpolation mixte hybride aux points centres.
  9. C
  10. C On prend en compte l'orientation de la normale par l'intermediaire
  11. C du MCHAML des orientations.
  12. C
  13. C---------------------------
  14. C Phrase d'appel (GIBIANE) :
  15. C---------------------------
  16. C
  17. C CHP1 = HVIT MODL1 CHP2
  18. C
  19. C------------------------
  20. C Operandes et resultat :
  21. C------------------------
  22. C
  23. C CHP1 : CHAMPOINT resultat contenant la vitesse au centre.
  24. C MODL1 : Objet modele specifiant la formulation
  25. C CHP2 : CHAMPOINT contenant le debit porte par la normale a la face
  26. C
  27. C-----------------------------------------------------------------------
  28. C
  29. C Langage : ESOPE + FORTRAN77
  30. C
  31. C Auteurs : F.DABBENE 09/93
  32. C Modif 04/99 (F.Auriol) les informations de la table DOMAINE sont
  33. C dans le MODELE
  34. C
  35. C-----------------------------------------------------------------------
  36. IMPLICIT INTEGER(I-N)
  37. IMPLICIT REAL*8 (A-H,O-Z)
  38. *
  39.  
  40. -INC PPARAM
  41. -INC CCOPTIO
  42. -INC SMCHAML
  43. -INC SMCHPOI
  44. -INC SMELEME
  45. -INC SMMODEL
  46. -INC SMTABLE
  47. -INC SMCOORD
  48. *
  49. SEGMENT IPMAHY
  50. INTEGER MAHYBR(NSOUS)
  51. ENDSEGMENT
  52. *
  53. REAL*8 XVALIN,XVALRE
  54. CHARACTER*4 NOCOM1,NOMTOT(1)
  55. CHARACTER*8 TAPIND,TYPOBJ,CHARIN,CHARRE,LETYPE
  56. *
  57. segact mcoord
  58. *
  59. * Lecture du MMODEL
  60. *
  61. CALL LIROBJ('MMODEL ',IPMODE,1,IRET1)
  62. CALL ACTOBJ('MMODEL ',IPMODE,1)
  63. IF (IERR.NE.0) RETURN
  64. MMODEL = IPMODE
  65. *
  66. * Lecture de la TABLE domaine
  67. *
  68. IPTABL = 0
  69. C CALL LIRTAB('DOMAINE',IPTABL,1,IRET)
  70. CALL LEKMOD(MMODEL,IPTABL,IRET)
  71. IF (IERR.NE.0) RETURN
  72. CHARIN = 'MAILLAGE'
  73. TYPOBJ = 'MAILLAGE'
  74. CALL LEKTAB(IPTABL,CHARIN,IOBRE)
  75. IF (IERR.NE.0) RETURN
  76. IPGEOM = IOBRE
  77. CALL LEKTAB(IPTABL,'ELTFA',IOBRE)
  78. IF (IERR.NE.0) RETURN
  79. IELTFA = IOBRE
  80. CALL LEKTAB(IPTABL,'CENTRE',IOBRE)
  81. IF (IERR.NE.0) RETURN
  82. IPGEOC = IOBRE
  83. CALL LEKTAB(IPTABL,'FACE',IOBRE)
  84. IF (IERR.NE.0) RETURN
  85. IPFACE = IOBRE
  86. *
  87. * Lecture du CHPO FLUX
  88. *
  89. CALL LIROBJ('CHPOINT ',ICHP1,1,IRET1)
  90. CALL ACTOBJ('CHPOINT ',ICHP1,1)
  91. IF (IERR.NE.0) GOTO 100
  92. *
  93. * Lecture du CHAMELEM des orientations
  94. *
  95. * CALL LIROBJ('MCHAML',IPCHEL,1,IRET1)
  96. CALL LEKTAB(IPTABL,'XXNORMAE',IPIN)
  97. CALL REDUAF(IPIN,IPMODE,IPCHEL,0,IR,KER)
  98. IF(IR .NE. 1) CALL ERREUR(KER)
  99. IF(IERR .NE. 0) RETURN
  100. MCHELM = IPCHEL
  101. *
  102. * Test du CHPO FLUX
  103. *
  104. INDIC = 1
  105. NBCOMP = 1
  106. NOMTOT(1) = 'FLUX'
  107. CALL QUEPOI(ICHP1,IPFACE,INDIC,NBCOMP,NOMTOT)
  108. IF (IERR.NE.0) RETURN
  109. *
  110. * Test de la formulation
  111. *
  112. SEGACT MMODEL
  113. NSOUS = KMODEL(/1)
  114. SEGINI IPMAHY
  115. IDARCY = 0
  116. IPT1=IPGEOM
  117. IPT2=IPGEOM
  118. DO 10 ISOUS=1,NSOUS
  119. IF(NSOUS.GT.1) THEN
  120. SEGACT IPT2
  121. IPT1= IPT2.LISOUS(ISOUS)
  122. SEGDES IPT2
  123. ENDIF
  124. IMODEL = KMODEL(ISOUS)
  125. SEGACT IMODEL
  126. LETYPE = FORMOD(1)
  127. IF (LETYPE.EQ.'DARCY') THEN
  128. IDARCY = IDARCY + 1
  129. MAHYBR(ISOUS) = IPT1
  130. ENDIF
  131. SEGDES IMODEL
  132. 10 CONTINUE
  133. SEGDES MMODEL
  134. IF (IDARCY.EQ.0) THEN
  135. MOTERR = LETYPE
  136. CALL ERREUR(193)
  137. GOTO 100
  138. ENDIF
  139. *
  140. * Recuperation des pointeurs ELTFA pour les zones ou DARCY est defini
  141. *
  142. MELEME = IELTFA
  143. SEGACT MELEME
  144. LZONES = LISOUS(/1)
  145. IF (LZONES.EQ.0) LZONES = 1
  146. IPT1 = IPGEOM
  147. SEGACT IPT1
  148. DO 30 ISOUS=1,NSOUS
  149. IMAMEL = MAHYBR(ISOUS)
  150. IF (IMAMEL.NE.0) THEN
  151. DO 20 ISZ=1,LZONES
  152. IF (LZONES.EQ.1) THEN
  153. IPT2 = IPT1
  154. IPT3 = MELEME
  155. ELSE
  156. IPT2 = IPT1.LISOUS(ISZ)
  157. IPT3 = LISOUS(ISZ)
  158. ENDIF
  159. IF (IPT2.EQ.IMAMEL) THEN
  160. MAHYBR(ISOUS) = IPT3
  161. GOTO 30
  162. ENDIF
  163. 20 CONTINUE
  164. IF (IMAMEL.EQ.MAHYBR(ISOUS)) THEN
  165. MOTERR(1:8) = ' MODELE '
  166. MOTERR(9:16)= ' ELTFA '
  167. INTERR(1) = ISOUS
  168. CALL ERREUR(698)
  169. SEGDES IPT1
  170. SEGDES MELEME
  171. GOTO 100
  172. ENDIF
  173. ENDIF
  174. 30 CONTINUE
  175. SEGDES IPT1
  176. SEGDES MELEME
  177. *
  178. * Test du CHAMELEM des orientations
  179. *
  180. SEGACT MCHELM
  181. DO 40 ISOUS=1,NSOUS
  182. IF (MAHYBR(ISOUS).NE.0) THEN
  183. IF (MAHYBR(ISOUS).NE.IMACHE(ISOUS)) THEN
  184. MOTERR(1:8) = ' ORIENT '
  185. MOTERR(9:16)= ' ELTFA '
  186. INTERR(1) = ISOUS
  187. CALL ERREUR(698)
  188. SEGDES MCHELM
  189. GOTO 100
  190. ENDIF
  191. ENDIF
  192. 40 CONTINUE
  193. SEGDES MCHELM
  194. *
  195. * Construction du CHAMPOINT de vitesse au centre des elements
  196. *
  197. SEGDES IPMAHY
  198. CALL HVIT1(IPMODE,IPMAHY,IPGEOC,ICHP1,IPCHEL,IPGEOM,IRET)
  199. CALL ACTOBJ('CHPOINT ',IRET,1)
  200. CALL ECROBJ('CHPOINT ',IRET)
  201. *
  202. * Ménage
  203. *
  204. 100 CONTINUE
  205. SEGSUP IPMAHY
  206.  
  207. END
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  

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