Télécharger fpt.eso

Retour à la liste

Numérotation des lignes :

fpt
  1. C FPT SOURCE CB215821 20/11/25 13:29:24 10792
  2. SUBROUTINE FPT
  3. C**********************************************************************
  4. C
  5. C
  6. C FPT
  7. C ------> KFPT : calcul de H
  8. C ------> ECHIMP : calcul des fonctions de paroi
  9. C sur la temperature
  10. C SYNTAXE :
  11. C 'ZONE' $DOM 'OPER' FPT RO MU CP LB UET YP H TETA 'INCO' TN
  12. C
  13. C
  14. C $DOM Modèle NAVIER_STOKES
  15. C
  16. C RO Densité FLOTTANT ou CHPOINT SCAL SPG
  17. C
  18. C MU Viscosité dynamique moléculaire FLOTTANT ou CHPOINT SCAL SPG
  19. C
  20. C CP Chaleur spécifique FLOTTANT ou CHPOINT SCAL SPG
  21. C
  22. C LB Conductivité thermique FLOTTANT ou CHPOINT SCAL SPG
  23. C
  24. C UET Vitesse de frottement CHPOINT SCAL SPG
  25. C
  26. C YP Distance la paroi FLOTTANT
  27. C
  28. C H Coefficient d'échange thermique CHPOINT SCAL SPG
  29. C
  30. C TETA Température à la paroi CHPOINT SCAL SPG
  31. C
  32. C TN Température CHPOINT SCAL SOMMET
  33. C
  34. C IMPORTANT:
  35. C
  36. C Suivant la formulation EF ou EFM1 SPG doit être SOMMET ou CENTRE
  37. C
  38. C
  39. C***********************************************************************
  40. IMPLICIT INTEGER(I-N)
  41. IMPLICIT REAL*8 (A-H,O-Z)
  42. C
  43.  
  44. -INC PPARAM
  45. -INC CCOPTIO
  46. -INC SMCOORD
  47. -INC SMELEME
  48. -INC SMCHPOI
  49. POINTEUR MZNU.MPOVAL,MZUE.MPOVAL,MZYP.MPOVAL
  50. POINTEUR MZMU.MPOVAL,MZRO.MPOVAL,MZCP.MPOVAL,MZLB.MPOVAL
  51. POINTEUR MZH.MPOVAL,MZT0.MPOVAL
  52. CHARACTER*8 NOMI,NOMA,TYPE,NOMZ,TYPC
  53. PARAMETER (NTB=1)
  54. CHARACTER*8 LTAB(NTB)
  55. DIMENSION KTAB(NTB),IXV(3)
  56. * SAVE IPAS
  57. * DATA LTAB/'KIZX '/,IPAS/0/
  58. DATA LTAB/'KIZX '/
  59. C*****************************************************************************
  60. CFPT
  61. C write(6,*)' debut FPT '
  62. CALL LITABS(LTAB,KTAB,NTB,1,IRET)
  63. IF(IRET.EQ.0)THEN
  64. WRITE(6,*)' Opérateur FPT'
  65. WRITE(6,*)' On attend un ensemble de table soustypes'
  66. RETURN
  67. ENDIF
  68. MTABX=KTAB(1)
  69.  
  70. CALL LEKTAB(MTABX,'EQEX',MTAB1)
  71. IF(MTAB1.EQ.0)THEN
  72. WRITE(6,*)' Opérateur FPT'
  73. WRITE(6,*)' On ne trouve pas l''indice EQEX ? '
  74. RETURN
  75. ENDIF
  76.  
  77. CALL LEKTAB(MTAB1,'INCO',KINC)
  78. IF(KINC.EQ.0)THEN
  79. WRITE(6,*)' Opérateur FPT'
  80. WRITE(6,*)' Il n''y a pas de table INCO ? ?.'
  81. RETURN
  82. ENDIF
  83.  
  84. C*****************************************************************************
  85.  
  86. C
  87. C- Récupération de la table des options KOPT (pointeur KOPTI)
  88. C
  89. CALL LEKTAB(MTABX,'KOPT',KOPTI)
  90. IF (KOPTI.EQ.0) THEN
  91. C Indice %m1:8 : Indice %m9:16 non trouvé dans la table %m17:24
  92. MOTERR( 1: 8) = ' KOPT '
  93. MOTERR( 9:16) = ' KOPT '
  94. MOTERR(17:24) = ' KIZX '
  95. CALL ERREUR(786)
  96. RETURN
  97. ENDIF
  98.  
  99. CALL ACME(KOPTI,'KIMPL',KIMPL)
  100. CALL ACME(KOPTI,'KFORM',KFORM)
  101.  
  102. IF(KFORM.NE.0.AND.KFORM.NE.1)THEN
  103. C Option %m1:8 incompatible avec les données
  104. MOTERR( 1: 8) = 'EF/EFM1 '
  105. CALL ERREUR(803)
  106. RETURN
  107. ENDIF
  108.  
  109. C*****************************************************************************
  110. C
  111. C- Récupération de la table DOMAINE associée au domaine local
  112. C
  113. IF(KFORM.EQ.0)THEN
  114. CALL LEKTAB(MTABX,'DOMZ',MTABZ)
  115. IF(MTABZ.EQ.0)THEN
  116. WRITE(6,*)' Opérateur FPT'
  117. WRITE(6,*)' On ne trouve pas l''indice DOMZ ? '
  118. RETURN
  119. ENDIF
  120.  
  121. TYPE=' '
  122. CALL ACMO(MTABZ,'CENTRE',TYPE,MELEMK)
  123. IF(TYPE.NE.'MAILLAGE')GO TO 90
  124.  
  125. ENDIF
  126. IF(KFORM.EQ.1)THEN
  127. CALL ACMM(MTABX,'NOMZONE',NOMZ)
  128. TYPE=' '
  129. CALL ACMO(MTABX,'DOMZ',TYPE,MMDZ)
  130. IF(TYPE.NE.'MMODEL')THEN
  131. C Indice %m1:8 : Indice %m9:16 non trouvé dans la table %m17:24
  132. MOTERR( 1: 8) = ' DOMZ '
  133. MOTERR( 9:16) = ' DOMZ '
  134. MOTERR(17:24) = ' KIZX '
  135. CALL ERREUR(786)
  136. RETURN
  137. ENDIF
  138.  
  139. C E/ MMODEL : Pointeur de la table contenant l'information cherchée
  140. C /S IPOINT : Pointeur sur la table DOMAINE
  141. C /S INEFMD : Type formulation INEFMD=1 LINE,=2 MACRO,=3 QUADRATIQUE
  142. C INEFMD=4 LINB
  143.  
  144. CALL LEKMOD(MMDZ,MTABZ,INEFMD)
  145.  
  146. CALL LEKTAB(MTABZ,'SOMMET',MELEMK)
  147. ENDIF
  148.  
  149. C ***
  150.  
  151. CALL ACME(MTABX,'IARG',IARG)
  152.  
  153. C *** LECTURE DES COEFFICIENTS ***
  154. C 1er coefficient : ro
  155. IXV(1)=MELEMK
  156. IXV(2)=1
  157. IXV(3)=0
  158. CALL LEKCOF('Opérateur FPT :',
  159. & MTABX,KINC,1,IXV,MRO,MZRO,NPT1,NC1,IK1,IRET)
  160. IF(IRET.EQ.0)RETURN
  161. XRO=MZRO.VPOCHA(1,1)
  162.  
  163. C 2ème coefficient : mu
  164. IXV(1)=MELEMK
  165. IXV(2)=1
  166. IXV(3)=0
  167. CALL LEKCOF('Opérateur FPT :',
  168. & MTABX,KINC,2,IXV,MMU,MZMU,NPT2,NC2,IK2,IRET)
  169. IF(IRET.EQ.0)RETURN
  170. XMU=MZMU.VPOCHA(1,1)
  171.  
  172. C 3ème coefficient : cp
  173. IXV(1)=MELEMK
  174. IXV(2)=1
  175. IXV(3)=0
  176. CALL LEKCOF('Opérateur FPT :',
  177. & MTABX,KINC,3,IXV,MCP,MZCP,NPT3,NC3,IK3,IRET)
  178. IF(IRET.EQ.0)RETURN
  179. XCP=MZCP.VPOCHA(1,1)
  180.  
  181. C 4ème coefficient : lambda
  182. IXV(1)=MELEMK
  183. IXV(2)=1
  184. IXV(3)=0
  185. CALL LEKCOF('Opérateur FPT :',
  186. & MTABX,KINC,4,IXV,MLB,MZLB,NPT4,NC4,IK4,IRET)
  187. IF(IRET.EQ.0)RETURN
  188. XLB=MZLB.VPOCHA(1,1)
  189.  
  190. C 5ème coefficient : uet
  191. IXV(1)=MELEMK
  192. IXV(2)=0
  193. IXV(3)=0
  194. CALL LEKCOF('Opérateur FPT :',
  195. & MTABX,KINC,5,IXV,MUE,MZUE,NPT5,NC5,IK5,IRET)
  196. IF(IRET.EQ.0)RETURN
  197.  
  198. C 6ème coefficient : yp
  199. IXV(1)=0
  200. IXV(2)=1
  201. IXV(3)=0
  202. CALL LEKCOF('Opérateur FPT :',
  203. & MTABX,KINC,6,IXV,MYP,MZYP,NPT6,NC6,IK6,IRET)
  204. IF(IRET.EQ.0)RETURN
  205.  
  206. C 7ème coefficient : h
  207. IXV(1)=MELEMK
  208. IXV(2)=0
  209. IXV(3)=0
  210. CALL LEKCOF('Opérateur FPT :',
  211. & MTABX,KINC,7,IXV,MH,MZH,NPT7,NC7,IK7,IRET)
  212. IF(IRET.EQ.0)RETURN
  213.  
  214. C 8ème coefficient : Teta0
  215. IXV(1)=MELEMK
  216. IXV(2)=1
  217. IXV(3)=0
  218. CALL LEKCOF('Opérateur FPT :',
  219. & MTABX,KINC,8,IXV,MT0,MZT0,NPT8,NC8,IK8,IRET)
  220. IF(IRET.EQ.0)RETURN
  221. IF(IK8.EQ.1)T0=MZT0.VPOCHA(1,1)
  222.  
  223. C**************************************************************************
  224. C*****CALCUL DE H(NU,UET,YP,ALFA)
  225. C**************************************************************************
  226.  
  227. NEL = MZH.VPOCHA(/1)
  228. CALL YKFPT (MZRO.VPOCHA(1,1),IK1,MZMU.VPOCHA(1,1),IK2,
  229. &MZCP.VPOCHA(1,1),IK3,MZLB.VPOCHA(1,1),IK4,
  230. &MZUE.VPOCHA,MZYP.VPOCHA,MZH.VPOCHA,NEL)
  231.  
  232.  
  233. CALL ECROBJ('TABLE',MTABX)
  234.  
  235. CALL ECME(MTABX,'IARG',2)
  236. CALL ECMO(MTABX,'ARG1','CHPOINT',MH)
  237. IF(IK8.EQ.0)THEN
  238. CALL ECMO(MTABX,'ARG2','CHPOINT',MT0)
  239. ELSE
  240. CALL ECMF(MTABX,'ARG2',T0)
  241. ENDIF
  242.  
  243. CALL ECHIMP
  244.  
  245. CALL ECME(MTABX,'IARG',8)
  246. IF(IK1.EQ.0)THEN
  247. CALL ECMO(MTABX,'ARG1','CHPOINT',MRO)
  248. ELSE
  249. CALL ECMF(MTABX,'ARG1',XRO)
  250. ENDIF
  251.  
  252. IF(IK2.EQ.0)THEN
  253. CALL ECMO(MTABX,'ARG2','CHPOINT',MMU)
  254. ELSE
  255. CALL ECMF(MTABX,'ARG2',XMU)
  256. ENDIF
  257. CALL ECMO(MTABX,'ARG5','CHPOINT',MUE)
  258.  
  259. C***************************************************************************
  260. RETURN
  261.  
  262. 90 CONTINUE
  263. WRITE(6,*)' Opérateur FPT'
  264. RETURN
  265. END
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  

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