Télécharger kfpt.eso

Retour à la liste

Numérotation des lignes :

  1. C KFPT SOURCE GOUNAND 14/05/28 21:15:09 8056
  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.  
  45. CALL LIROBJ('MMODEL',MMDZ,1,IRETOU)
  46.  
  47. IF(IRETOU.NE.1)THEN
  48. C Indice %m1:8 : Indice %m9:16 non trouvé dans la table %m17:24
  49. MOTERR( 1: 8) = ' DOMZ '
  50. MOTERR( 9:16) = ' DOMZ '
  51. MOTERR(17:24) = ' KIZX '
  52. CALL ERREUR(786)
  53. RETURN
  54. ENDIF
  55.  
  56. C E/ MMODEL : Pointeur de la table contenant l'information cherchée
  57. C /S IPOINT : Pointeur sur la table DOMAINE
  58. C /S INEFMD : Type formulation INEFMD=1 LINE,=2 MACRO,=3 QUADRATIQUE
  59. C INEFMD=4 LINB
  60.  
  61. CALL LEKMOD(MMDZ,MTABZ,INEFMD)
  62.  
  63. CALL LEKTAB(MTABZ,'SOMMET',MELEMS)
  64. NC=1
  65. TYPE=' '
  66. CALL CRCHPT(TYPE,MELEMS,NC,MH)
  67. SEGACT MH
  68. MSOUPO=MH.IPCHP(1)
  69. SEGACT MSOUPO
  70. MZH=IPOVAL
  71. SEGACT MZH
  72. NPT=MZH.VPOCHA(/1)
  73.  
  74. C ***
  75.  
  76. C *** LECTURE DES COEFFICIENTS ***
  77. C 1er coefficient : ro
  78. CALL QUETYP(MTYP,0,IRETOU)
  79. IF(IRETOU.EQ.0)THEN
  80. C% On ne trouve pas d'objet de type %m1:8
  81. MOTERR( 1: 8) = 'CHPOINT '
  82. CALL ERREUR(37)
  83. RETURN
  84. ENDIF
  85. IF(MTYP.EQ.'FLOTTANT')THEN
  86. IK1=1
  87. CALL LIRREE(XRO,1,IRETOU)
  88. N=1
  89. NC=1
  90. SEGINI MZRO
  91. MZRO.VPOCHA(1,1)=XRO
  92. ELSEIF(MTYP.EQ.'CHPOINT')THEN
  93. IK1=0
  94. CALL LIROBJ(MTYP,MRO,1,IRETOU)
  95. CALL LRCHT(MRO,MZRO,TYPE,IGEOM)
  96. CALL KRIPAD(IGEOM,MLENT1)
  97. CALL VERPAD(MLENT1,MELEMS,IRET)
  98. IF(IRET.NE.0)THEN
  99. C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  100. MOTERR(1: 8) = 'RO '
  101. MOTERR(9:16) = 'CHPOINT '
  102. WRITE(IOIMP,*)'Opérateur : KFPT'
  103. CALL ERREUR(788)
  104. RETURN
  105. ENDIF
  106. ELSE
  107. C Option %m1:8 incompatible avec les données
  108. MOTERR( 1: 8) = 'EF/EFM1 '
  109. CALL ERREUR(803)
  110. RETURN
  111. ENDIF
  112.  
  113. C 2ème coefficient : mu
  114. CALL QUETYP(MTYP,0,IRETOU)
  115. IF(IRETOU.EQ.0)THEN
  116. C% On ne trouve pas d'objet de type %m1:8
  117. MOTERR( 1: 8) = 'CHPOINT '
  118. CALL ERREUR(37)
  119. RETURN
  120. ENDIF
  121. IF(MTYP.EQ.'FLOTTANT')THEN
  122. IK2=1
  123. CALL LIRREE(XMU,1,IRETOU)
  124. N=1
  125. NC=1
  126. SEGINI MZMU
  127. MZMU.VPOCHA(1,1)=XMU
  128. ELSEIF(MTYP.EQ.'CHPOINT')THEN
  129. IK2=0
  130. CALL LIROBJ(MTYP,MMU,1,IRETOU)
  131. CALL LRCHT(MMU,MZMU,TYPE,IGEOM)
  132. CALL KRIPAD(IGEOM,MLENT1)
  133. CALL VERPAD(MLENT1,MELEMS,IRET)
  134. IF(IRET.NE.0)THEN
  135. C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  136. MOTERR(1: 8) = 'MU '
  137. MOTERR(9:16) = 'CHPOINT '
  138. WRITE(IOIMP,*)'Opérateur : KFPT'
  139. CALL ERREUR(788)
  140. RETURN
  141. ENDIF
  142. ELSE
  143. C Option %m1:8 incompatible avec les données
  144. MOTERR( 1: 8) = 'EF/EFM1 '
  145. CALL ERREUR(803)
  146. RETURN
  147. ENDIF
  148.  
  149. C 3ème coefficient : cp
  150. CALL QUETYP(MTYP,0,IRETOU)
  151. IF(IRETOU.EQ.0)THEN
  152. C% On ne trouve pas d'objet de type %m1:8
  153. MOTERR( 1: 8) = 'CHPOINT '
  154. CALL ERREUR(37)
  155. RETURN
  156. ENDIF
  157. IF(MTYP.EQ.'FLOTTANT')THEN
  158. IK3=1
  159. CALL LIRREE(XCP,1,IRETOU)
  160. N=1
  161. NC=1
  162. SEGINI MZCP
  163. MZCP.VPOCHA(1,1)=XCP
  164. ELSEIF(MTYP.EQ.'CHPOINT')THEN
  165. IK3=0
  166. CALL LIROBJ(MTYP,MCP,1,IRETOU)
  167. CALL LRCHT(MCP,MZCP,TYPE,IGEOM)
  168. CALL KRIPAD(IGEOM,MLENT1)
  169. CALL VERPAD(MLENT1,MELEMS,IRET)
  170. IF(IRET.NE.0)THEN
  171. C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  172. MOTERR(1: 8) = 'CP '
  173. MOTERR(9:16) = 'CHPOINT '
  174. WRITE(IOIMP,*)'Opérateur : KFPT'
  175. CALL ERREUR(788)
  176. RETURN
  177. ENDIF
  178. ELSE
  179. C Option %m1:8 incompatible avec les données
  180. MOTERR( 1: 8) = 'EF/EFM1 '
  181. CALL ERREUR(803)
  182. RETURN
  183. ENDIF
  184.  
  185. C 4ème coefficient : lambda
  186. CALL QUETYP(MTYP,0,IRETOU)
  187. IF(IRETOU.EQ.0)THEN
  188. C% On ne trouve pas d'objet de type %m1:8
  189. MOTERR( 1: 8) = 'CHPOINT '
  190. CALL ERREUR(37)
  191. RETURN
  192. ENDIF
  193. IF(MTYP.EQ.'FLOTTANT')THEN
  194. IK4=1
  195. CALL LIRREE(XLB,1,IRETOU)
  196. N=1
  197. NC=1
  198. SEGINI MZLB
  199. MZLB.VPOCHA(1,1)=XLB
  200. ELSEIF(MTYP.EQ.'CHPOINT')THEN
  201. IK4=0
  202. CALL LIROBJ(MTYP,MLB,1,IRETOU)
  203. CALL LRCHT(MLB,MZLB,TYPE,IGEOM)
  204. CALL KRIPAD(IGEOM,MLENT1)
  205. CALL VERPAD(MLENT1,MELEMS,IRET)
  206. IF(IRET.NE.0)THEN
  207. C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  208. MOTERR(1: 8) = 'LB '
  209. MOTERR(9:16) = 'CHPOINT '
  210. WRITE(IOIMP,*)'Opérateur : KFPT'
  211. CALL ERREUR(788)
  212. RETURN
  213. ENDIF
  214. ELSE
  215. C Option %m1:8 incompatible avec les données
  216. MOTERR( 1: 8) = 'EF/EFM1 '
  217. CALL ERREUR(803)
  218. RETURN
  219. ENDIF
  220.  
  221. C 5ème coefficient : uet
  222. CALL QUETYP(MTYP,0,IRETOU)
  223. IF(IRETOU.EQ.0)THEN
  224. C% On ne trouve pas d'objet de type %m1:8
  225. MOTERR( 1: 8) = 'CHPOINT '
  226. CALL ERREUR(37)
  227. RETURN
  228. ENDIF
  229. IF(MTYP.EQ.'CHPOINT')THEN
  230. IK5=0
  231. CALL LIROBJ(MTYP,MUE,1,IRETOU)
  232. CALL LRCHT(MUE,MZUE,TYPE,IGEOM)
  233. CALL KRIPAD(IGEOM,MLENT1)
  234. CALL VERPAD(MLENT1,MELEMS,IRET)
  235. IF(IRET.NE.0)THEN
  236. C% Indice %m1:8 : L'objet %m9:16 n'a pas le bon support géométrique
  237. MOTERR(1: 8) = 'UE '
  238. MOTERR(9:16) = 'CHPOINT '
  239. WRITE(IOIMP,*)'Opérateur : KFPT'
  240. CALL ERREUR(788)
  241. RETURN
  242. ENDIF
  243. ELSE
  244. C Option %m1:8 incompatible avec les données
  245. MOTERR( 1: 8) = 'EF/EFM1 '
  246. CALL ERREUR(803)
  247. RETURN
  248. ENDIF
  249.  
  250. C 6ème coefficient : yp
  251. IK6=1
  252. CALL LIRREE(YP,1,IRETOU)
  253. IF(IRETOU.EQ.0)RETURN
  254. N=1
  255. NC=1
  256. SEGINI MZYP
  257. MZYP.VPOCHA(1,1)=YP
  258.  
  259. C 7ème coefficient : h
  260. IK7 = 0
  261.  
  262.  
  263.  
  264. C**************************************************************************
  265. C*****CALCUL DE H(NU,UET,YP,ALFA)
  266. C**************************************************************************
  267.  
  268. CALL YKFPT (MZRO.VPOCHA(1,1),IK1,MZMU.VPOCHA(1,1),IK2,
  269. &MZCP.VPOCHA(1,1),IK3,MZLB.VPOCHA(1,1),IK4,
  270. &MZUE.VPOCHA,MZYP.VPOCHA,MZH.VPOCHA,NPT)
  271.  
  272. SEGDES MZUE,MZH,MZYP
  273. SEGDES MUE,MH
  274.  
  275. IF(IK1.EQ.0)THEN
  276. SEGDES MRO,MZRO
  277. ELSE
  278. SEGSUP MZRO
  279. ENDIF
  280.  
  281. IF(IK2.EQ.0)THEN
  282. SEGDES MMU,MZMU
  283. ELSE
  284. SEGSUP MZMU
  285. ENDIF
  286.  
  287. IF(IK3.EQ.0)THEN
  288. SEGDES MCP,MZCP
  289. ELSE
  290. SEGSUP MZCP
  291. ENDIF
  292.  
  293. IF(IK4.EQ.0)THEN
  294. SEGDES MLB,MZLB
  295. ELSE
  296. SEGSUP MZLB
  297. ENDIF
  298.  
  299.  
  300. CALL ECROBJ('CHPOINT',MH)
  301.  
  302. RETURN
  303. END
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  

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