Télécharger convec.eso

Retour à la liste

Numérotation des lignes :

  1. C CONVEC SOURCE CB215821 18/09/21 21:15:32 9930
  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 ACTOBJ('MMODEL ',IPMODE,1)
  102. CALL ACTOBJ('MCHAML ',IPIN ,1)
  103. CALL REDUAF(IPIN,IPMODE,IPCHEL,0,IR,KER)
  104. IF(IR .NE. 1) CALL ERREUR(KER)
  105. IF(IERR .NE. 0) RETURN
  106. C =====
  107. C 1.3 - Lecture OBLIGATOIRE des temperatures exterieures donnees par :
  108. C 1) un CHPOINT (IPCHPO)
  109. C ou 2) un mot ('T ') et un flottant (TE)
  110. C =====
  111. CALL MESLIR(-146)
  112. CALL LIROBJ('CHPOINT',IPCHPO,0,IRET1)
  113. IF (IERR.NE.0) RETURN
  114. IF (IRET1.EQ.1) THEN
  115. CALL ECRCHA('GEOM')
  116. CALL ECROBJ('CHPOINT',IPCHPO)
  117. CALL COPIER
  118. CALL LIROBJ('CHPOINT',IPCHP2,0,IRET)
  119. IF (IERR.NE.0) RETURN
  120. ELSE
  121. CALL LIRCHA(MOT4,1,IRETOU)
  122. IRET2 = 0
  123. CALL PLACE(MOCNV,NBMOCV,IRET2,MOT4)
  124. IF (IRET2 .EQ. 0) THEN
  125. MOTERR(1:4)=MOT4
  126. CALL ERREUR(197)
  127. RETURN
  128. ENDIF
  129. IF (IERR.NE.0) RETURN
  130. CALL MESLIR(-147)
  131. CALL LIRREE(TE,1,IRET)
  132. IF (IERR.NE.0) RETURN
  133.  
  134. C Extraction du MAILLAGE du MODELE
  135. CALL EXTRA8(IPMODE,IPGEOM)
  136. IF (IERR.NE.0) RETURN
  137.  
  138. C Creation d'un CHPOINT de composante MOT4 et de valeur TE
  139. NSOUPO=1
  140. NAT =1
  141. SEGINI,MCHPOI
  142. IPCHP2 = MCHPOI
  143. MTYPOI = ' '
  144. MOCHDE = ' '
  145. IFOPOI = IFOMOD
  146. C NATURE 'DIFFUS'
  147. JATTRI(1)=1
  148. MELEME=IPGEOM
  149. CALL CHANGE(MELEME,1)
  150. IF (IERR .NE. 0) RETURN
  151. SEGACT,MELEME
  152. NC=1
  153. N =NUM(/2)
  154. C SEGDES,MELEME
  155. SEGINI,MSOUPO,MPOVAL
  156. IPCHP(1) = MSOUPO
  157. NOCOMP(1)= MOT4
  158. IGEOC = MELEME
  159. IPOVAL = MPOVAL
  160. SEGACT,MSOUPO,MPOVAL
  161. SEGACT,MCHPOI
  162.  
  163. C ADDITION a ce CHPOINT nul du FLOTTANT TE
  164. C IOPERA= 3 pour l'operation ADDITION
  165. C IARGU = 2 pour FLOTTANT
  166. ICH = MCHPOI
  167. IOPERA= 3
  168. IARGU = 2
  169. I1 = 0
  170. CALL OPCHP1(ICH,IOPERA,IARGU,I1,TE,IPCHP2,IRET)
  171. IF (IERR.NE.0) RETURN
  172. ENDIF
  173.  
  174. C 2 - EXTRACTION DES ELEMENTS RACCORDS DU MODELE (s'ils existent)
  175. C ================================================
  176. MMODEL=IPMODE
  177. SEGACT,MMODEL
  178. NSOU=KMODEL(/1)
  179. JRac=0
  180. N1=NSOU
  181. SEGINI,MMODE1
  182. DO iSou=1,NSOU
  183. IMODEL=KMODEL(iSou)
  184. SEGACT,IMODEL
  185. NFOR=FORMOD(/2)
  186. nmat=matmod(/2)
  187. CALL PLACE(FORMOD,NFOR,IMO,'CONVECTION')
  188. call place (matmod,nmat,imoo,'CONVECTION')
  189. CALL PLACE2(IRAC(KRACC),NRACC,IOK,NEFMOD)
  190. IF (IOK.NE.0.AND.IMO+imoo.NE.0) THEN
  191. JRac=JRac+1
  192. ELSE
  193. MMODE1.KMODEL(iSou-JRac)=KMODEL(iSou)
  194. ENDIF
  195. C SEGDES,IMODEL
  196. ENDDO
  197. N1=NSOU-JRac
  198. C= Reduction du modele initial au modele sans elements raccords
  199. IF (N1.NE.0.AND.N1.NE.NSOU) THEN
  200. SEGADJ,MMODE1
  201. IPMODE1=MMODE1
  202. C SEGDES,MMODE1
  203. CALL REDUAF(IPCHEL,IPMODE1,IPCHE1,0,IRET,KERRE)
  204. IF (IRET.NE.1) THEN
  205. CALL ERREUR(KERRE)
  206. RETURN
  207. ENDIF
  208. C
  209. IPCHEL=IPCHE1
  210. C= Cas particulier du modele ne contenant que des elements raccords
  211. C= Le champ de flux nodaux equivalents est vide.
  212. ELSE IF (N1.EQ.0) THEN
  213. NSOUPO=0
  214. NAT=1
  215. SEGINI,MCHPOI
  216. MTYPOI='CHALEUR '
  217. JATTRI(1)=2
  218. C* IFOPOI=IFOMOD
  219. IFOPOI=IFOUR
  220. SEGACT,MCHPOI
  221. CALL ECROBJ('CHPOINT',MCHPOI)
  222. RETURN
  223. ELSE
  224. IPMODE1=IPMODE
  225. ENDIF
  226.  
  227. C 3 - CALCUL DES FLUX NODAUX EQUIVALENTS
  228. C ========================================
  229. CALL CONVMA(IPMODE1,IPCHEL,IPCHP2,IPCONV)
  230. IF (IERR.NE.0) GOTO 10
  231.  
  232. C 4 - ECRITURE DU CHPOINT RESULTAT
  233. C ==================================
  234. C= Attribution d'une nature DISCRETE au CHPOINT resultat
  235. IF (IPCONV.NE.0) THEN
  236. MCHPOI=IPCONV
  237. SEGACT,MCHPOI
  238. NAT=MAX(JATTRI(/1),1)
  239. NSOUPO=IPCHP(/1)
  240. SEGADJ,MCHPOI
  241. JATTRI(1)=2
  242. SEGACT,MCHPOI
  243. CALL ECROBJ('CHPOINT',IPCONV)
  244. ENDIF
  245.  
  246. C 5 - MENAGE : Destruction de CHPOINT intermediaire
  247. C ==============
  248. 10 CALL DTCHPO(IPCHP2)
  249.  
  250. RETURN
  251. END
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  

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