Télécharger convec.eso

Retour à la liste

Numérotation des lignes :

convec
  1. C CONVEC SOURCE CB215821 24/04/12 21:15:28 11897
  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.  
  38. -INC PPARAM
  39. -INC CCOPTIO
  40. -INC SMMODEL
  41. -INC SMCHPOI
  42. -INC SMELEME
  43. -INC SMCOORD
  44.  
  45. PARAMETER (NBRAC=7,NP=6)
  46. INTEGER IRAC(NBRAC)
  47. PARAMETER (NBMOCV=3)
  48. CHARACTER*(LOCOMP) MOCNV(NBMOCV),MOCOMP
  49.  
  50. DATA MOCNV/ 'T ','TINF','TSUP' /
  51.  
  52. C Elem. RACCORD : RAC2 RAC3 LIA3 LIA4 LIA6 LIA8 SEG2
  53. C Cas Particulier : en 1D, SEG2 = element RACCORD (OF)
  54. C ---------------
  55. DATA IRAC / 12 , 13 , 18 , 19 , 20 , 21 , 2 /
  56.  
  57. segact mcoord
  58. C Petit traitement pour le cas 1D : on simule l'element raccord 1D via
  59. C un element fini SEG2 (cela evite de creer un nouvel element fini)
  60. IF (IDIM.EQ.1) THEN
  61. KRACC=7
  62. NRACC=1
  63. ELSE
  64. KRACC=1
  65. NRACC=NP
  66. ENDIF
  67.  
  68. C 1 - LECTURE DES ARGUMENTS DE L'OPERATEUR
  69. C ==========================================
  70. C 1.1 - Lecture OBLIGATOIRE du modele (IPMODL)
  71. C =====
  72. MOTERR(1:8)=' MODELE '
  73. CALL MESLIR(-137)
  74. CALL LIROBJ('MMODEL ',IPMODE,1,IRET)
  75. CALL ACTOBJ('MMODEL ',IPMODE,1)
  76. IF (IERR.NE.0) RETURN
  77.  
  78. C Selectionne dans le MMODEL la partie 'CONVECTION' et 'RAYONNEMENT'
  79. call selmod (ipmode,ipmod1,'CONVECTION' )
  80. call selmod (ipmode,ipmod2,'RAYONNEMENT')
  81. mmode1=ipmod1
  82. mmode2=ipmod2
  83. segact mmode1,mmode2
  84. if( mmode1.kmodel(/1).eq.0) then
  85. ipmode=mmode2
  86. segsup mmode1
  87. elseif( mmode2.kmodel(/1).eq.0) then
  88. ipmode=mmode1
  89. segsup mmode2
  90. else
  91. n1= mmode1.kmodel(/1)+mmode2.kmodel(/1)
  92. na=mmode1.kmodel(/1)
  93. segadj mmode1
  94. do io=1,mmode2.kmodel(/1)
  95. mmode1.kmodel(na+io)= mmode2.kmodel(io)
  96. enddo
  97. segsup mmode2
  98. ipmode=mmode1
  99. endif
  100.  
  101. C =====
  102. C 1.2 - Lecture OBLIGATOIRE du champ de caracteristiques (IPCHEL)
  103. C =====
  104. CALL MESLIR(-145)
  105. CALL LIROBJ('MCHAML ',IPIN,1,IRET)
  106. CALL ACTOBJ('MCHAML ',IPIN,1)
  107. IF (IERR.NE.0) RETURN
  108. CALL REDUAF(IPIN,IPMODE,IPCHEL,0,IR,KER)
  109. IF(IR .NE. 1) CALL ERREUR(KER)
  110. IF(IERR .NE. 0) RETURN
  111. C =====
  112. C 1.3 - Lecture OBLIGATOIRE des temperatures exterieures donnees par :
  113. C 1) un CHPOINT (IPCHPO)
  114. C ou 2) un mot ('T ') et un flottant (TE)
  115. C =====
  116. CALL MESLIR(-146)
  117. CALL LIROBJ('CHPOINT ',IPCHPO,0,IRET1)
  118. IF (IERR.NE.0) RETURN
  119. IF (IRET1.EQ.1) THEN
  120. CALL ECRCHA('GEOM')
  121. CALL ECROBJ('CHPOINT ',IPCHPO)
  122. CALL COPIER
  123. CALL LIROBJ('CHPOINT ',IPCHP2,0,IRET)
  124. IF(IERR.NE.0) RETURN
  125. ELSE
  126. CALL LIRCHA(MOCOMP,1,IRETOU)
  127. IRET2 = 0
  128. CALL PLACE(MOCNV,NBMOCV,IRET2,MOCOMP)
  129. IF (IRET2 .EQ. 0) THEN
  130. MOTERR=MOCOMP
  131. CALL ERREUR(197)
  132. RETURN
  133. ENDIF
  134. IF (IERR.NE.0) RETURN
  135. CALL MESLIR(-147)
  136. CALL LIRREE(TE,1,IRET)
  137. IF (IERR.NE.0) RETURN
  138.  
  139. C Extraction du MAILLAGE du MODELE
  140. CALL EXTRA8(IPMODE,IPGEOM)
  141. IF (IERR.NE.0) RETURN
  142.  
  143. C Creation d'un CHPOINT de composante MOCOMP et de valeur TE
  144. NSOUPO=1
  145. NAT =1
  146. SEGINI,MCHPOI
  147. IPCHP2 = MCHPOI
  148. MTYPOI = ' '
  149. MOCHDE = ' '
  150. IFOPOI = IFOUR
  151. C NATURE 'DIFFUS'
  152. JATTRI(1)=1
  153. MELEME=IPGEOM
  154. CALL CHANGE(MELEME,1)
  155. IF (IERR .NE. 0) RETURN
  156. SEGACT,MELEME
  157. NC=1
  158. N =NUM(/2)
  159. SEGINI,MSOUPO,MPOVAL
  160. IPCHP(1) = MSOUPO
  161. NOCOMP(1)= MOCOMP
  162. IGEOC = MELEME
  163. IPOVAL = MPOVAL
  164.  
  165. C ADDITION a ce CHPOINT nul du FLOTTANT TE
  166. C IOPERA= 3 pour l'operation ADDITION
  167. C IARGU = 2 pour FLOTTANT
  168. ICH = MCHPOI
  169. IOPERA= 3
  170. IARGU = 2
  171. I1 = 0
  172. CALL OPCHP1(ICH,IOPERA,IARGU,I1,TE,IPCHP2,IRET)
  173. IF (IERR.NE.0) RETURN
  174. ENDIF
  175.  
  176. C 2 - EXTRACTION DES ELEMENTS RACCORDS DU MODELE (s'ils existent)
  177. C ================================================
  178. MMODEL=IPMODE
  179. NSOU=KMODEL(/1)
  180. JRac=0
  181. N1=NSOU
  182. SEGINI,MMODE1
  183. DO iSou=1,NSOU
  184. IMODEL=KMODEL(iSou)
  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. ENDDO
  196. N1=NSOU-JRac
  197. C= Reduction du modele initial au modele sans elements raccords
  198. IF (N1.NE.0.AND.N1.NE.NSOU) THEN
  199. SEGADJ,MMODE1
  200. IPMODE1=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. IFOPOI=IFOUR
  217. CALL ACTOBJ('CHPOINT ',MCHPOI,1)
  218. CALL ECROBJ('CHPOINT ',MCHPOI)
  219. RETURN
  220. ELSE
  221. IPMODE1=IPMODE
  222. ENDIF
  223.  
  224. C 3 - CALCUL DES FLUX NODAUX EQUIVALENTS
  225. C ========================================
  226. CALL CONVMA(IPMODE1,IPCHEL,IPCHP2,IPCONV)
  227. IF (IERR.NE.0) GOTO 10
  228.  
  229. C 4 - ECRITURE DU CHPOINT RESULTAT
  230. C ==================================
  231. C= Attribution d'une nature DISCRETE au CHPOINT resultat
  232. IF (IPCONV.NE.0) THEN
  233. MCHPOI=IPCONV
  234. NAT=MAX(JATTRI(/1),1)
  235. NSOUPO=IPCHP(/1)
  236. SEGADJ,MCHPOI
  237. JATTRI(1)=2
  238. CALL ACTOBJ('CHPOINT ',IPCONV,1)
  239. CALL ECROBJ('CHPOINT ',IPCONV)
  240. ENDIF
  241.  
  242. C 5 - MENAGE : Destruction de CHPOINT intermediaire
  243. C ==============
  244. 10 CALL DTCHPO(IPCHP2)
  245.  
  246. END
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  

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