Télécharger convec.eso

Retour à la liste

Numérotation des lignes :

  1. C CONVEC SOURCE CB215821 19/08/20 21:16:20 10287
  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. CALL ACTOBJ('MMODEL ',IPMODE,1)
  72. IF (IERR.NE.0) RETURN
  73.  
  74. C Selectionne dans le MMODEL la partie 'CONVECTION' et 'RAYONNEMENT'
  75. call selmod (ipmode,ipmod1,'CONVECTION' )
  76. call selmod (ipmode,ipmod2,'RAYONNEMENT')
  77. mmode1=ipmod1
  78. mmode2=ipmod2
  79. segact mmode1,mmode2
  80. if( mmode1.kmodel(/1).eq.0) then
  81. ipmode=mmode2
  82. segsup mmode1
  83. elseif( mmode2.kmodel(/1).eq.0) then
  84. ipmode=mmode1
  85. segsup mmode2
  86. else
  87. n1= mmode1.kmodel(/1)+mmode2.kmodel(/1)
  88. na=mmode1.kmodel(/1)
  89. segadj mmode1
  90. do io=1,mmode2.kmodel(/1)
  91. mmode1.kmodel(na+io)= mmode2.kmodel(io)
  92. enddo
  93. segsup mmode2
  94. ipmode=mmode1
  95. endif
  96.  
  97. C =====
  98. C 1.2 - Lecture OBLIGATOIRE du champ de caracteristiques (IPCHEL)
  99. C =====
  100. CALL MESLIR(-145)
  101. CALL LIROBJ('MCHAML ',IPIN,1,IRET)
  102. CALL ACTOBJ('MCHAML ',IPIN,1)
  103. IF (IERR.NE.0) RETURN
  104. CALL REDUAF(IPIN,IPMODE,IPCHEL,0,IR,KER)
  105. IF(IR .NE. 1) CALL ERREUR(KER)
  106. IF(IERR .NE. 0) RETURN
  107. C =====
  108. C 1.3 - Lecture OBLIGATOIRE des temperatures exterieures donnees par :
  109. C 1) un CHPOINT (IPCHPO)
  110. C ou 2) un mot ('T ') et un flottant (TE)
  111. C =====
  112. CALL MESLIR(-146)
  113. CALL LIROBJ('CHPOINT ',IPCHPO,0,IRET1)
  114. IF (IERR.NE.0) RETURN
  115. IF (IRET1.EQ.1) THEN
  116. CALL ECRCHA('GEOM')
  117. CALL ECROBJ('CHPOINT ',IPCHPO)
  118. CALL COPIER
  119. CALL LIROBJ('CHPOINT ',IPCHP2,0,IRET)
  120. IF(IERR.NE.0) RETURN
  121. ELSE
  122. CALL LIRCHA(MOT4,1,IRETOU)
  123. IRET2 = 0
  124. CALL PLACE(MOCNV,NBMOCV,IRET2,MOT4)
  125. IF (IRET2 .EQ. 0) THEN
  126. MOTERR(1:4)=MOT4
  127. CALL ERREUR(197)
  128. RETURN
  129. ENDIF
  130. IF (IERR.NE.0) RETURN
  131. CALL MESLIR(-147)
  132. CALL LIRREE(TE,1,IRET)
  133. IF (IERR.NE.0) RETURN
  134.  
  135. C Extraction du MAILLAGE du MODELE
  136. CALL EXTRA8(IPMODE,IPGEOM)
  137. IF (IERR.NE.0) RETURN
  138.  
  139. C Creation d'un CHPOINT de composante MOT4 et de valeur TE
  140. NSOUPO=1
  141. NAT =1
  142. SEGINI,MCHPOI
  143. IPCHP2 = MCHPOI
  144. MTYPOI = ' '
  145. MOCHDE = ' '
  146. IFOPOI = IFOMOD
  147. C NATURE 'DIFFUS'
  148. JATTRI(1)=1
  149. MELEME=IPGEOM
  150. CALL CHANGE(MELEME,1)
  151. IF (IERR .NE. 0) RETURN
  152. SEGACT,MELEME
  153. NC=1
  154. N =NUM(/2)
  155. SEGINI,MSOUPO,MPOVAL
  156. IPCHP(1) = MSOUPO
  157. NOCOMP(1)= MOT4
  158. IGEOC = MELEME
  159. IPOVAL = MPOVAL
  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. NSOU=KMODEL(/1)
  176. JRac=0
  177. N1=NSOU
  178. SEGINI,MMODE1
  179. DO iSou=1,NSOU
  180. IMODEL=KMODEL(iSou)
  181. NFOR=FORMOD(/2)
  182. nmat=matmod(/2)
  183. CALL PLACE(FORMOD,NFOR,IMO,'CONVECTION')
  184. call place (matmod,nmat,imoo,'CONVECTION')
  185. CALL PLACE2(IRAC(KRACC),NRACC,IOK,NEFMOD)
  186. IF (IOK.NE.0.AND.IMO+imoo.NE.0) THEN
  187. JRac=JRac+1
  188. ELSE
  189. MMODE1.KMODEL(iSou-JRac)=KMODEL(iSou)
  190. ENDIF
  191. ENDDO
  192. N1=NSOU-JRac
  193. C= Reduction du modele initial au modele sans elements raccords
  194. IF (N1.NE.0.AND.N1.NE.NSOU) THEN
  195. SEGADJ,MMODE1
  196. IPMODE1=MMODE1
  197. CALL REDUAF(IPCHEL,IPMODE1,IPCHE1,0,IRET,KERRE)
  198. IF (IRET.NE.1) THEN
  199. CALL ERREUR(KERRE)
  200. RETURN
  201. ENDIF
  202. C
  203. IPCHEL=IPCHE1
  204. C= Cas particulier du modele ne contenant que des elements raccords
  205. C= Le champ de flux nodaux equivalents est vide.
  206. ELSE IF (N1.EQ.0) THEN
  207. NSOUPO=0
  208. NAT=1
  209. SEGINI,MCHPOI
  210. MTYPOI='CHALEUR '
  211. JATTRI(1)=2
  212. IFOPOI=IFOUR
  213. CALL ACTOBJ('CHPOINT ',MCHPOI,1)
  214. CALL ECROBJ('CHPOINT ',MCHPOI)
  215. RETURN
  216. ELSE
  217. IPMODE1=IPMODE
  218. ENDIF
  219.  
  220. C 3 - CALCUL DES FLUX NODAUX EQUIVALENTS
  221. C ========================================
  222. CALL CONVMA(IPMODE1,IPCHEL,IPCHP2,IPCONV)
  223. IF (IERR.NE.0) GOTO 10
  224.  
  225. C 4 - ECRITURE DU CHPOINT RESULTAT
  226. C ==================================
  227. C= Attribution d'une nature DISCRETE au CHPOINT resultat
  228. IF (IPCONV.NE.0) THEN
  229. MCHPOI=IPCONV
  230. NAT=MAX(JATTRI(/1),1)
  231. NSOUPO=IPCHP(/1)
  232. SEGADJ,MCHPOI
  233. JATTRI(1)=2
  234. CALL ACTOBJ('CHPOINT ',IPCONV,1)
  235. CALL ECROBJ('CHPOINT ',IPCONV)
  236. ENDIF
  237.  
  238. C 5 - MENAGE : Destruction de CHPOINT intermediaire
  239. C ==============
  240. 10 CALL DTCHPO(IPCHP2)
  241.  
  242. END
  243.  
  244.  
  245.  
  246.  

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