1 : C KFPT SOURCE FANDEUR 13/01/29 21:15:57 7683 2 : SUBROUTINE KFPT 3 : C******************************************************************** 4 : C 5 : C CALCUL DE H : COEFFICIENT D'ECHANGE THERMIQUE 6 : C D'ORIGINE CONVECTIVE 7 : C 8 : C Dans le cadre de l'opérateur FPT : 9 : C 10 : C FPT 11 : C ------> KFPT : calcul de H 12 : C ------> ECHIMP : calcul des fonctions de paroi 13 : C sur la temperature 14 : C SYNTAXE : 15 : C H TETA = KFPT $DOM RO MU CP LB UET YP TN ; 16 : C 17 : C 18 : C 19 : C NU VISCOSITE CINEMATIQUE ---> flottant 20 : C UET U* ---> chpoint scal 21 : C YP DISTANCE A LA PAROI ---> flottant 22 : C ALFA DIFFUSIVITE ---> flottant 23 : C H COEFFICIENT D'ECHANGE ---> chpoint scal 24 : C THERMIQUE 25 : C TETA TEMPERATURE A LA PAROI ---> chpoint scal 26 : C 27 : C TN TEMPERATURE ---> chpoint scal 28 : C 29 : C 30 : C********************************************************************* 31 : IMPLICIT INTEGER(I-N) 32 : IMPLICIT REAL*8 (A-H,O-Z) 33 : CHARACTER*8 TYPE,MTYP 34 : C 35 : -INC SMCHPOI 36 : -INC SMLENTI 37 : -INC CCOPTIO 38 : POINTEUR MZUE.MPOVAL,MZYP.MPOVAL 39 : POINTEUR MZMU.MPOVAL,MZRO.MPOVAL,MZCP.MPOVAL,MZLB.MPOVAL 40 : POINTEUR MRO.MCHPOI,MMU.MCHPOI,MCP.MCHPOI,MLB.MCHPOI 41 : POINTEUR MZH.MPOVAL,MH.MCHPOI,MUE.MCHPOI 42 : C***************************************************************************** 43 : CFPT 44 : 44 : CALL LIROBJ('MMODEL',MMDZ,1,IRETOU) 45 : 46 : IF(IRETOU.NE.1)THEN 47 : C Indice %m1:8 : Indice %m9:16 non trouvé dans la table %m17:24 48 : MOTERR( 1: 8) = ' DOMZ ' 49 : MOTERR( 9:16) = ' DOMZ ' 50 : MOTERR(17:24) = ' KIZX ' 50 : CALL ERREUR(786) 51 : RETURN 52 : ENDIF 53 : 54 : C E/ MMODEL : Pointeur de la table contenant l'information cherchée 55 : C /S IPOINT : Pointeur sur la table DOMAINE 56 : C /S INEFMD : Type formulation INEFMD=1 LINE,=2 MACRO,=3 QUADRATIQUE 57 : C INEFMD=4 LINB 58 : 58 : CALL LEKMOD(MMDZ,MTABZ,INEFMD) 59 : 59 : CALL LEKTAB(MTABZ,'SOMMET',MELEMS) 60 : NC=1 60 : CALL CRCHPT(TYPE,MELEMS,NC,MH) 61 : SEGACT MH 62 : MSOUPO=MH.IPCHP(1) 63 : SEGACT MSOUPO 64 : MZH=IPOVAL 65 : SEGACT MZH 66 : NPT=MZH.VPOCHA(/1) 67 : 68 : C *** 69 : 70 : C *** LECTURE DES COEFFICIENTS *** 71 : C 1er coefficient : ro 71 : CALL QUETYP(MTYP,0,IRETOU) 72 : IF(IRETOU.EQ.0)THEN 73 : C% On ne trouve pas d'objet de type %m1:8 74 : MOTERR( 1: 8) = 'CHPOINT ' 74 : CALL ERREUR(37) 75 : RETURN 76 : ENDIF 77 : IF(MTYP.EQ.'FLOTTANT')THEN 78 : IK1=1 78 : CALL LIRREE(XRO,1,IRETOU) 79 : N=1 80 : NC=1 81 : SEGINI MZRO 82 : MZRO.VPOCHA(1,1)=XRO 83 : ELSEIF(MTYP.EQ.'CHPOINT')THEN 84 : IK1=0 84 : CALL LIROBJ(MTYP,MRO,1,IRETOU) 84 : CALL LRCHT(MRO,MZRO,TYPE,IGEOM) 84 : CALL KRIPAD(IGEOM,MLENT1) 84 : CALL VERPAD(MLENT1,MELEMS,IRET) 85 : IF(IRET.NE.0)THEN 86 : C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique 87 : MOTERR(1: 8) = 'RO ' 88 : MOTERR(9:16) = 'CHPOINT ' 89 : WRITE(IOIMP,*)'Opérateur : KFPT' 89 : CALL ERREUR(788) 90 : RETURN 91 : ENDIF 92 : ELSE 93 : C Option %m1:8 incompatible avec les données 94 : MOTERR( 1: 8) = 'EF/EFM1 ' 94 : CALL ERREUR(803) 95 : RETURN 96 : ENDIF 97 : 98 : C 2ème coefficient : mu 98 : CALL QUETYP(MTYP,0,IRETOU) 99 : IF(IRETOU.EQ.0)THEN 100 : C% On ne trouve pas d'objet de type %m1:8 101 : MOTERR( 1: 8) = 'CHPOINT ' 101 : CALL ERREUR(37) 102 : RETURN 103 : ENDIF 104 : IF(MTYP.EQ.'FLOTTANT')THEN 105 : IK2=1 105 : CALL LIRREE(XMU,1,IRETOU) 106 : N=1 107 : NC=1 108 : SEGINI MZMU 109 : MZMU.VPOCHA(1,1)=XMU 110 : ELSEIF(MTYP.EQ.'CHPOINT')THEN 111 : IK2=0 111 : CALL LIROBJ(MTYP,MMU,1,IRETOU) 111 : CALL LRCHT(MMU,MZMU,TYPE,IGEOM) 111 : CALL KRIPAD(IGEOM,MLENT1) 111 : CALL VERPAD(MLENT1,MELEMS,IRET) 112 : IF(IRET.NE.0)THEN 113 : C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique 114 : MOTERR(1: 8) = 'MU ' 115 : MOTERR(9:16) = 'CHPOINT ' 116 : WRITE(IOIMP,*)'Opérateur : KFPT' 116 : CALL ERREUR(788) 117 : RETURN 118 : ENDIF 119 : ELSE 120 : C Option %m1:8 incompatible avec les données 121 : MOTERR( 1: 8) = 'EF/EFM1 ' 121 : CALL ERREUR(803) 122 : RETURN 123 : ENDIF 124 : 125 : C 3ème coefficient : cp 125 : CALL QUETYP(MTYP,0,IRETOU) 126 : IF(IRETOU.EQ.0)THEN 127 : C% On ne trouve pas d'objet de type %m1:8 128 : MOTERR( 1: 8) = 'CHPOINT ' 128 : CALL ERREUR(37) 129 : RETURN 130 : ENDIF 131 : IF(MTYP.EQ.'FLOTTANT')THEN 132 : IK3=1 132 : CALL LIRREE(XCP,1,IRETOU) 133 : N=1 134 : NC=1 135 : SEGINI MZCP 136 : MZCP.VPOCHA(1,1)=XCP 137 : ELSEIF(MTYP.EQ.'CHPOINT')THEN 138 : IK3=0 138 : CALL LIROBJ(MTYP,MCP,1,IRETOU) 138 : CALL LRCHT(MCP,MZCP,TYPE,IGEOM) 138 : CALL KRIPAD(IGEOM,MLENT1) 138 : CALL VERPAD(MLENT1,MELEMS,IRET) 139 : IF(IRET.NE.0)THEN 140 : C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique 141 : MOTERR(1: 8) = 'CP ' 142 : MOTERR(9:16) = 'CHPOINT ' 143 : WRITE(IOIMP,*)'Opérateur : KFPT' 143 : CALL ERREUR(788) 144 : RETURN 145 : ENDIF 146 : ELSE 147 : C Option %m1:8 incompatible avec les données 148 : MOTERR( 1: 8) = 'EF/EFM1 ' 148 : CALL ERREUR(803) 149 : RETURN 150 : ENDIF 151 : 152 : C 4ème coefficient : lambda 152 : CALL QUETYP(MTYP,0,IRETOU) 153 : IF(IRETOU.EQ.0)THEN 154 : C% On ne trouve pas d'objet de type %m1:8 155 : MOTERR( 1: 8) = 'CHPOINT ' 155 : CALL ERREUR(37) 156 : RETURN 157 : ENDIF 158 : IF(MTYP.EQ.'FLOTTANT')THEN 159 : IK4=1 159 : CALL LIRREE(XLB,1,IRETOU) 160 : N=1 161 : NC=1 162 : SEGINI MZLB 163 : MZLB.VPOCHA(1,1)=XLB 164 : ELSEIF(MTYP.EQ.'CHPOINT')THEN 165 : IK4=0 165 : CALL LIROBJ(MTYP,MLB,1,IRETOU) 165 : CALL LRCHT(MLB,MZLB,TYPE,IGEOM) 165 : CALL KRIPAD(IGEOM,MLENT1) 165 : CALL VERPAD(MLENT1,MELEMS,IRET) 166 : IF(IRET.NE.0)THEN 167 : C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique 168 : MOTERR(1: 8) = 'LB ' 169 : MOTERR(9:16) = 'CHPOINT ' 170 : WRITE(IOIMP,*)'Opérateur : KFPT' 170 : CALL ERREUR(788) 171 : RETURN 172 : ENDIF 173 : ELSE 174 : C Option %m1:8 incompatible avec les données 175 : MOTERR( 1: 8) = 'EF/EFM1 ' 175 : CALL ERREUR(803) 176 : RETURN 177 : ENDIF 178 : 179 : C 5ème coefficient : uet 179 : CALL QUETYP(MTYP,0,IRETOU) 180 : IF(IRETOU.EQ.0)THEN 181 : C% On ne trouve pas d'objet de type %m1:8 182 : MOTERR( 1: 8) = 'CHPOINT ' 182 : CALL ERREUR(37) 183 : RETURN 184 : ENDIF 185 : IF(MTYP.EQ.'CHPOINT')THEN 186 : IK5=0 186 : CALL LIROBJ(MTYP,MUE,1,IRETOU) 186 : CALL LRCHT(MUE,MZUE,TYPE,IGEOM) 186 : CALL KRIPAD(IGEOM,MLENT1) 186 : CALL VERPAD(MLENT1,MELEMS,IRET) 187 : IF(IRET.NE.0)THEN 188 : C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique 189 : MOTERR(1: 8) = 'UE ' 190 : MOTERR(9:16) = 'CHPOINT ' 191 : WRITE(IOIMP,*)'Opérateur : KFPT' 191 : CALL ERREUR(788) 192 : RETURN 193 : ENDIF 194 : ELSE 195 : C Option %m1:8 incompatible avec les données 196 : MOTERR( 1: 8) = 'EF/EFM1 ' 196 : CALL ERREUR(803) 197 : RETURN 198 : ENDIF 199 : 200 : C 6ème coefficient : yp 201 : IK6=1 201 : CALL LIRREE(YP,1,IRETOU) 202 : IF(IRETOU.EQ.0)RETURN 203 : N=1 204 : NC=1 205 : SEGINI MZYP 206 : MZYP.VPOCHA(1,1)=YP 207 : 208 : C 7ème coefficient : h 209 : IK7 = 0 210 : 211 : 212 : 213 : C************************************************************************** 214 : C*****CALCUL DE H(NU,UET,YP,ALFA) 215 : C************************************************************************** 216 : 216 : CALL YKFPT (MZRO.VPOCHA(1,1),IK1,MZMU.VPOCHA(1,1),IK2, 217 : &MZCP.VPOCHA(1,1),IK3,MZLB.VPOCHA(1,1),IK4, 218 : &MZUE.VPOCHA,MZYP.VPOCHA,MZH.VPOCHA,NPT) 219 : 220 : SEGDES MZUE,MZH,MZYP 221 : SEGDES MUE,MH 222 : 223 : IF(IK1.EQ.0)THEN 224 : SEGDES MRO,MZRO 225 : ELSE 226 : SEGSUP MZRO 227 : ENDIF 228 : 229 : IF(IK2.EQ.0)THEN 230 : SEGDES MMU,MZMU 231 : ELSE 232 : SEGSUP MZMU 233 : ENDIF 234 : 235 : IF(IK3.EQ.0)THEN 236 : SEGDES MCP,MZCP 237 : ELSE 238 : SEGSUP MZCP 239 : ENDIF 240 : 241 : IF(IK4.EQ.0)THEN 242 : SEGDES MLB,MZLB 243 : ELSE 244 : SEGSUP MZLB 245 : ENDIF 246 : 247 : 247 : CALL ECROBJ('CHPOINT',MH) 248 : 249 : RETURN 250 : END 251 : 252 : 253 : 254 : 255 :
© Cast3M 2003 - All rights reserved.
Disclaimer