Télécharger konf22.eso

Retour à la liste

Numérotation des lignes :

  1. C KONF22 SOURCE CB215821 16/04/21 21:17:33 8920
  2. SUBROUTINE KONF22(INDMET,
  3. & IALPF,IUVF,IULF,IPF,
  4. & ITVF,ITLF,IRVF,IRLF,
  5. & ICHPSU,ICHPDI,
  6. & MELEMC,MELEMF,MELEFE,
  7. & ICHFLU,DT,
  8. & LOGNC,LOGAN,MESERR)
  9. C************************************************************************
  10. C
  11. C PROJET : CASTEM 2000
  12. C
  13. C NOM : KONFL9
  14. C
  15. C DESCRIPTION : Voir KONV15
  16. C
  17. C 3D two phase flow
  18. C
  19. C LANGAGE : FORTRAN 77 + ESOPE 2000 (AVEC ESTENSIONS CISI)
  20. C
  21. C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
  22. C MODIFIED FOR TWO PHASE FLOW BY
  23. C JOSÉ R.
  24. C
  25. C************************************************************************
  26. C
  27. C
  28. C APPELES (OUTILS
  29. C CASTEM) : KRIPAD, LICHT
  30. C
  31. C APPELES (CALCUL) : FLURIE, FLUXVL, FLUVLH, FLHUS1, FLHUS2
  32. C
  33. C
  34. C************************************************************************
  35. C
  36. C ENTREES
  37. C
  38. C
  39. C 1) PARAMETRES
  40. C
  41. C INDMET : 6 AUSM+
  42. C
  43. C
  44. C 2) POINTEURS DES MCHAMLS
  45. C
  46. C IALPF : MCHAML SUR "FACEL" CONTAINING VOID FRACTION
  47. C
  48. C IUVF : MCHAML SUR "FACEL" CONTAINING VAPOUR VELOCITY
  49. C
  50. C IULF : MCHAML SUR "FACEL" CONTAINING LIQUID VELOCITY
  51. C
  52. C IPF : MCHAML SUR "FACEL" CONTAINING PRESSURE
  53. C
  54. C ITVF : MCHAML SUR "FACEL" CONTAINING VAPOUR TEMPERATURE
  55. C
  56. C ITLF : MCHAML SUR "FACEL" CONTAINING LIQUID TEMPERATURE
  57. C
  58. C IRVF : MCHAML SUR "FACEL" CONTAINING VAPOUR DENSITY
  59. C
  60. C IRLF : MCHAML SUR "FACEL" CONTAINING LIQUID DENSITY
  61. C
  62. C
  63. C 3) POINTEURS DE CHPOINTS DE LA TABLE DOMAINE
  64. C
  65. C ICHPSU : CHPOINT "FACE" CONTENANT LA SURFACE DES FACES
  66. C
  67. C ICHPDI : CHPOINT "CENTRE" CONTENANT LE DIAMETRE MINIMUM
  68. C DE CHAQUE ELEMENT
  69. C
  70. C
  71. C 4) POINTEURS DE MELEME DE LA TABLE DOMAINE
  72. C
  73. C MELEMC : MELEME 'CENTRE' DU SPG DES CENTRES
  74. C
  75. C MELEMF : MELEME 'FACE' DU SPG DES FACES
  76. C
  77. C MELEFE : MELEME 'FACEL' DU CONNECTIVITÉ FACES -> ELEM
  78. C
  79. C SORTIES
  80. C
  81. C ICHFLU : POINTEURS DE CHPOINTS "FACE" DES FLUX AUX INTERFACES:
  82. C
  83. C DT : PAS DE TEMPS POUR LE RESPECT DE LA CFL-LIKE CONDITION
  84. C DT < DIAMMIN /2 /MAX(LAMBDA_I)
  85. C EN MAILLAGE REGULIER CETTE CONDITION GARANTIE LA
  86. C NON-INTERACTION DES ONDES
  87. C
  88. C
  89. C LOGNC : (LOGICAL): SI .TRUE. LA METHODE DE NEWTON-RAPSON, UTILISÉE
  90. C DANS POUR LA SOLUTION DU PROBLEME RIEMANN EXACTE OU DANS
  91. C L'ALGORITHM HUS, N'A PAS BIEN MARCHÉEE; MESERR = 'GOUDUNOV'
  92. C OU 'HUS'.
  93. C
  94. C LOGAN : (LOGICAL): SI .TRUE. UNE ANOMALIE À ÉTÉ DETECTÉE
  95. C
  96. C MESERR : POUR L'ECRITURE DES MESSAGES D'ERREURS
  97. C
  98. C************************************************************************
  99. C
  100. C HISTORIQUE (ANOMALIES ET MODIFICATIONS ÉVENTUELLES)
  101. C
  102. C HISTORIQUE :
  103. C
  104. C************************************************************************
  105. C
  106. C
  107. C N.B.: ON SUPPOSE QU'ON A DÉJÀ CONTROLLÉ RO, P > 0
  108. C GAMMA \IN (1,3)
  109. C Y \IN (0,1)
  110. C SI NON IL FAUT LE FAIRE!!!
  111. C
  112. C************************************************************************
  113. C
  114. IMPLICIT INTEGER(I-N)
  115. IMPLICIT REAL*8(A-H,O-Z)
  116. C
  117. INTEGER I1
  118. & ,INDMET
  119. & ,IALPF,IUVF,IULF,IPF,ITVF,ITLF,IRVF,IRLF
  120. & ,ICHPSU,ICHPDI,MELEMC,MELEMF,MELEFE
  121. & ,IGEOMC,IGEOMF
  122. & ,ICHFLU
  123. & ,NESP, NFAC
  124. & ,NLCF, NGCEG, NGCED, NLCEG, NLCED
  125. & ,NGCF, NLCF1, SPG1, SPG2
  126. REAL*8 DT, UNSDT
  127. & , ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG, PG, TVG, TLG
  128. & , RVG, RLG
  129. & , ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD, PD, TVD, TLD
  130. & , RVD, RLD
  131. & , SURF, CNX, CNY, CNZ, CTX , CTY, CTZ, CVX, CVY, CVZ
  132. & , CELL, DIAMG, DIAMD, DIAM
  133. & , AVSON, LAMDAV, ALSON, LAMDAL, kk
  134. LOGICAL LOGNC, LOGAN
  135. CHARACTER*(40) MESERR
  136. CHARACTER*(8) TYPE
  137. C
  138. C**** LES INCLUDES
  139. C
  140. -INC CCOPTIO
  141. -INC SMCHAML
  142. POINTEUR MELALP.MELVAL, MELP.MELVAL,
  143. & MELTV.MELVAL, MELTL.MELVAL,
  144. & MELRV.MELVAL, MELRL.MELVAL
  145. POINTEUR MELUVN.MELVAL, MELUVT.MELVAL, MELUVV.MELVAL,
  146. & MELULN.MELVAL, MELULT.MELVAL, MELULV.MELVAL,
  147. & MLVNX.MELVAL, MLVNY.MELVAL, MLVNZ.MELVAL,
  148. & MLVT1X.MELVAL, MLVT1Y.MELVAL, MLVT1Z.MELVAL,
  149. & MLVT2X.MELVAL, MLVT2Y.MELVAL, MLVT2Z.MELVAL,
  150. & MLLNX.MELVAL, MLLNY.MELVAL, MLLNZ.MELVAL,
  151. & MLLT1X.MELVAL, MLLT1Y.MELVAL, MLLT1Z.MELVAL,
  152. & MLLT2X.MELVAL, MLLT2Y.MELVAL, MLLT2Z.MELVAL
  153. -INC SMCHPOI
  154. POINTEUR MPOVSU.MPOVAL, MPOVDI.MPOVAL
  155. & , MPOFLU.MPOVAL
  156. POINTEUR MCHAMY.MCHAML
  157. -INC SMELEME
  158. -INC SMLMOTS
  159. -INC SMLENTI
  160. C
  161. C**** FLUX AT EACH INTERFACE AND EACH REFERENCE FRAMEWORK
  162. C
  163. SEGMENT IFLUX
  164. REAL*8 FLUX(10)
  165. ENDSEGMENT
  166. POINTEUR IFLU1.IFLUX
  167. C
  168. C**** INITIALISATION DES MCHAMLS
  169. C
  170. C**** VOID FRACTION
  171. C
  172. MCHEL1 = IALPF
  173. SEGACT MCHEL1
  174. MCHAM1 = MCHEL1.ICHAML(1)
  175. SEGACT MCHAM1
  176. MELALP = MCHAM1.IELVAL(1)
  177. SEGDES MCHEL1
  178. SEGDES MCHAM1
  179. C
  180. C**** VAPOUR VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??)
  181. C
  182. MCHEL1 = IUVF
  183. SEGACT MCHEL1
  184. C
  185. C**** LA VITESSE A COMME SPG MELEFE
  186. C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF
  187. C
  188. C MCHAM1 -> COSINUS DIRECTEURS
  189. C MCHAM2 -> VITESSE
  190. C
  191. SPG1 = MCHEL1.IMACHE(1)
  192. SPG2 = MCHEL1.IMACHE(2)
  193. IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN
  194. MCHAM1 = MCHEL1.ICHAML(1)
  195. MCHAM2 = MCHEL1.ICHAML(2)
  196. ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN
  197. MCHAM1 = MCHEL1.ICHAML(2)
  198. MCHAM2 = MCHEL1.ICHAML(1)
  199. ELSE
  200. LOGAN = .TRUE.
  201. GOTO 9999
  202. ENDIF
  203. SEGACT MCHAM1
  204. MLVNX = MCHAM1.IELVAL(1)
  205. MLVNY = MCHAM1.IELVAL(2)
  206. MLVNZ = MCHAM1.IELVAL(3)
  207. MLVT1X = MCHAM1.IELVAL(4)
  208. MLVT1Y = MCHAM1.IELVAL(5)
  209. MLVT1Z = MCHAM1.IELVAL(6)
  210. MLVT2X = MCHAM1.IELVAL(7)
  211. MLVT2Y = MCHAM1.IELVAL(8)
  212. MLVT2Z = MCHAM1.IELVAL(9)
  213.  
  214. SEGDES MCHAM1
  215. SEGACT MCHAM2
  216. MELUVN = MCHAM2.IELVAL(1)
  217. MELUVT = MCHAM2.IELVAL(2)
  218. MELUVV = MCHAM2.IELVAL(3)
  219. SEGDES MCHAM2
  220. SEGDES MCHEL1
  221. C
  222. C**** LIQUID VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??)
  223. C CLARAMENTE TENGO QUE ELIMINAR LOS COSENOS DIRECTORES DE LA
  224. C VELOCIDAD DEL LIQUIDO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  225. C
  226. MCHEL1 = IULF
  227. SEGACT MCHEL1
  228. C
  229. C**** LA VITESSE A COMME SPG MELEFE
  230. C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF
  231. C
  232. C MCHAM1 -> COSINUS DIRECTEURS
  233. C MCHAM2 -> VITESSE
  234. C
  235. SPG1 = MCHEL1.IMACHE(1)
  236. SPG2 = MCHEL1.IMACHE(2)
  237. IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN
  238. MCHAM1 = MCHEL1.ICHAML(1)
  239. MCHAM2 = MCHEL1.ICHAML(2)
  240. ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN
  241. MCHAM1 = MCHEL1.ICHAML(2)
  242. MCHAM2 = MCHEL1.ICHAML(1)
  243. ELSE
  244. LOGAN = .TRUE.
  245. GOTO 9999
  246. ENDIF
  247. SEGACT MCHAM1
  248. MLLNX = MCHAM1.IELVAL(1)
  249. MLLNY = MCHAM1.IELVAL(2)
  250. MLLNZ = MCHAM1.IELVAL(3)
  251. MLLT1X = MCHAM1.IELVAL(4)
  252. MLLT1Y = MCHAM1.IELVAL(5)
  253. MLLT1Z = MCHAM1.IELVAL(6)
  254. MLLT2X = MCHAM1.IELVAL(7)
  255. MLLT2Y = MCHAM1.IELVAL(8)
  256. MLLT2Z = MCHAM1.IELVAL(9)
  257. SEGDES MCHAM1
  258. SEGACT MCHAM2
  259. MELULN = MCHAM2.IELVAL(1)
  260. MELULT = MCHAM2.IELVAL(2)
  261. MELULV = MCHAM2.IELVAL(3)
  262. SEGDES MCHAM2
  263. SEGDES MCHEL1
  264. C
  265. C**** PRESSURE
  266. C
  267. MCHEL1 = IPF
  268. SEGACT MCHEL1
  269. MCHAM1 = MCHEL1.ICHAML(1)
  270. SEGACT MCHAM1
  271. MELP = MCHAM1.IELVAL(1)
  272. SEGDES MCHEL1
  273. SEGDES MCHAM1
  274. C
  275. C**** VAPOUR TEMPERATURE
  276. C
  277. MCHEL1 = ITVF
  278. SEGACT MCHEL1
  279. MCHAM1 = MCHEL1.ICHAML(1)
  280. SEGACT MCHAM1
  281. MELTV = MCHAM1.IELVAL(1)
  282. SEGDES MCHEL1
  283. SEGDES MCHAM1
  284. C
  285. C**** LIQUID TEMPERATURE
  286. C
  287. MCHEL1 = ITLF
  288. SEGACT MCHEL1
  289. MCHAM1 = MCHEL1.ICHAML(1)
  290. SEGACT MCHAM1
  291. MELTL = MCHAM1.IELVAL(1)
  292. SEGDES MCHEL1
  293. SEGDES MCHAM1
  294. C
  295. C**** VAPOUR DENSITY
  296. C
  297. MCHEL1 = IRVF
  298. SEGACT MCHEL1
  299. MCHAM1 = MCHEL1.ICHAML(1)
  300. SEGACT MCHAM1
  301. MELRV = MCHAM1.IELVAL(1)
  302. SEGDES MCHEL1
  303. SEGDES MCHAM1
  304. C
  305. C**** LIQUID DENSITY
  306. C
  307. MCHEL1 = IRLF
  308. SEGACT MCHEL1
  309. MCHAM1 = MCHEL1.ICHAML(1)
  310. SEGACT MCHAM1
  311. MELRL = MCHAM1.IELVAL(1)
  312. SEGDES MCHEL1
  313. SEGDES MCHAM1
  314. C
  315. C**** INITIALISATION DES MELEMES
  316. C
  317. C 'CENTRE', 'FACEL'
  318. C
  319. IPT2 = MELEFE
  320. SEGACT IPT2
  321. NFAC = IPT2.NUM(/2)
  322. C
  323. C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE CENTRE
  324. C
  325. CALL KRIPAD(MELEMC,MLENT1)
  326. C
  327. C**** MLENTI1 A MCORD.XCOORD(/1)/(IDIM+1) ELEMENTS
  328. C
  329. C SI I EST LE NUMERO GLOBAL D'UN NOEUD DE ICEN,
  330. C MLENT1.LECT(I) CONTIENT SA POSITION, I.E.
  331. C
  332. C I = NUMERO GLOBAL DU NOEUD CENTRE
  333. C MLENT1.LECT(I) = NUMERO LOCAL DU NOEUD CENTRE
  334. C
  335. C MLENT1 DÉJÀ ACTIVÉ, I.E.
  336. C
  337. C SEGACT MLENT1
  338. C
  339. C
  340. C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE 'FACE'
  341. C
  342. CALL KRIPAD(MELEMF,MLENT2)
  343. C SEGACT MELNT2
  344. C
  345. C**** INITIALISATION DE FLUX
  346. C
  347. SEGINI IFLU1
  348. C
  349. C**** CHPOINTS DE LA TABLE DOMAINE
  350. C
  351. CALL LICHT(ICHPSU,MPOVSU,TYPE,IGEOMF)
  352. CALL LICHT(ICHPDI,MPOVDI,TYPE,IGEOMC)
  353. C
  354. C**** LICHT ACTIVE LES MPOVALS EN *MOD
  355. C
  356. C I.E.
  357. C
  358. C SEGACT MPOVSU*MOD
  359. C SEGACT MPOVDI*MOD
  360. C
  361. IF(IGEOMF .NE. MELEMF)THEN
  362. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  363. LOGAN = .TRUE.
  364. GOTO 9999
  365. ENDIF
  366. IF(IGEOMC .NE. MELEMC)THEN
  367. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  368. LOGAN = .TRUE.
  369. GOTO 9999
  370. ENDIF
  371. C
  372. C**** LES FLUX AUX FACE
  373. C
  374. C LA DENSITÉ
  375. C
  376. CALL LICHT(ICHFLU,MPOFLU,TYPE,IGEOMF)
  377. C
  378. C SEGACT MPOFLU*MOD
  379. C
  380. IF(IGEOMC .NE. MELEMC)THEN
  381. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  382. LOGAN = .TRUE.
  383. GOTO 9999
  384. ENDIF
  385. C
  386. C**** ACTIVATION DES MCHAMLS
  387. C
  388. SEGACT MELALP
  389. SEGACT MELP
  390. SEGACT MELTV
  391. SEGACT MELTL
  392. SEGACT MELRV
  393. SEGACT MELRL
  394.  
  395. SEGACT MELUVN
  396. SEGACT MELUVT
  397. SEGACT MELUVV
  398.  
  399. SEGACT MELULN
  400. SEGACT MELULT
  401. SEGACT MELULV
  402.  
  403. SEGACT MLVNX
  404. SEGACT MLVNY
  405. SEGACT MLVNZ
  406. SEGACT MLVT1X
  407. SEGACT MLVT1Y
  408. SEGACT MLVT1Z
  409. SEGACT MLVT2X
  410. SEGACT MLVT2Y
  411. SEGACT MLVT2Z
  412.  
  413. SEGACT MLLNX
  414. SEGACT MLLNY
  415. SEGACT MLLNZ
  416. SEGACT MLLT1X
  417. SEGACT MLLT1Y
  418. SEGACT MLLT1Z
  419. SEGACT MLLT2X
  420. SEGACT MLLT2Y
  421. SEGACT MLLT2Z
  422. C
  423. C**** INITIALISATION DE 1/DT
  424. C
  425. UNSDT = 0.0D0
  426. C
  427. C**** BOUCLE SUR FACEL POUR LE CALCUL DU FLUX
  428. C
  429. DO NLCF = 1, NFAC
  430. C
  431. C******* NLCF = NUMERO LOCAL DU CENTRE DE FACEL
  432. C NGCF = NUMERO GLOBAL DU CENTRE DE FACEL
  433. C NLCF1 = NUMERO LOCAL DU CENTRE DE FACE
  434. C NGCEG = NUMERO GLOBAL DU CENTRE ELT "GAUCHE"
  435. C NLCEG = NUMERO LOCAL DU CENTRE ELT "GAUCHE"
  436. C NGCED = NUMERO GLOBAL DU CENTRE ELT "DROITE"
  437. C NLCED = NUMERO LOCAL DU CENTRE ELT "DROITE"
  438. C
  439. NGCEG = IPT2.NUM(1,NLCF)
  440. NGCED = IPT2.NUM(3,NLCF)
  441. NGCF = IPT2.NUM(2,NLCF)
  442. NLCF1 = MLENT2.LECT(NGCF)
  443. NLCEG = MLENT1.LECT(NGCEG)
  444. NLCED = MLENT1.LECT(NGCED)
  445. C
  446. C******* NLCF != NLCF1 -> L'AUTEUR (MOI) N'A RIEN COMPRIS.
  447. C
  448. IF(NLCF .NE. NLCF1)THEN
  449. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  450. LOGAN = .TRUE.
  451. GOTO 9999
  452. ENDIF
  453. C
  454. C******* RECUPERATION DES ETATS "GAUCHE" ET "DROITE"
  455. C
  456. ALPG = MELALP.VELCHE(1,NLCF)
  457. UVNG = MELUVN.VELCHE(1,NLCF)
  458. UVTG = MELUVT.VELCHE(1,NLCF)
  459. UVVG = MELUVV.VELCHE(1,NLCF)
  460. ULNG = MELULN.VELCHE(1,NLCF)
  461. ULTG = MELULT.VELCHE(1,NLCF)
  462. ULVG = MELULV.VELCHE(1,NLCF)
  463. PG = MELP.VELCHE(1,NLCF)
  464. TVG = MELTV.VELCHE(1,NLCF)
  465. TLG = MELTL.VELCHE(1,NLCF)
  466. RVG = MELRV.VELCHE(1,NLCF)
  467. RLG = MELRL.VELCHE(1,NLCF)
  468. C
  469. ALPD = MELALP.VELCHE(3,NLCF)
  470. UVND = MELUVN.VELCHE(3,NLCF)
  471. UVTD = MELUVT.VELCHE(3,NLCF)
  472. UVVD = MELUVV.VELCHE(3,NLCF)
  473. ULND = MELULN.VELCHE(3,NLCF)
  474. ULTD = MELULT.VELCHE(3,NLCF)
  475. ULVD = MELULV.VELCHE(3,NLCF)
  476. PD = MELP.VELCHE(3,NLCF)
  477. TVD = MELTV.VELCHE(3,NLCF)
  478. TLD = MELTL.VELCHE(3,NLCF)
  479. RVD = MELRV.VELCHE(3,NLCF)
  480. RLD = MELRL.VELCHE(3,NLCF)
  481. C
  482. CNX = MLVNX.VELCHE(1,NLCF)
  483. CNY = MLVNY.VELCHE(1,NLCF)
  484. CNZ = MLVNZ.VELCHE(1,NLCF)
  485. CTX = MLVT1X.VELCHE(1,NLCF)
  486. CTY = MLVT1Y.VELCHE(1,NLCF)
  487. CTZ = MLVT1Z.VELCHE(1,NLCF)
  488. CVX = MLVT2X.VELCHE(1,NLCF)
  489. CVY = MLVT2Y.VELCHE(1,NLCF)
  490. CVZ = MLVT2Z.VELCHE(1,NLCF)
  491.  
  492. C
  493. C******* Calcul du flux aux interfaces
  494. C
  495. C AUSM+ (1) and "preconditioned" AUSM+ (2)
  496. IF((INDMET .EQ. 1) .OR. (INDMET .EQ. 2))THEN
  497. CALL fAP32F(INDMET,
  498. & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG,
  499. & PG, TVG, TLG, RVG, RLG,
  500. & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD,
  501. & PD, TVD, TLD, RVD, RLD,
  502. & IFLU1.FLUX)
  503. C AUSMDV (3) and "preconditioned" AUSMDV (3)
  504. ELSE IF((INDMET .EQ. 3) .OR. (INDMET .EQ. 4))THEN
  505. CALL fDV32F(INDMET,
  506. & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG,
  507. & PG, TVG, TLG, RVG, RLG,
  508. & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD,
  509. & PD, TVD, TLD, RVD, RLD,
  510. & IFLU1.FLUX)
  511. ELSE
  512. C
  513. C******** Message d'erreur standard
  514. C 251 2
  515. C Tentative d'utilisation d'une option non implémentée
  516. C
  517. CALL ERREUR(251)
  518. END IF
  519. IF(LOGAN) GOTO 9999
  520. IF(LOGNC) GOTO 9999
  521. C
  522. C******* Ecriture des flux
  523. C
  524. C FLUX(1) = alpha rv uvn
  525. C FLUX(2) = (1-alpha) rl uln
  526. C FLUX(3) = alpha rv uvx uvn + alpha p
  527. C FLUX(4) = alpha rv uvy uvn + alpha p
  528. C FLUX(5) = alpha rv uvz uvn + alpha p
  529. C FLUX(6) = (1-alpha) rl ulx uln + (1-alpha) p
  530. C FLUX(7) = (1-alpha) rl uly uln + (1-alpha) p
  531. C FLUX(8) = (1-alpha) rl ulz uln + (1-alpha) p
  532. C FLUX(9) = alpha rv Hv uvn
  533. C FLUX(10) = (1-alpha) rl Hl uln
  534. C
  535. SURF = MPOVSU.VPOCHA(NLCF,1)
  536.  
  537. MPOFLU.VPOCHA(NLCF,1) = (IFLU1.FLUX(1)*SURF)
  538.  
  539. MPOFLU.VPOCHA(NLCF,2) = (IFLU1.FLUX(2)*SURF)
  540.  
  541. MPOFLU.VPOCHA(NLCF,3) = ((IFLU1.FLUX(3)*CNX + IFLU1.FLUX(5)*CTX
  542. & + IFLU1.FLUX(7)*CVX)*SURF)
  543.  
  544. MPOFLU.VPOCHA(NLCF,4) = ((IFLU1.FLUX(3)*CNY + IFLU1.FLUX(5)*CTY
  545. & + IFLU1.FLUX(7)*CVY)*SURF)
  546.  
  547. MPOFLU.VPOCHA(NLCF,5) = ((IFLU1.FLUX(3)*CNZ + IFLU1.FLUX(5)*CTZ
  548. & + IFLU1.FLUX(7)*CVZ)*SURF)
  549.  
  550. MPOFLU.VPOCHA(NLCF,6) = ((IFLU1.FLUX(4)*CNX + IFLU1.FLUX(6)*CTX
  551. & + IFLU1.FLUX(8)*CVX)*SURF)
  552.  
  553. MPOFLU.VPOCHA(NLCF,7) = ((IFLU1.FLUX(4)*CNY+IFLU1.FLUX(6)*CTY
  554. & + IFLU1.FLUX(8)*CVY)*SURF)
  555.  
  556. MPOFLU.VPOCHA(NLCF,8) = ((IFLU1.FLUX(4)*CNZ+IFLU1.FLUX(6)*CTZ
  557. & + IFLU1.FLUX(8)*CVZ)*SURF)
  558.  
  559. MPOFLU.VPOCHA(NLCF,9) = (IFLU1.FLUX(9)*SURF)
  560.  
  561. MPOFLU.VPOCHA(NLCF,10) = (IFLU1.FLUX(10)*SURF)
  562.  
  563. C
  564. C******* CALCUL DU PAS DU TEMPS (CFL)
  565. C
  566. C****** A) ETAT A L'ITNERFACE
  567. C
  568. DIAMG = MPOVDI.VPOCHA(NLCEG,1)
  569. DIAMD = MPOVDI.VPOCHA(NLCED,1)
  570. DIAM = MIN(DIAMG,DIAMD)
  571. C CELL = 1.0D0/DIAM/CELLT
  572. C IF(CELL .GT. UNSDT)THEN
  573. C UNSDT = CELL
  574. C ENDIF
  575. C
  576. C****** B) ETAT GAUCHE
  577. C gammav = 1.4D0
  578. C Cpv = 1008.D0 J/(kg·K)
  579. C gammal = 2.8D0
  580. C Cpl = 4186.D0 J/(kg·K)
  581. C pil = 8.5D8 Pa
  582.  
  583. AVSON = SQRT(1008.d0*(1.4d0 - 1.d0)*TVG)
  584. LAMDAV = ABS(UVNG) + AVSON
  585. ALSON = SQRT(4186.D0*(2.8d0 - 1.d0)*TLG)
  586. LAMDAL = ABS(ULNG) + ALSON
  587. CELL = 1.D0/(((1.d0 - ALPG)/LAMDAL + ALPG/LAMDAV)* DIAM)
  588. IF(CELL .GT. UNSDT)THEN
  589. UNSDT = CELL
  590. ENDIF
  591. C
  592. C****** C) ETAT DROITE
  593. C
  594. AVSON = SQRT(1008.d0*(1.4d0 - 1.d0)*TVD)
  595. LAMDAV = ABS(UVND) + AVSON
  596. ALSON = SQRT(4186.D0*(2.8d0 - 1.d0)*TLD)
  597. LAMDAL = ABS(ULND) + ALSON
  598. CELL = 1.D0/(((1.d0 - ALPD)/LAMDAL + ALPD/LAMDAV)* DIAM)
  599. IF(CELL .GT. UNSDT)THEN
  600. UNSDT = CELL
  601. ENDIF
  602. C
  603. C
  604. C**** FIN BOUCLE SUR FACEL
  605. C
  606. ENDDO
  607. C
  608. C**** PAS DU TEMPS (CONDITION DE NON INTERACTION EN 1D)
  609. C
  610. DT = 1.D0 / UNSDT
  611. C
  612. C**** DESACTIVATION DES SEGMENTS ET
  613. C ON DETRUIT LES MCHAMLS
  614. C
  615. C**** SEGSUP FRAMAG
  616. C SEGSUP FRAMAD
  617. C
  618. C
  619. C
  620. SEGSUP MLENT1
  621. SEGSUP MLENT2
  622. SEGDES IPT2
  623.  
  624. SEGSUP IFLU1
  625.  
  626. SEGDES MPOVSU
  627. SEGDES MPOVDI
  628.  
  629. SEGDES MPOFLU
  630.  
  631. SEGDES MELALP
  632. SEGDES MELP
  633. SEGDES MELTV
  634. SEGDES MELTL
  635. SEGDES MELRV
  636. SEGDES MELRL
  637.  
  638. SEGDES MELUVN
  639. SEGDES MELUVT
  640. SEGDES MELUVV
  641.  
  642. SEGDES MELULN
  643. SEGDES MELULT
  644. SEGDES MELULV
  645.  
  646. SEGDES MLVNX
  647. SEGDES MLVNY
  648. SEGDES MLVNZ
  649. SEGDES MLVT1X
  650. SEGDES MLVT1Y
  651. SEGDES MLVT1Z
  652. SEGDES MLVT2X
  653. SEGDES MLVT2Y
  654. SEGDES MLVT2Z
  655.  
  656. SEGDES MLLNX
  657. SEGDES MLLNY
  658. SEGDES MLLNZ
  659. SEGDES MLLT1X
  660. SEGDES MLLT1Y
  661. SEGDES MLLT1Z
  662. SEGDES MLLT2X
  663. SEGDES MLLT2Y
  664. SEGDES MLLT2Z
  665. CC
  666. 9999 CONTINUE
  667. C
  668. RETURN
  669. END
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  

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