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.  
  141. -INC PPARAM
  142. -INC CCOPTIO
  143. -INC SMCHAML
  144. POINTEUR MELALP.MELVAL, MELP.MELVAL,
  145. & MELTV.MELVAL, MELTL.MELVAL,
  146. & MELRV.MELVAL, MELRL.MELVAL
  147. POINTEUR MELUVN.MELVAL, MELUVT.MELVAL, MELUVV.MELVAL,
  148. & MELULN.MELVAL, MELULT.MELVAL, MELULV.MELVAL,
  149. & MLVNX.MELVAL, MLVNY.MELVAL, MLVNZ.MELVAL,
  150. & MLVT1X.MELVAL, MLVT1Y.MELVAL, MLVT1Z.MELVAL,
  151. & MLVT2X.MELVAL, MLVT2Y.MELVAL, MLVT2Z.MELVAL,
  152. & MLLNX.MELVAL, MLLNY.MELVAL, MLLNZ.MELVAL,
  153. & MLLT1X.MELVAL, MLLT1Y.MELVAL, MLLT1Z.MELVAL,
  154. & MLLT2X.MELVAL, MLLT2Y.MELVAL, MLLT2Z.MELVAL
  155. -INC SMCHPOI
  156. POINTEUR MPOVSU.MPOVAL, MPOVDI.MPOVAL
  157. & , MPOFLU.MPOVAL
  158. POINTEUR MCHAMY.MCHAML
  159. -INC SMELEME
  160. -INC SMLMOTS
  161. -INC SMLENTI
  162. C
  163. C**** FLUX AT EACH INTERFACE AND EACH REFERENCE FRAMEWORK
  164. C
  165. SEGMENT IFLUX
  166. REAL*8 FLUX(10)
  167. ENDSEGMENT
  168. POINTEUR IFLU1.IFLUX
  169. C
  170. C**** INITIALISATION DES MCHAMLS
  171. C
  172. C**** VOID FRACTION
  173. C
  174. MCHEL1 = IALPF
  175. SEGACT MCHEL1
  176. MCHAM1 = MCHEL1.ICHAML(1)
  177. SEGACT MCHAM1
  178. MELALP = MCHAM1.IELVAL(1)
  179. SEGDES MCHEL1
  180. SEGDES MCHAM1
  181. C
  182. C**** VAPOUR VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??)
  183. C
  184. MCHEL1 = IUVF
  185. SEGACT MCHEL1
  186. C
  187. C**** LA VITESSE A COMME SPG MELEFE
  188. C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF
  189. C
  190. C MCHAM1 -> COSINUS DIRECTEURS
  191. C MCHAM2 -> VITESSE
  192. C
  193. SPG1 = MCHEL1.IMACHE(1)
  194. SPG2 = MCHEL1.IMACHE(2)
  195. IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN
  196. MCHAM1 = MCHEL1.ICHAML(1)
  197. MCHAM2 = MCHEL1.ICHAML(2)
  198. ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN
  199. MCHAM1 = MCHEL1.ICHAML(2)
  200. MCHAM2 = MCHEL1.ICHAML(1)
  201. ELSE
  202. LOGAN = .TRUE.
  203. GOTO 9999
  204. ENDIF
  205. SEGACT MCHAM1
  206. MLVNX = MCHAM1.IELVAL(1)
  207. MLVNY = MCHAM1.IELVAL(2)
  208. MLVNZ = MCHAM1.IELVAL(3)
  209. MLVT1X = MCHAM1.IELVAL(4)
  210. MLVT1Y = MCHAM1.IELVAL(5)
  211. MLVT1Z = MCHAM1.IELVAL(6)
  212. MLVT2X = MCHAM1.IELVAL(7)
  213. MLVT2Y = MCHAM1.IELVAL(8)
  214. MLVT2Z = MCHAM1.IELVAL(9)
  215.  
  216. SEGDES MCHAM1
  217. SEGACT MCHAM2
  218. MELUVN = MCHAM2.IELVAL(1)
  219. MELUVT = MCHAM2.IELVAL(2)
  220. MELUVV = MCHAM2.IELVAL(3)
  221. SEGDES MCHAM2
  222. SEGDES MCHEL1
  223. C
  224. C**** LIQUID VELOCITY AND DIRECTOR COSINES (COSENOS DIRECTORES VAMOS??)
  225. C CLARAMENTE TENGO QUE ELIMINAR LOS COSENOS DIRECTORES DE LA
  226. C VELOCIDAD DEL LIQUIDO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  227. C
  228. MCHEL1 = IULF
  229. SEGACT MCHEL1
  230. C
  231. C**** LA VITESSE A COMME SPG MELEFE
  232. C LE COSINUS DIRECTEURS ONT COMME SPG MELEMF
  233. C
  234. C MCHAM1 -> COSINUS DIRECTEURS
  235. C MCHAM2 -> VITESSE
  236. C
  237. SPG1 = MCHEL1.IMACHE(1)
  238. SPG2 = MCHEL1.IMACHE(2)
  239. IF((SPG1 .EQ. MELEMF) .AND. (SPG2 .EQ. MELEFE))THEN
  240. MCHAM1 = MCHEL1.ICHAML(1)
  241. MCHAM2 = MCHEL1.ICHAML(2)
  242. ELSEIF((SPG1 .EQ. MELEFE) .AND. (SPG2 .EQ. MELEMF))THEN
  243. MCHAM1 = MCHEL1.ICHAML(2)
  244. MCHAM2 = MCHEL1.ICHAML(1)
  245. ELSE
  246. LOGAN = .TRUE.
  247. GOTO 9999
  248. ENDIF
  249. SEGACT MCHAM1
  250. MLLNX = MCHAM1.IELVAL(1)
  251. MLLNY = MCHAM1.IELVAL(2)
  252. MLLNZ = MCHAM1.IELVAL(3)
  253. MLLT1X = MCHAM1.IELVAL(4)
  254. MLLT1Y = MCHAM1.IELVAL(5)
  255. MLLT1Z = MCHAM1.IELVAL(6)
  256. MLLT2X = MCHAM1.IELVAL(7)
  257. MLLT2Y = MCHAM1.IELVAL(8)
  258. MLLT2Z = MCHAM1.IELVAL(9)
  259. SEGDES MCHAM1
  260. SEGACT MCHAM2
  261. MELULN = MCHAM2.IELVAL(1)
  262. MELULT = MCHAM2.IELVAL(2)
  263. MELULV = MCHAM2.IELVAL(3)
  264. SEGDES MCHAM2
  265. SEGDES MCHEL1
  266. C
  267. C**** PRESSURE
  268. C
  269. MCHEL1 = IPF
  270. SEGACT MCHEL1
  271. MCHAM1 = MCHEL1.ICHAML(1)
  272. SEGACT MCHAM1
  273. MELP = MCHAM1.IELVAL(1)
  274. SEGDES MCHEL1
  275. SEGDES MCHAM1
  276. C
  277. C**** VAPOUR TEMPERATURE
  278. C
  279. MCHEL1 = ITVF
  280. SEGACT MCHEL1
  281. MCHAM1 = MCHEL1.ICHAML(1)
  282. SEGACT MCHAM1
  283. MELTV = MCHAM1.IELVAL(1)
  284. SEGDES MCHEL1
  285. SEGDES MCHAM1
  286. C
  287. C**** LIQUID TEMPERATURE
  288. C
  289. MCHEL1 = ITLF
  290. SEGACT MCHEL1
  291. MCHAM1 = MCHEL1.ICHAML(1)
  292. SEGACT MCHAM1
  293. MELTL = MCHAM1.IELVAL(1)
  294. SEGDES MCHEL1
  295. SEGDES MCHAM1
  296. C
  297. C**** VAPOUR DENSITY
  298. C
  299. MCHEL1 = IRVF
  300. SEGACT MCHEL1
  301. MCHAM1 = MCHEL1.ICHAML(1)
  302. SEGACT MCHAM1
  303. MELRV = MCHAM1.IELVAL(1)
  304. SEGDES MCHEL1
  305. SEGDES MCHAM1
  306. C
  307. C**** LIQUID DENSITY
  308. C
  309. MCHEL1 = IRLF
  310. SEGACT MCHEL1
  311. MCHAM1 = MCHEL1.ICHAML(1)
  312. SEGACT MCHAM1
  313. MELRL = MCHAM1.IELVAL(1)
  314. SEGDES MCHEL1
  315. SEGDES MCHAM1
  316. C
  317. C**** INITIALISATION DES MELEMES
  318. C
  319. C 'CENTRE', 'FACEL'
  320. C
  321. IPT2 = MELEFE
  322. SEGACT IPT2
  323. NFAC = IPT2.NUM(/2)
  324. C
  325. C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE CENTRE
  326. C
  327. CALL KRIPAD(MELEMC,MLENT1)
  328. C
  329. C**** MLENTI1 A MCORD.XCOORD(/1)/(IDIM+1) ELEMENTS
  330. C
  331. C SI I EST LE NUMERO GLOBAL D'UN NOEUD DE ICEN,
  332. C MLENT1.LECT(I) CONTIENT SA POSITION, I.E.
  333. C
  334. C I = NUMERO GLOBAL DU NOEUD CENTRE
  335. C MLENT1.LECT(I) = NUMERO LOCAL DU NOEUD CENTRE
  336. C
  337. C MLENT1 DÉJÀ ACTIVÉ, I.E.
  338. C
  339. C SEGACT MLENT1
  340. C
  341. C
  342. C**** KRIPAD POUR LA CORRESPONDANCE GLOBAL/LOCAL DE 'FACE'
  343. C
  344. CALL KRIPAD(MELEMF,MLENT2)
  345. C SEGACT MELNT2
  346. C
  347. C**** INITIALISATION DE FLUX
  348. C
  349. SEGINI IFLU1
  350. C
  351. C**** CHPOINTS DE LA TABLE DOMAINE
  352. C
  353. CALL LICHT(ICHPSU,MPOVSU,TYPE,IGEOMF)
  354. CALL LICHT(ICHPDI,MPOVDI,TYPE,IGEOMC)
  355. C
  356. C**** LICHT ACTIVE LES MPOVALS EN *MOD
  357. C
  358. C I.E.
  359. C
  360. C SEGACT MPOVSU*MOD
  361. C SEGACT MPOVDI*MOD
  362. C
  363. IF(IGEOMF .NE. MELEMF)THEN
  364. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  365. LOGAN = .TRUE.
  366. GOTO 9999
  367. ENDIF
  368. IF(IGEOMC .NE. MELEMC)THEN
  369. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  370. LOGAN = .TRUE.
  371. GOTO 9999
  372. ENDIF
  373. C
  374. C**** LES FLUX AUX FACE
  375. C
  376. C LA DENSITÉ
  377. C
  378. CALL LICHT(ICHFLU,MPOFLU,TYPE,IGEOMF)
  379. C
  380. C SEGACT MPOFLU*MOD
  381. C
  382. IF(IGEOMC .NE. MELEMC)THEN
  383. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  384. LOGAN = .TRUE.
  385. GOTO 9999
  386. ENDIF
  387. C
  388. C**** ACTIVATION DES MCHAMLS
  389. C
  390. SEGACT MELALP
  391. SEGACT MELP
  392. SEGACT MELTV
  393. SEGACT MELTL
  394. SEGACT MELRV
  395. SEGACT MELRL
  396.  
  397. SEGACT MELUVN
  398. SEGACT MELUVT
  399. SEGACT MELUVV
  400.  
  401. SEGACT MELULN
  402. SEGACT MELULT
  403. SEGACT MELULV
  404.  
  405. SEGACT MLVNX
  406. SEGACT MLVNY
  407. SEGACT MLVNZ
  408. SEGACT MLVT1X
  409. SEGACT MLVT1Y
  410. SEGACT MLVT1Z
  411. SEGACT MLVT2X
  412. SEGACT MLVT2Y
  413. SEGACT MLVT2Z
  414.  
  415. SEGACT MLLNX
  416. SEGACT MLLNY
  417. SEGACT MLLNZ
  418. SEGACT MLLT1X
  419. SEGACT MLLT1Y
  420. SEGACT MLLT1Z
  421. SEGACT MLLT2X
  422. SEGACT MLLT2Y
  423. SEGACT MLLT2Z
  424. C
  425. C**** INITIALISATION DE 1/DT
  426. C
  427. UNSDT = 0.0D0
  428. C
  429. C**** BOUCLE SUR FACEL POUR LE CALCUL DU FLUX
  430. C
  431. DO NLCF = 1, NFAC
  432. C
  433. C******* NLCF = NUMERO LOCAL DU CENTRE DE FACEL
  434. C NGCF = NUMERO GLOBAL DU CENTRE DE FACEL
  435. C NLCF1 = NUMERO LOCAL DU CENTRE DE FACE
  436. C NGCEG = NUMERO GLOBAL DU CENTRE ELT "GAUCHE"
  437. C NLCEG = NUMERO LOCAL DU CENTRE ELT "GAUCHE"
  438. C NGCED = NUMERO GLOBAL DU CENTRE ELT "DROITE"
  439. C NLCED = NUMERO LOCAL DU CENTRE ELT "DROITE"
  440. C
  441. NGCEG = IPT2.NUM(1,NLCF)
  442. NGCED = IPT2.NUM(3,NLCF)
  443. NGCF = IPT2.NUM(2,NLCF)
  444. NLCF1 = MLENT2.LECT(NGCF)
  445. NLCEG = MLENT1.LECT(NGCEG)
  446. NLCED = MLENT1.LECT(NGCED)
  447. C
  448. C******* NLCF != NLCF1 -> L'AUTEUR (MOI) N'A RIEN COMPRIS.
  449. C
  450. IF(NLCF .NE. NLCF1)THEN
  451. MESERR = 'IL NE FAUT PAS JOUER AVEC LA CONSOLE. '
  452. LOGAN = .TRUE.
  453. GOTO 9999
  454. ENDIF
  455. C
  456. C******* RECUPERATION DES ETATS "GAUCHE" ET "DROITE"
  457. C
  458. ALPG = MELALP.VELCHE(1,NLCF)
  459. UVNG = MELUVN.VELCHE(1,NLCF)
  460. UVTG = MELUVT.VELCHE(1,NLCF)
  461. UVVG = MELUVV.VELCHE(1,NLCF)
  462. ULNG = MELULN.VELCHE(1,NLCF)
  463. ULTG = MELULT.VELCHE(1,NLCF)
  464. ULVG = MELULV.VELCHE(1,NLCF)
  465. PG = MELP.VELCHE(1,NLCF)
  466. TVG = MELTV.VELCHE(1,NLCF)
  467. TLG = MELTL.VELCHE(1,NLCF)
  468. RVG = MELRV.VELCHE(1,NLCF)
  469. RLG = MELRL.VELCHE(1,NLCF)
  470. C
  471. ALPD = MELALP.VELCHE(3,NLCF)
  472. UVND = MELUVN.VELCHE(3,NLCF)
  473. UVTD = MELUVT.VELCHE(3,NLCF)
  474. UVVD = MELUVV.VELCHE(3,NLCF)
  475. ULND = MELULN.VELCHE(3,NLCF)
  476. ULTD = MELULT.VELCHE(3,NLCF)
  477. ULVD = MELULV.VELCHE(3,NLCF)
  478. PD = MELP.VELCHE(3,NLCF)
  479. TVD = MELTV.VELCHE(3,NLCF)
  480. TLD = MELTL.VELCHE(3,NLCF)
  481. RVD = MELRV.VELCHE(3,NLCF)
  482. RLD = MELRL.VELCHE(3,NLCF)
  483. C
  484. CNX = MLVNX.VELCHE(1,NLCF)
  485. CNY = MLVNY.VELCHE(1,NLCF)
  486. CNZ = MLVNZ.VELCHE(1,NLCF)
  487. CTX = MLVT1X.VELCHE(1,NLCF)
  488. CTY = MLVT1Y.VELCHE(1,NLCF)
  489. CTZ = MLVT1Z.VELCHE(1,NLCF)
  490. CVX = MLVT2X.VELCHE(1,NLCF)
  491. CVY = MLVT2Y.VELCHE(1,NLCF)
  492. CVZ = MLVT2Z.VELCHE(1,NLCF)
  493.  
  494. C
  495. C******* Calcul du flux aux interfaces
  496. C
  497. C AUSM+ (1) and "preconditioned" AUSM+ (2)
  498. IF((INDMET .EQ. 1) .OR. (INDMET .EQ. 2))THEN
  499. CALL fAP32F(INDMET,
  500. & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG,
  501. & PG, TVG, TLG, RVG, RLG,
  502. & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD,
  503. & PD, TVD, TLD, RVD, RLD,
  504. & IFLU1.FLUX)
  505. C AUSMDV (3) and "preconditioned" AUSMDV (3)
  506. ELSE IF((INDMET .EQ. 3) .OR. (INDMET .EQ. 4))THEN
  507. CALL fDV32F(INDMET,
  508. & ALPG, UVNG, UVTG, UVVG, ULNG, ULTG, ULVG,
  509. & PG, TVG, TLG, RVG, RLG,
  510. & ALPD, UVND, UVTD, UVVD, ULND, ULTD, ULVD,
  511. & PD, TVD, TLD, RVD, RLD,
  512. & IFLU1.FLUX)
  513. ELSE
  514. C
  515. C******** Message d'erreur standard
  516. C 251 2
  517. C Tentative d'utilisation d'une option non implémentée
  518. C
  519. CALL ERREUR(251)
  520. END IF
  521. IF(LOGAN) GOTO 9999
  522. IF(LOGNC) GOTO 9999
  523. C
  524. C******* Ecriture des flux
  525. C
  526. C FLUX(1) = alpha rv uvn
  527. C FLUX(2) = (1-alpha) rl uln
  528. C FLUX(3) = alpha rv uvx uvn + alpha p
  529. C FLUX(4) = alpha rv uvy uvn + alpha p
  530. C FLUX(5) = alpha rv uvz uvn + alpha p
  531. C FLUX(6) = (1-alpha) rl ulx uln + (1-alpha) p
  532. C FLUX(7) = (1-alpha) rl uly uln + (1-alpha) p
  533. C FLUX(8) = (1-alpha) rl ulz uln + (1-alpha) p
  534. C FLUX(9) = alpha rv Hv uvn
  535. C FLUX(10) = (1-alpha) rl Hl uln
  536. C
  537. SURF = MPOVSU.VPOCHA(NLCF,1)
  538.  
  539. MPOFLU.VPOCHA(NLCF,1) = (IFLU1.FLUX(1)*SURF)
  540.  
  541. MPOFLU.VPOCHA(NLCF,2) = (IFLU1.FLUX(2)*SURF)
  542.  
  543. MPOFLU.VPOCHA(NLCF,3) = ((IFLU1.FLUX(3)*CNX + IFLU1.FLUX(5)*CTX
  544. & + IFLU1.FLUX(7)*CVX)*SURF)
  545.  
  546. MPOFLU.VPOCHA(NLCF,4) = ((IFLU1.FLUX(3)*CNY + IFLU1.FLUX(5)*CTY
  547. & + IFLU1.FLUX(7)*CVY)*SURF)
  548.  
  549. MPOFLU.VPOCHA(NLCF,5) = ((IFLU1.FLUX(3)*CNZ + IFLU1.FLUX(5)*CTZ
  550. & + IFLU1.FLUX(7)*CVZ)*SURF)
  551.  
  552. MPOFLU.VPOCHA(NLCF,6) = ((IFLU1.FLUX(4)*CNX + IFLU1.FLUX(6)*CTX
  553. & + IFLU1.FLUX(8)*CVX)*SURF)
  554.  
  555. MPOFLU.VPOCHA(NLCF,7) = ((IFLU1.FLUX(4)*CNY+IFLU1.FLUX(6)*CTY
  556. & + IFLU1.FLUX(8)*CVY)*SURF)
  557.  
  558. MPOFLU.VPOCHA(NLCF,8) = ((IFLU1.FLUX(4)*CNZ+IFLU1.FLUX(6)*CTZ
  559. & + IFLU1.FLUX(8)*CVZ)*SURF)
  560.  
  561. MPOFLU.VPOCHA(NLCF,9) = (IFLU1.FLUX(9)*SURF)
  562.  
  563. MPOFLU.VPOCHA(NLCF,10) = (IFLU1.FLUX(10)*SURF)
  564.  
  565. C
  566. C******* CALCUL DU PAS DU TEMPS (CFL)
  567. C
  568. C****** A) ETAT A L'ITNERFACE
  569. C
  570. DIAMG = MPOVDI.VPOCHA(NLCEG,1)
  571. DIAMD = MPOVDI.VPOCHA(NLCED,1)
  572. DIAM = MIN(DIAMG,DIAMD)
  573. C CELL = 1.0D0/DIAM/CELLT
  574. C IF(CELL .GT. UNSDT)THEN
  575. C UNSDT = CELL
  576. C ENDIF
  577. C
  578. C****** B) ETAT GAUCHE
  579. C gammav = 1.4D0
  580. C Cpv = 1008.D0 J/(kg·K)
  581. C gammal = 2.8D0
  582. C Cpl = 4186.D0 J/(kg·K)
  583. C pil = 8.5D8 Pa
  584.  
  585. AVSON = SQRT(1008.d0*(1.4d0 - 1.d0)*TVG)
  586. LAMDAV = ABS(UVNG) + AVSON
  587. ALSON = SQRT(4186.D0*(2.8d0 - 1.d0)*TLG)
  588. LAMDAL = ABS(ULNG) + ALSON
  589. CELL = 1.D0/(((1.d0 - ALPG)/LAMDAL + ALPG/LAMDAV)* DIAM)
  590. IF(CELL .GT. UNSDT)THEN
  591. UNSDT = CELL
  592. ENDIF
  593. C
  594. C****** C) ETAT DROITE
  595. C
  596. AVSON = SQRT(1008.d0*(1.4d0 - 1.d0)*TVD)
  597. LAMDAV = ABS(UVND) + AVSON
  598. ALSON = SQRT(4186.D0*(2.8d0 - 1.d0)*TLD)
  599. LAMDAL = ABS(ULND) + ALSON
  600. CELL = 1.D0/(((1.d0 - ALPD)/LAMDAL + ALPD/LAMDAV)* DIAM)
  601. IF(CELL .GT. UNSDT)THEN
  602. UNSDT = CELL
  603. ENDIF
  604. C
  605. C
  606. C**** FIN BOUCLE SUR FACEL
  607. C
  608. ENDDO
  609. C
  610. C**** PAS DU TEMPS (CONDITION DE NON INTERACTION EN 1D)
  611. C
  612. DT = 1.D0 / UNSDT
  613. C
  614. C**** DESACTIVATION DES SEGMENTS ET
  615. C ON DETRUIT LES MCHAMLS
  616. C
  617. C**** SEGSUP FRAMAG
  618. C SEGSUP FRAMAD
  619. C
  620. C
  621. C
  622. SEGSUP MLENT1
  623. SEGSUP MLENT2
  624. SEGDES IPT2
  625.  
  626. SEGSUP IFLU1
  627.  
  628. SEGDES MPOVSU
  629. SEGDES MPOVDI
  630.  
  631. SEGDES MPOFLU
  632.  
  633. SEGDES MELALP
  634. SEGDES MELP
  635. SEGDES MELTV
  636. SEGDES MELTL
  637. SEGDES MELRV
  638. SEGDES MELRL
  639.  
  640. SEGDES MELUVN
  641. SEGDES MELUVT
  642. SEGDES MELUVV
  643.  
  644. SEGDES MELULN
  645. SEGDES MELULT
  646. SEGDES MELULV
  647.  
  648. SEGDES MLVNX
  649. SEGDES MLVNY
  650. SEGDES MLVNZ
  651. SEGDES MLVT1X
  652. SEGDES MLVT1Y
  653. SEGDES MLVT1Z
  654. SEGDES MLVT2X
  655. SEGDES MLVT2Y
  656. SEGDES MLVT2Z
  657.  
  658. SEGDES MLLNX
  659. SEGDES MLLNY
  660. SEGDES MLLNZ
  661. SEGDES MLLT1X
  662. SEGDES MLLT1Y
  663. SEGDES MLLT1Z
  664. SEGDES MLLT2X
  665. SEGDES MLLT2Y
  666. SEGDES MLLT2Z
  667. CC
  668. 9999 CONTINUE
  669. C
  670. RETURN
  671. END
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  

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