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