Download convec.eso

Back to the list

   1 : C CONVEC    SOURCE    CHAT      12/06/07    21:15:10     7389           
   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 : 
  41 :       PARAMETER (NBRAC=7,NP=6)
  42 :       INTEGER IRAC(NBRAC)
  43 :       CHARACTER*4 MOCNV(1)
  44 : 
  45 :       DATA MOCNV(1) / 'T   ' /
  46 : 
  47 : C Elem. RACCORD : RAC2 RAC3 LIA3 LIA4 LIA6 LIA8 SEG2
  48 : C Cas Particulier : en 1D, SEG2 = element RACCORD (OF)
  49 : C ---------------
  50 :       DATA IRAC /  12 , 13 , 18 , 19 , 20 , 21 ,  2  /
  51 : 
  52 : C Petit traitement pour le cas 1D : on simule l'element raccord 1D via
  53 : C un element fini SEG2 (cela evite de creer un nouvel element fini)
  54 :       IF (IDIM.EQ.1) THEN
  55 :         KRACC=7
  56 :         NRACC=1
  57 :       ELSE
  58 :         KRACC=1
  59 :         NRACC=NP
  60 :       ENDIF
  61 : 
  62 : C  1 - LECTURE DES ARGUMENTS DE L'OPERATEUR
  63 : C ==========================================
  64 : C  1.1 - Lecture OBLIGATOIRE du modele (IPMODL)
  65 : C =====
  66 :       MOTERR(1:8)=' MODELE '
  66 :       CALL MESLIR(-137)
  66 :       CALL LIROBJ('MMODEL',IPMODE,1,IRET)
  67 :       IF (IERR.NE.0) RETURN
  67 :       call selmod (ipmode,ipmod1,'CONVECTION')
  67 :       call selmod ( ipmode,ipmod2,'RAYONNEMENT')
  68 :       mmode1=ipmod1
  69 :       mmode2=ipmod2
  70 :       segact mmode1,mmode2
  71 :       if( mmode1.kmodel(/1).eq.0) then 
  72 :         ipmode=mmode2
  73 :         segsup mmode1
  74 :       elseif( mmode2.kmodel(/1).eq.0) then 
  75 :         ipmode=mmode1
  76 :         segsup mmode2
  77 :       else
  78 :         n1= mmode1.kmodel(/1)+mmode2.kmodel(/1)
  79 :         na=mmode1.kmodel(/1)
  80 :         segadj mmode1        
  81 :         do io=1,mmode2.kmodel(/1)
  82 :           mmode1.kmodel(na+io)= mmode2.kmodel(io)
  83 :         enddo
  84 :         segsup mmode2
  85 :         ipmode=mmode1
  86 :       endif
  87 :            
  88 : C =====
  89 : C  1.2 - Lecture OBLIGATOIRE du champ de caracteristiques (IPCHEL)
  90 : C =====
  90 :       CALL MESLIR(-145)
  90 :       CALL LIROBJ('MCHAML',IPCHEL,1,IRET)
  91 :       IF (IERR.NE.0) RETURN
  92 : C =====
  93 : C  1.3 - Lecture OBLIGATOIRE des temperatures exterieures donnees par :
  94 : C           1) un CHPOINT (IPCHPO)
  95 : C        ou 2) un mot ('T   ') et un flottant (TE)
  96 : C =====
  96 :       CALL MESLIR(-146)
  96 :       CALL LIROBJ('CHPOINT',IPCHPO,0,IRET1)
  97 :       IF (IERR.NE.0) RETURN
  98 :       IF (IRET1.EQ.1) THEN
  98 :         CALL ECRCHA('GEOM')
  98 :         CALL ECROBJ('CHPOINT',IPCHPO)
  98 :         CALL COPIER
  98 :         CALL LIROBJ('CHPOINT',IPCHP2,0,IRET)
  99 :         IF (IERR.NE.0) RETURN
 100 :       ELSE
 100 :         CALL LIRMOT(MOCNV,1,IRET,1)
 101 :         IF (IERR.NE.0) RETURN
 101 :         CALL MESLIR(-147)
 101 :         CALL LIRREE(TE,1,IRET)
 102 :         IF (IERR.NE.0) RETURN
 102 :         CALL EXTRA8(IPMODE,IPGEOM)
 103 :         IF (IERR.NE.0) RETURN
 103 :         CALL MANUC2(TE,IPGEOM,1,IPCHP2)
 104 :         IF (IERR.NE.0) RETURN
 105 :       ENDIF
 106 : 
 107 : C  2 - EXTRACTION DES ELEMENTS RACCORDS DU MODELE (s'ils existent)
 108 : C ================================================
 109 :       MMODEL=IPMODE
 110 :       SEGACT,MMODEL
 111 :       NSOU=KMODEL(/1)
 112 :       JRac=0
 113 :       N1=NSOU
 114 :       SEGINI,MMODE1
 115 :       DO iSou=1,NSOU
 116 :         IMODEL=KMODEL(iSou)
 117 :         SEGACT,IMODEL
 118 :         NFOR=FORMOD(/2)
 119 :         nmat=matmod(/2)
 119 :         CALL PLACE(FORMOD,NFOR,IMO,'CONVECTION')
 119 :         call place (matmod,nmat,imoo,'CONVECTION') 
 119 :         CALL PLACE2(IRAC(KRACC),NRACC,IOK,NEFMOD)
 120 :         IF (IOK.NE.0.AND.IMO+imoo.NE.0) THEN
 121 :           JRac=JRac+1
 122 :         ELSE
 123 :           MMODE1.KMODEL(iSou-JRac)=KMODEL(iSou)
 124 :         ENDIF
 125 :         SEGDES,IMODEL
 126 :       ENDDO
 127 :       N1=NSOU-JRac
 128 : C= Reduction du modele initial au modele sans elements raccords
 129 :       IF (N1.NE.0.AND.N1.NE.NSOU) THEN
 130 :         SEGADJ,MMODE1
 131 :         IPMODE1=MMODE1
 132 :         SEGDES,MMODE1
 132 :         CALL REDUAF(IPCHEL,IPMODE1,IPCHE1,0,IRET,KERRE)
 133 :         IF (IRET.NE.1) THEN 
 133 :           CALL ERREUR(KERRE)
 134 :           RETURN
 135 :         ENDIF
 136 : *
 137 :         IPCHEL=IPCHE1
 138 : C= Cas particulier du modele ne contenant que des elements raccords
 139 : C= Le champ de flux nodaux equivalents est vide.
 140 :       ELSE IF (N1.EQ.0) THEN
 141 :         NSOUPO=0
 142 :         NAT=1
 143 :         SEGINI,MCHPOI
 144 :         MTYPOI='CHALEUR '
 145 :         JATTRI(1)=2
 146 : C*      IFOPOI=IFOMOD
 147 :         IFOPOI=IFOUR
 148 :         SEGDES,MCHPOI
 148 :         CALL ECROBJ('CHPOINT',MCHPOI)
 149 :         RETURN
 150 :       ELSE
 151 :         IPMODE1=IPMODE
 152 :       ENDIF
 153 : 
 154 : C  3 - CALCUL DES FLUX NODAUX EQUIVALENTS
 155 : C ========================================
 155 :       CALL CONVMA(IPMODE1,IPCHEL,IPCHP2,IPCONV)
 156 :       IF (IERR.NE.0) GOTO 10
 157 : 
 158 : C  4 - ECRITURE DU CHPOINT RESULTAT
 159 : C ==================================
 160 : C= Attribution d'une nature DISCRETE au CHPOINT resultat
 161 :       IF (IPCONV.NE.0) THEN
 162 :         MCHPOI=IPCONV
 163 :         SEGACT,MCHPOI
 164 :         NAT=MAX(JATTRI(/1),1)
 165 :         NSOUPO=IPCHP(/1)
 166 :         SEGADJ,MCHPOI
 167 :         JATTRI(1)=2
 168 :         SEGDES,MCHPOI
 168 :         CALL ECROBJ('CHPOINT',IPCONV)
 169 :       ENDIF
 170 : 
 171 : C  5 - MENAGE : Destruction de CHPOINT intermediaire
 172 : C ==============
 172 :  10   CALL DTCHPO(IPCHP2)
 173 : 
 174 :       RETURN
 175 :       END
 176 : 
 177 :  
 178 :  
 179 :  
 180 :  
 181 :  
 182 :  

© Cast3M 2003 - All rights reserved.
Disclaimer