Télécharger convec.eso

Retour à la liste

Numérotation des lignes :

  1. C CONVEC SOURCE CB215821 16/12/05 21:15:13 9237
  2.  
  3. C=======================================================================
  4. C= C O N V E C =
  5. C= ----------- =
  6. C= =
  7. C= OPERATEUR CAST3M "CONVEC" : =
  8. C= --------------------------- =
  9. C= FF1 = 'CONVECTION' MODL1 MAT1 | 'T ' TE | ; =
  10. C= | CHPTE | =
  11. C= =
  12. C= Cet operateur sert a calculer les flux nodaux equivalents a une =
  13. C= condition de type convection forcee (CHPOINT au second membre). =
  14. C= =
  15. C= ARGUMENTS : =
  16. C= ----------- =
  17. C= MODL1 (MMODEL) Modele de la structure (contour ou enveloppe) =
  18. C= MAT1 (MCHAML) Caracteristiques : coefficient d'echange =
  19. C= 'T ' (MOT) Precise que la temperature du milieu exterieur =
  20. C= imposee est constante (flottant suivant) =
  21. C= TE (FLOTTANT) Valeur de la temperature imposee (constante) =
  22. C= CHPTE (CHPOINT) Valeurs des temperatures aux NOEUDS =
  23. C= =
  24. C= RESULTAT : =
  25. C= ---------- =
  26. C= FF1 (CHPOINT) Flux nodaux equivalents =
  27. C= Le CHPOINT resultat FF1 est de nature DISCRETE. =
  28. C= =
  29. C= Denis ROBERT, le 15 avril 1988. =
  30. C=======================================================================
  31.  
  32. SUBROUTINE CONVEC
  33.  
  34. IMPLICIT INTEGER(I-N)
  35. IMPLICIT REAL*8 (A-H,O-Z)
  36.  
  37. -INC CCOPTIO
  38. -INC SMMODEL
  39. -INC SMCHPOI
  40. -INC SMELEME
  41.  
  42. PARAMETER (NBRAC=7,NP=6)
  43. INTEGER IRAC(NBRAC)
  44. PARAMETER (NBMOCV=3)
  45. CHARACTER*4 MOCNV(NBMOCV),MOT4
  46.  
  47. DATA MOCNV/ 'T ','TINF','TSUP' /
  48.  
  49. C Elem. RACCORD : RAC2 RAC3 LIA3 LIA4 LIA6 LIA8 SEG2
  50. C Cas Particulier : en 1D, SEG2 = element RACCORD (OF)
  51. C ---------------
  52. DATA IRAC / 12 , 13 , 18 , 19 , 20 , 21 , 2 /
  53.  
  54. C Petit traitement pour le cas 1D : on simule l'element raccord 1D via
  55. C un element fini SEG2 (cela evite de creer un nouvel element fini)
  56. IF (IDIM.EQ.1) THEN
  57. KRACC=7
  58. NRACC=1
  59. ELSE
  60. KRACC=1
  61. NRACC=NP
  62. ENDIF
  63.  
  64. C 1 - LECTURE DES ARGUMENTS DE L'OPERATEUR
  65. C ==========================================
  66. C 1.1 - Lecture OBLIGATOIRE du modele (IPMODL)
  67. C =====
  68. MOTERR(1:8)=' MODELE '
  69. CALL MESLIR(-137)
  70. CALL LIROBJ('MMODEL',IPMODE,1,IRET)
  71. IF (IERR.NE.0) RETURN
  72. C Selectionne dans le MMODEL la partie 'CONVECTION' et 'RAYONNEMENT'
  73. call selmod (ipmode,ipmod1,'CONVECTION' )
  74. call selmod (ipmode,ipmod2,'RAYONNEMENT')
  75. mmode1=ipmod1
  76. mmode2=ipmod2
  77. segact mmode1,mmode2
  78. if( mmode1.kmodel(/1).eq.0) then
  79. ipmode=mmode2
  80. segsup mmode1
  81. elseif( mmode2.kmodel(/1).eq.0) then
  82. ipmode=mmode1
  83. segsup mmode2
  84. else
  85. n1= mmode1.kmodel(/1)+mmode2.kmodel(/1)
  86. na=mmode1.kmodel(/1)
  87. segadj mmode1
  88. do io=1,mmode2.kmodel(/1)
  89. mmode1.kmodel(na+io)= mmode2.kmodel(io)
  90. enddo
  91. segsup mmode2
  92. ipmode=mmode1
  93. endif
  94.  
  95. C =====
  96. C 1.2 - Lecture OBLIGATOIRE du champ de caracteristiques (IPCHEL)
  97. C =====
  98. CALL MESLIR(-145)
  99. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  100. IF (IERR.NE.0) RETURN
  101. CALL REDUAF(IPIN,IPMODE,IPCHEL,0,IR,KER)
  102. IF(IR .NE. 1) CALL ERREUR(KER)
  103. IF(IERR .NE. 0) RETURN
  104. C =====
  105. C 1.3 - Lecture OBLIGATOIRE des temperatures exterieures donnees par :
  106. C 1) un CHPOINT (IPCHPO)
  107. C ou 2) un mot ('T ') et un flottant (TE)
  108. C =====
  109. CALL MESLIR(-146)
  110. CALL LIROBJ('CHPOINT',IPCHPO,0,IRET1)
  111. IF (IERR.NE.0) RETURN
  112. IF (IRET1.EQ.1) THEN
  113. CALL ECRCHA('GEOM')
  114. CALL ECROBJ('CHPOINT',IPCHPO)
  115. CALL COPIER
  116. CALL LIROBJ('CHPOINT',IPCHP2,0,IRET)
  117. IF (IERR.NE.0) RETURN
  118. ELSE
  119. CALL LIRCHA(MOT4,1,IRETOU)
  120. IRET2 = 0
  121. CALL PLACE(MOCNV,NBMOCV,IRET2,MOT4)
  122. IF (IRET2 .EQ. 0) THEN
  123. MOTERR(1:4)=MOT4
  124. CALL ERREUR(197)
  125. RETURN
  126. ENDIF
  127. IF (IERR.NE.0) RETURN
  128. CALL MESLIR(-147)
  129. CALL LIRREE(TE,1,IRET)
  130. IF (IERR.NE.0) RETURN
  131.  
  132. C Extraction du MAILLAGE du MODELE
  133. CALL EXTRA8(IPMODE,IPGEOM)
  134. IF (IERR.NE.0) RETURN
  135.  
  136. C Creation d'un CHPOINT de composante MOT4 et de valeur TE
  137. NSOUPO=1
  138. NAT =1
  139. SEGINI,MCHPOI
  140. IPCHP2 = MCHPOI
  141. MTYPOI = ' '
  142. MOCHDE = ' '
  143. IFOPOI = IFOMOD
  144. C NATURE 'DIFFUS'
  145. JATTRI(1)=1
  146. MELEME=IPGEOM
  147. CALL CHANGE(MELEME,1)
  148. IF (IERR .NE. 0) RETURN
  149. SEGACT,MELEME
  150. NC=1
  151. N =NUM(/2)
  152. SEGDES,MELEME
  153. SEGINI,MSOUPO,MPOVAL
  154. IPCHP(1) = MSOUPO
  155. NOCOMP(1)= MOT4
  156. IGEOC = MELEME
  157. IPOVAL = MPOVAL
  158. SEGDES,MSOUPO,MPOVAL
  159. SEGDES,MCHPOI
  160.  
  161. C ADDITION a ce CHPOINT nul du FLOTTANT TE
  162. C IOPERA= 3 pour l'operation ADDITION
  163. C IARGU = 2 pour FLOTTANT
  164. ICH = MCHPOI
  165. IOPERA= 3
  166. IARGU = 2
  167. I1 = 0
  168. CALL OPCHP1(ICH,IOPERA,IARGU,I1,TE,IPCHP2,IRET)
  169. IF (IERR.NE.0) RETURN
  170. ENDIF
  171.  
  172. C 2 - EXTRACTION DES ELEMENTS RACCORDS DU MODELE (s'ils existent)
  173. C ================================================
  174. MMODEL=IPMODE
  175. SEGACT,MMODEL
  176. NSOU=KMODEL(/1)
  177. JRac=0
  178. N1=NSOU
  179. SEGINI,MMODE1
  180. DO iSou=1,NSOU
  181. IMODEL=KMODEL(iSou)
  182. SEGACT,IMODEL
  183. NFOR=FORMOD(/2)
  184. nmat=matmod(/2)
  185. CALL PLACE(FORMOD,NFOR,IMO,'CONVECTION')
  186. call place (matmod,nmat,imoo,'CONVECTION')
  187. CALL PLACE2(IRAC(KRACC),NRACC,IOK,NEFMOD)
  188. IF (IOK.NE.0.AND.IMO+imoo.NE.0) THEN
  189. JRac=JRac+1
  190. ELSE
  191. MMODE1.KMODEL(iSou-JRac)=KMODEL(iSou)
  192. ENDIF
  193. SEGDES,IMODEL
  194. ENDDO
  195. N1=NSOU-JRac
  196. C= Reduction du modele initial au modele sans elements raccords
  197. IF (N1.NE.0.AND.N1.NE.NSOU) THEN
  198. SEGADJ,MMODE1
  199. IPMODE1=MMODE1
  200. SEGDES,MMODE1
  201. CALL REDUAF(IPCHEL,IPMODE1,IPCHE1,0,IRET,KERRE)
  202. IF (IRET.NE.1) THEN
  203. CALL ERREUR(KERRE)
  204. RETURN
  205. ENDIF
  206. C
  207. IPCHEL=IPCHE1
  208. C= Cas particulier du modele ne contenant que des elements raccords
  209. C= Le champ de flux nodaux equivalents est vide.
  210. ELSE IF (N1.EQ.0) THEN
  211. NSOUPO=0
  212. NAT=1
  213. SEGINI,MCHPOI
  214. MTYPOI='CHALEUR '
  215. JATTRI(1)=2
  216. C* IFOPOI=IFOMOD
  217. IFOPOI=IFOUR
  218. SEGDES,MCHPOI
  219. CALL ECROBJ('CHPOINT',MCHPOI)
  220. RETURN
  221. ELSE
  222. IPMODE1=IPMODE
  223. ENDIF
  224.  
  225. C 3 - CALCUL DES FLUX NODAUX EQUIVALENTS
  226. C ========================================
  227. CALL CONVMA(IPMODE1,IPCHEL,IPCHP2,IPCONV)
  228. IF (IERR.NE.0) GOTO 10
  229.  
  230. C 4 - ECRITURE DU CHPOINT RESULTAT
  231. C ==================================
  232. C= Attribution d'une nature DISCRETE au CHPOINT resultat
  233. IF (IPCONV.NE.0) THEN
  234. MCHPOI=IPCONV
  235. SEGACT,MCHPOI
  236. NAT=MAX(JATTRI(/1),1)
  237. NSOUPO=IPCHP(/1)
  238. SEGADJ,MCHPOI
  239. JATTRI(1)=2
  240. SEGDES,MCHPOI
  241. CALL ECROBJ('CHPOINT',IPCONV)
  242. ENDIF
  243.  
  244. C 5 - MENAGE : Destruction de CHPOINT intermediaire
  245. C ==============
  246. 10 CALL DTCHPO(IPCHP2)
  247.  
  248. RETURN
  249. END
  250.  
  251.  
  252.  

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