1 : C PRE32F SOURCE PV 09/03/12 21:31:05 6325
2 : SUBROUTINE PRE32F(ICEN,IFACE,IFACEL,INORM,
3 : & IALP, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC,
4 : & IALPF, IUVF, IULF, IPF, ITVF, ITLF,
5 : & IRVF, IRLF,
6 : & LOGAN,LOGNEG,LOGBOR,MESERR,VALER,VAL1,VAL2)
7 : C************************************************************************
8 : C
9 : C PROJET : CASTEM 2000
10 : C
11 : C NOM : PRE32F
12 : C
13 : C DESCRIPTION : Voir PRE12F
14 : C
15 : C Three dimensions
16 : C
17 : C Two Fluid Flow, 1st order in time and space
18 : C
19 : C Creations des objets MCHAML IALPF, IUVF, IULF,
20 : C IPF, ITVF, ITLF, IRVF, IRLF
21 : C
22 : C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
23 : C
24 : C AUTEUR : A. BECCANTINI, DRN/DMT/SEMT/TTMF
25 : C Modified for two-fluid flow by
26 : C Jose R. Garcia-Cascales
27 : C
28 : C************************************************************************
29 : C
30 : C APPELES (Outils) : KRIPAD, LICHT
31 : C
32 : C APPELES (Calcul) : AUCUN
33 : C
34 : C************************************************************************
35 : C
36 : C ENTREES
37 : C
38 : C 1) Pointeurs de MELEMEs et de CHPOINTs de la table DOMAINE
39 : C
40 : C ICEN : MELEME de 'POI1' SPG des CENTRES
41 : C
42 : C IFACE : MELEME de 'POI1' SPG des FACES
43 : C
44 : C IFACEL : MELEME de 'SEG3' avec
45 : C CENTRE d'Elt "gauche"
46 : C CENTRE de Face
47 : C CENTRE d'Elt "droite"
48 : C
49 : C N.B. = IFACE.NUM(i,1) = IFACEL.NUM(i,2)
50 : C
51 : C INORM : CHPOINT des cosinus directeurs de normales aux faces
52 : C
53 : C 2) Pointeurs des CHPOINTs
54 : C
55 : C IALP : CHPOINT "CENTRE" containing void fraction
56 : C
57 : C IUVC : CHPOINT "CENTRE" containing UVX, UVY & UVZ
58 : C
59 : C IULC : CHPOINT "CENTRE" containing ULX, UVY & ULZ
60 : C
61 : C IPC : CHPOINT "CENTRE" containing P
62 : C
63 : C ITV : CHPOINT "CENTRE" containing TV
64 : C
65 : C ITL : CHPOINT "CENTRE" containing TL
66 : C
67 : C IRVC : CHPOINT "CENTRE" containing RV
68 : C
69 : C IRLC : CHPOINT "CENTRE" containing RL
70 : C
71 : C SORTIES
72 : C
73 : C IALPF : MCHAML defined en la MELEME of pointers
74 : C IFACEL, it contains the void fraction
75 : C (a gauche et a droite de chaque face).
76 : C Only one component ('SCAL')
77 : C
78 : C IUVF : MCHAML "FACEL" vapour velocity and the
79 : C director cosines (n,t) in the corresponding face;
80 : C in the 2D case 6 composantes:
81 : C 'UVN' = normal velocity
82 : C 'UVT' = tangent velocity,
83 : C 'UVV' = tangent velocity
84 : C these two velocities are defined in a local
85 : C reference framework defined over the MELEME
86 : C of pointers IFACE
87 : C 'NX' = n.x
88 : C 'NY' = n.y
89 : C 'T1X' = t1.x
90 : C 'T1Y' = t1.y
91 : C 'T2X' = t2.x
92 : C 'T2Y' = t2.y
93 : C
94 : C IULF : MCHAML "FACEL" liquid velocity
95 : C in the 2D case 2 composantes:
96 : C 'ULN' = normal velocity
97 : C 'ULT' = tangent velocity
98 : C 'ULV' = tangent velocity
99 : C
100 : C IPF : MCHAML "FACEL" pressure
101 : C Only one component ('SCAL')
102 : C
103 : C ITVF : MCHAML "FACEL" vapour temperature
104 : C Only one component ('SCAL')
105 : C
106 : C ITVL : MCHAML "FACEL" liquid temperature
107 : C Only one component ('SCAL')
108 : C
109 : C IRVF : MCHAML "FACEL" vapour density
110 : C Only one component ('SCAL')
111 : C
112 : C IRLF : MCHAML "FACEL" liquid density
113 : C Only one component ('SCAL')
114 : C
115 : C LOGAN : anomalie detectee (changement de la convention dans
116 : C la table domaine)
117 : C
118 : C LOGNEG : (LOGICAL): si .TRUE. une pression ou une densité
119 : C negative a été detectée -> en interactif le
120 : C programme s'arrete en GIBIANE
121 : C (erreur stocké en MESERR et VALER)
122 : C
123 : C LOGBOR : (LOGICAL): si .TRUE. un gamma a ete detecte
124 : C dehor 1 et 3 (sa valeur stockée en MESERR et VALER;
125 : C en VAL1 et en VAL2 on stocke 1.0 et 3.0)
126 : C
127 : C MESERR
128 : C VALER
129 : C VAL1,
130 : C VAL2 : pour les messages d'erreur
131 : C
132 : C************************************************************************
133 : C
134 : C HISTORIQUE (Anomalies et modifications éventuelles)
135 : C
136 : C HISTORIQUE : Créée le 11.6.98.(Adapted to two phase flow 26th
137 : C February 2002)
138 : C
139 : C************************************************************************
140 : C
141 : C
142 : C ATTENTION: Cet programme marche que si le MAILLAGE est convex;
143 : C si non il faut changer l'argoritme de calcul de
144 : C l'orientation des normales aux faces.
145 : C
146 : C
147 : C************************************************************************
148 : C
149 : C**** Variables de COOPTIO
150 : C
151 : INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
152 : & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
153 : & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
154 : & ,IECHO, IIMPI, IOSPI
155 : & ,IDIM, IFICLE , IPREFI
156 : C & ,MCOORD
157 : & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
158 : & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
159 : & ,NORINC,NORVAL,NORIND,NORVAD
160 : & ,NUCROU, IPSAUV
161 : C
162 : C**** Les variables
163 : C
164 : INTEGER ICEN, IFACE, IFACEL,
165 : & IALP, IUVC, IULC, IPC, ITVC, ITLC, IRVC, IRLC, INORM,
166 : & IALPF, IUVF, IULF, IPF, ITVF, ITLF, IRVF, IRLF,
167 : & IGEOM, NFAC,
168 : & N1PTEL, N1EL, N2PTEL, N2EL, N2, N1, N3, L1,
169 : & NLCF, NGCF, NGCEG, NLCEG, NGCED, NLCED, NGCF1
170 : REAL*8 VALER, VAL1, VAL2, XG, YG, ZG, XC, YC, ZC, DXG, DYG, DZG,
171 : & CNX, CNY, CNZ, CTX, CTY, CTZ, CVX, CVY, CVZ, ORIENT,
172 : & AG, UVXG, UVYG, UVZG, UVNG, UVTG, UVVG,
173 : & ULXG, ULYG, ULZG, ULNG, ULTG, ULVG,
174 : & PG, TVG, TLG, RVG, RLG,
175 : & AD, UVXD, UVYD, UVZD, UVND, UVTD, UVVD,
176 : & ULXD, ULYD, ULZD, ULND, ULTD, ULVD,
177 : & PD, TVD, TLD, RVD, RLD
178 : CHARACTER*(40) MESERR
179 : CHARACTER*(8) TYPE
180 : LOGICAL LOGAN,LOGNEG, LOGBOR
181 : C
182 : C**** Les Includes
183 : C
184 : -INC SMCOORD
185 : -INC CCOPTIO
186 : -INC SMCHPOI
187 : POINTEUR MPALP.MPOVAL, MPUVC.MPOVAL, MPULC.MPOVAL,
188 : & MPPC.MPOVAL, MPTVC.MPOVAL, MPTLC.MPOVAL,
189 : & MPRVC.MPOVAL, MPRLC.MPOVAL, MPNORM.MPOVAL
190 : -INC SMCHAML
191 : POINTEUR MLALP.MELVAL, MLP.MELVAL,
192 : & MLTV.MELVAL, MLTL.MELVAL,
193 : & MLRV.MELVAL, MLRL.MELVAL
194 : POINTEUR MLUVN.MELVAL, MLUVT.MELVAL, MLUVV.MELVAL,
195 : & MLULN.MELVAL, MLULT.MELVAL, MLULV.MELVAL,
196 : & MLVNX.MELVAL, MLVNY.MELVAL, MLVNZ.MELVAL,
197 : & MLVT1X.MELVAL, MLVT1Y.MELVAL, MLVT1Z.MELVAL,
198 : & MLVT2X.MELVAL, MLVT2Y.MELVAL, MLVT2Z.MELVAL,
199 : & MLLNX.MELVAL, MLLNY.MELVAL, MLLNZ.MELVAL,
200 : & MLLT1X.MELVAL, MLLT1Y.MELVAL, MLLT1Z.MELVAL,
201 : & MLLT2X.MELVAL, MLLT2Y.MELVAL, MLLT2Z.MELVAL
202 : -INC SMLENTI
203 : -INC SMELEME
204 : C
205 : C**** Initialisation des parametres d'erreur déjà faite, i.e.
206 : C
207 : C LOGNEG = .FALSE.
208 : C LOGBOR = .FALSE.
209 : C MESERR = ' '
210 : C MOTERR(1:40) = MESERR(1:40)
211 : C VALER = 0.0D0
212 : C VAL1 = 0.0D0
213 : C VAL2 = 0.0D0
214 : C
215 : C
216 : C**** KRIPAD pour la correspondance global/local de centre
217 : C
217 : CALL KRIPAD(ICEN,MLENT1)
218 : C
219 : C
220 : C**** MLENTI1 a MCORD.XCOORD(/1)/(IDIM+1) elements
221 : C
222 : C Si i est le numero global d'un noeud de ICEN,
223 : C MLENT1.LECT(i) contient sa position, i.e.
224 : C
225 : C I = numero global du noeud centre
226 : C MLENT1.LECT(i) = numero local du noeud centre
227 : C
228 : C MLENT1 déjà activé, i.e.
229 : C
230 : C SEGINI MLENTI1
231 : C
232 : C**** Activation de CHPOINTs
233 : C
234 : C void fraction
235 : C vapour velocities
236 : C liquid velocities
237 : C pressure
238 : C vapour temperature
239 : C liquid temperature
240 : C vapour density
241 : C liquid density
242 : C
243 : C cosinus directeurs des normales aux surface
244 : C
244 : CALL LICHT(IALP, MPALP, TYPE, IGEOM)
244 : CALL LICHT(IUVC, MPUVC, TYPE, IGEOM)
244 : CALL LICHT(IULC, MPULC, TYPE, IGEOM)
244 : CALL LICHT(IPC , MPPC , TYPE, IGEOM)
244 : CALL LICHT(ITVC, MPTVC, TYPE, IGEOM)
244 : CALL LICHT(ITLC, MPTLC, TYPE, IGEOM)
244 : CALL LICHT(IRVC, MPRVC, TYPE, IGEOM)
244 : CALL LICHT(IRLC, MPRLC, TYPE, IGEOM)
244 : CALL LICHT(INORM, MPNORM, TYPE, IGEOM)
245 : C
246 : C SEGACT MPALP
247 : C SEGACT MPUVC
248 : C SEGACT MPULC
249 : C SEGACT MPPC
250 : C SEGACT MPTVC
251 : C SEGACT MPTLC
252 : C SEGACT MPRVC
253 : C SEGACT MPRLC
254 : C SEGACT MPNORM
255 : C
256 : C**** MPOVA1 - MPOVA5 sont déjà activés i.e.:
257 : C
258 : C**** Le MELEME FACEL
259 : C
260 : IPT1 = IFACEL
261 : IPT2 = IFACE
262 : SEGACT IPT1
263 : SEGACT IPT2
264 : NFAC = IPT1.NUM(/2)
265 : C
266 : C**** Creation de MCHAMLs contenant les etats gauche et droite,
267 : C
268 : C i.e.:
269 : C
270 : C vitesse + cosinus directors du repere local
271 : C densité
272 : C pression
273 : C gamma
274 :
275 : C
276 : C**** Cosinus directors du repere local et vitesse
277 : C
278 : C Les cosinus directeurs
279 : C
280 : C VAPOUR PHASE
281 :
282 : N1 = 2
283 : N3 = 6
284 : L1 = 28
285 : SEGINI MCHEL1
286 : IUVF = MCHEL1
287 : MCHEL1.TITCHE = 'UV '
288 : MCHEL1.IMACHE(1) = IFACE
289 : MCHEL1.IMACHE(2) = IFACEL
290 : MCHEL1.CONCHE(1) = '(n,t,v) in (x,y)'
291 : MCHEL1.CONCHE(2) = ' UV in (n,t,v) '
292 : C
293 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
294 : C
295 : MCHEL1.INFCHE(1,1) = 2
296 : MCHEL1.INFCHE(1,3) = NIFOUR
297 : MCHEL1.INFCHE(1,4) = 0
298 : MCHEL1.INFCHE(1,5) = 0
299 : MCHEL1.INFCHE(1,6) = 0
300 : MCHEL1.IFOCHE = IFOUR
301 : C
302 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
303 : C
304 : MCHEL1.INFCHE(2,1) = 1
305 : MCHEL1.INFCHE(2,3) = NIFOUR
306 : MCHEL1.INFCHE(2,4) = 0
307 : MCHEL1.INFCHE(2,5) = 0
308 : MCHEL1.INFCHE(2,6) = 0
309 : C
310 : C**** Le cosinus directeurs
311 : C
312 : N1PTEL = 1
313 : N1EL = NFAC
314 : N2PTEL = 0
315 : N2EL = 0
316 : C
317 : C**** MCHAML a N2 composantes:
318 : C
319 : C cosinus directeurs du repere local (n,t1)
320 : C
321 : C IDIM = 3 -> 9 composantes
322 : C
323 : N2 = 9
324 : SEGINI MCHAM1
325 : MCHEL1.ICHAML(1) = MCHAM1
326 : MCHAM1.NOMCHE(1) = 'NVX '
327 : MCHAM1.NOMCHE(2) = 'NVY '
328 : MCHAM1.NOMCHE(3) = 'NVZ '
329 : MCHAM1.NOMCHE(4) = 'TVX '
330 : MCHAM1.NOMCHE(5) = 'TVY '
331 : MCHAM1.NOMCHE(6) = 'TVZ '
332 : MCHAM1.NOMCHE(7) = 'VVX '
333 : MCHAM1.NOMCHE(8) = 'VVY '
334 : MCHAM1.NOMCHE(9) = 'VVZ '
335 : MCHAM1.TYPCHE(1) = 'REAL*8 '
336 : MCHAM1.TYPCHE(2) = 'REAL*8 '
337 : MCHAM1.TYPCHE(3) = 'REAL*8 '
338 : MCHAM1.TYPCHE(4) = 'REAL*8 '
339 : MCHAM1.TYPCHE(5) = 'REAL*8 '
340 : MCHAM1.TYPCHE(6) = 'REAL*8 '
341 : MCHAM1.TYPCHE(7) = 'REAL*8 '
342 : MCHAM1.TYPCHE(8) = 'REAL*8 '
343 : MCHAM1.TYPCHE(9) = 'REAL*8 '
344 : SEGINI MLVNX
345 : SEGINI MLVNY
346 : SEGINI MLVNZ
347 : SEGINI MLVT1X
348 : SEGINI MLVT1Y
349 : SEGINI MLVT1Z
350 : SEGINI MLVT2X
351 : SEGINI MLVT2Y
352 : SEGINI MLVT2Z
353 : MCHAM1.IELVAL(1) = MLVNX
354 : MCHAM1.IELVAL(2) = MLVNY
355 : MCHAM1.IELVAL(3) = MLVNZ
356 : MCHAM1.IELVAL(4) = MLVT1X
357 : MCHAM1.IELVAL(5) = MLVT1Y
358 : MCHAM1.IELVAL(6) = MLVT1Z
359 : MCHAM1.IELVAL(7) = MLVT2X
360 : MCHAM1.IELVAL(8) = MLVT2Y
361 : MCHAM1.IELVAL(9) = MLVT2Z
362 : SEGDES MCHAM1
363 : C
364 : C**** Vitesse
365 : C
366 : N1EL = NFAC
367 : N1PTEL = 3
368 : N2EL = 0
369 : N2PTEL = 0
370 : C
371 : C**** MCHAML a N2 composantes:
372 : C
373 : C IDIM = 3 -> 3 composantes
374 : C
375 : N2 = 3
376 : SEGINI MCHAM1
377 : MCHEL1.ICHAML(2) = MCHAM1
378 : SEGDES MCHEL1
379 : MCHAM1.NOMCHE(1) = 'UVN '
380 : MCHAM1.NOMCHE(2) = 'UVT '
381 : MCHAM1.NOMCHE(3) = 'UVV '
382 : MCHAM1.TYPCHE(1) = 'REAL*8 '
383 : MCHAM1.TYPCHE(2) = 'REAL*8 '
384 : MCHAM1.TYPCHE(3) = 'REAL*8 '
385 : SEGINI MLUVN
386 : SEGINI MLUVT
387 : SEGINI MLUVV
388 : MCHAM1.IELVAL(1) = MLUVN
389 : MCHAM1.IELVAL(2) = MLUVT
390 : MCHAM1.IELVAL(3) = MLUVV
391 : SEGDES MCHAM1
392 : C
393 : C**** Cosinus directors du repere local et vitesse
394 : C
395 : C Les cosinus directeurs
396 : C
397 : C LIQUID PHASE
398 :
399 : N1 = 2
400 : N3 = 6
401 : L1 = 28
402 : SEGINI MCHEL1
403 : IULF = MCHEL1
404 : MCHEL1.TITCHE = 'UL '
405 : MCHEL1.IMACHE(1) = IFACE
406 : MCHEL1.IMACHE(2) = IFACEL
407 : MCHEL1.CONCHE(1) = '(n,t,v) in (x,y)'
408 : MCHEL1.CONCHE(2) = ' UL in (n,t,v) '
409 : C
410 : C**** Valeurs des cosinus definies par respect au repair global, i.e.
411 : C
412 : MCHEL1.INFCHE(1,1) = 2
413 : MCHEL1.INFCHE(1,3) = NIFOUR
414 : MCHEL1.INFCHE(1,4) = 0
415 : MCHEL1.INFCHE(1,5) = 0
416 : MCHEL1.INFCHE(1,6) = 0
417 : MCHEL1.IFOCHE = IFOUR
418 : C
419 : C**** Valeurs de vitesse definies par respect au repair local, i.e.
420 : C
421 : MCHEL1.INFCHE(2,1) = 1
422 : MCHEL1.INFCHE(2,3) = NIFOUR
423 : MCHEL1.INFCHE(2,4) = 0
424 : MCHEL1.INFCHE(2,5) = 0
425 : MCHEL1.INFCHE(2,6) = 0
426 : C
427 : C**** Le cosinus directeurs
428 : C
429 : N1PTEL = 1
430 : N1EL = NFAC
431 : N2PTEL = 0
432 : N2EL = 0
433 : C
434 : C**** MCHAML a N2 composantes:
435 : C
436 : C cosinus directeurs du repere local (n,t1)
437 : C
438 : C IDIM = 3 -> 9 composantes
439 : C
440 : N2 = 9
441 : SEGINI MCHAM1
442 : MCHEL1.ICHAML(1) = MCHAM1
443 : MCHAM1.NOMCHE(1) = 'NLX '
444 : MCHAM1.NOMCHE(2) = 'NLY '
445 : MCHAM1.NOMCHE(3) = 'NLZ '
446 : MCHAM1.NOMCHE(4) = 'TLX '
447 : MCHAM1.NOMCHE(5) = 'TLY '
448 : MCHAM1.NOMCHE(6) = 'TLZ '
449 : MCHAM1.NOMCHE(7) = 'VLX '
450 : MCHAM1.NOMCHE(8) = 'VLY '
451 : MCHAM1.NOMCHE(9) = 'VLZ '
452 : MCHAM1.TYPCHE(1) = 'REAL*8 '
453 : MCHAM1.TYPCHE(2) = 'REAL*8 '
454 : MCHAM1.TYPCHE(3) = 'REAL*8 '
455 : MCHAM1.TYPCHE(4) = 'REAL*8 '
456 : MCHAM1.TYPCHE(5) = 'REAL*8 '
457 : MCHAM1.TYPCHE(6) = 'REAL*8 '
458 : MCHAM1.TYPCHE(7) = 'REAL*8 '
459 : MCHAM1.TYPCHE(8) = 'REAL*8 '
460 : MCHAM1.TYPCHE(9) = 'REAL*8 '
461 : SEGINI MLLNX
462 : SEGINI MLLNY
463 : SEGINI MLLNZ
464 : SEGINI MLLT1X
465 : SEGINI MLLT1Y
466 : SEGINI MLLT1Z
467 : SEGINI MLLT2X
468 : SEGINI MLLT2Y
469 : SEGINI MLLT2Z
470 : MCHAM1.IELVAL(1) = MLLNX
471 : MCHAM1.IELVAL(2) = MLLNY
472 : MCHAM1.IELVAL(3) = MLLNZ
473 : MCHAM1.IELVAL(4) = MLLT1X
474 : MCHAM1.IELVAL(5) = MLLT1Y
475 : MCHAM1.IELVAL(6) = MLLT1Z
476 : MCHAM1.IELVAL(7) = MLLT2X
477 : MCHAM1.IELVAL(8) = MLLT2Y
478 : MCHAM1.IELVAL(9) = MLLT2Z
479 : SEGDES MCHAM1
480 : C
481 : C**** Vitesse
482 : C
483 : N1EL = NFAC
484 : N1PTEL = 3
485 : N2EL = 0
486 : N2PTEL = 0
487 : C
488 : C**** MCHAML a N2 composantes:
489 : C
490 : C IDIM = 3 -> 3 composantes
491 : C
492 : N2 = 3
493 : SEGINI MCHAM1
494 : MCHEL1.ICHAML(2) = MCHAM1
495 : SEGDES MCHEL1
496 : MCHAM1.NOMCHE(1) = 'ULN '
497 : MCHAM1.NOMCHE(2) = 'ULT '
498 : MCHAM1.NOMCHE(3) = 'ULV '
499 : MCHAM1.TYPCHE(1) = 'REAL*8 '
500 : MCHAM1.TYPCHE(2) = 'REAL*8 '
501 : MCHAM1.TYPCHE(3) = 'REAL*8 '
502 : SEGINI MLULN
503 : SEGINI MLULT
504 : SEGINI MLULV
505 : MCHAM1.IELVAL(1) = MLULN
506 : MCHAM1.IELVAL(2) = MLULT
507 : MCHAM1.IELVAL(3) = MLULV
508 : SEGDES MCHAM1
509 : C
510 : C**** Void fraction
511 : C
512 : N1 = 1
513 : N3 = 6
514 : L1 = 15
515 : SEGINI MCHEL2
516 : IALPF = MCHEL2
517 : MCHEL2.IMACHE(1) = IFACEL
518 : MCHEL2.TITCHE = 'ALPHA '
519 : MCHEL2.CONCHE(1) = ' '
520 : C
521 : C**** Valeurs independente du repére, i.e.
522 : C
523 : MCHEL2.INFCHE(1,1) = 0
524 : MCHEL2.INFCHE(1,3) = NIFOUR
525 : MCHEL2.INFCHE(1,4) = 0
526 : MCHEL2.INFCHE(1,5) = 0
527 : MCHEL2.INFCHE(1,6) = 0
528 : MCHEL2.IFOCHE = IFOUR
529 : N2 = 1
530 : SEGINI MCHAM1
531 : MCHEL2.ICHAML(1) = MCHAM1
532 : SEGDES MCHEL2
533 : MCHAM1.NOMCHE(1) = 'SCAL '
534 : MCHAM1.TYPCHE(1) = 'REAL*8 '
535 : SEGINI MLALP
536 : MCHAM1.IELVAL(1) = MLALP
537 : SEGDES MCHAM1
538 : C
539 : C**** Pressure
540 : C
541 : MCHEL1 = IALPF
542 : SEGINI, MCHEL2 = MCHEL1
543 : IPF = MCHEL2
544 : MCHEL2.TITCHE = 'P '
545 : C
546 : C**** MCHAM1 = MCHAML de la alpha
547 : C
548 : SEGINI, MCHAM2 = MCHAM1
549 : MCHEL2.ICHAML(1) = MCHAM2
550 : SEGDES MCHEL2
551 : SEGINI MLP
552 : MCHAM2.IELVAL(1) = MLP
553 : SEGDES MCHAM2
554 : C
555 : C**** Vapour temperature
556 : C
557 : MCHEL1 = IALPF
558 : SEGINI, MCHEL2 = MCHEL1
559 : ITVF = MCHEL2
560 : MCHEL2.TITCHE = 'TV '
561 : C
562 : C**** MCHAM1 = MCHAML de la alpha
563 : C
564 : SEGINI, MCHAM2 = MCHAM1
565 : MCHEL2.ICHAML(1) = MCHAM2
566 : SEGDES MCHEL2
567 : SEGINI MLTV
568 : MCHAM2.IELVAL(1) = MLTV
569 : SEGDES MCHAM2
570 : C
571 : C**** Liquid temperature
572 : C
573 : MCHEL1 = IALPF
574 : SEGINI, MCHEL2 = MCHEL1
575 : ITLF = MCHEL2
576 : MCHEL2.TITCHE = 'TL '
577 : C
578 : C**** MCHAM1 = MCHAML de la alpha
579 : C
580 : SEGINI, MCHAM2 = MCHAM1
581 : MCHEL2.ICHAML(1) = MCHAM2
582 : SEGDES MCHEL2
583 : SEGINI MLTL
584 : MCHAM2.IELVAL(1) = MLTL
585 : SEGDES MCHAM2
586 : C
587 : C**** Vapour density
588 : C
589 : MCHEL1 = IALPF
590 : SEGINI, MCHEL2 = MCHEL1
591 : IRVF = MCHEL2
592 : MCHEL2.TITCHE = 'RV '
593 : C
594 : C**** MCHAM1 = MCHAML de la alpha
595 : C
596 : SEGINI, MCHAM2 = MCHAM1
597 : MCHEL2.ICHAML(1) = MCHAM2
598 : SEGDES MCHEL2
599 : SEGINI MLRV
600 : MCHAM2.IELVAL(1) = MLRV
601 : SEGDES MCHAM2
602 : C
603 : C**** Liquid density
604 : C
605 : MCHEL1 = IALPF
606 : SEGINI, MCHEL2 = MCHEL1
607 : IRLF = MCHEL2
608 : MCHEL2.TITCHE = 'RL '
609 : C
610 : C**** MCHAM1 = MCHAML de la alpha
611 : C
612 : SEGINI, MCHAM2 = MCHAM1
613 : MCHEL2.ICHAML(1) = MCHAM2
614 : SEGDES MCHEL2
615 : SEGINI MLRL
616 : MCHAM2.IELVAL(1) = MLRL
617 : SEGDES MCHAM2
618 :
619 : C
620 : C**** Recapitulatif: les MELVALs et les MPOVALs actives
621 : C
622 : C MLVNX, MLVNY, MLVNZ
623 : C MLVTX, MLVTY, MLVTZ
624 : C MLVVX, MLVVY, MLVVZ
625 : C
626 : C MLLNX, MLLNY, MLLNZ
627 : C MLLTX, MLLTY, MLLTZ
628 : C MLLVX, MLLVY, MLLVZ
629 : C
630 : C MLUVN, MLUVT, MLUVV -> vapour velocities
631 : C
632 : C MLULN, MLULT, MLULV -> liquid velocities
633 : C
634 : C MLALP -> void fraction
635 : C
636 : C MLP -> pressure
637 : C
638 : C MLTV -> vapour temperature
639 : C
640 : C MLTL -> liquid temperature
641 : C
642 : C MLRV -> vapour density
643 : C
644 : C MLRL -> liquid density
645 : C****
646 : C MPALP -> void fraction
647 : C
648 : C MPUVC -> vapour velocity
649 : C
650 : C MPULC -> liquid velocity
651 : C
652 : C MPPC -> pressure
653 : C
654 : C MPTVC -> vapour temperature
655 : C
656 : C MPTLC -> liquid temperature
657 : C
658 : C MPRVC -> vapour density
659 : C
660 : C MPRLC -> liquid density
661 : C
662 : C MPNORM -> normales aux faces
663 : C
664 : C**** Boucle sur le faces
665 : C
666 : DO NLCF = 1, NFAC
667 : C
668 : C******* NLCF = numero local du centre de face
669 : C NGCF = numero global du centre de face
670 : C NGCEG = numero global du centre ELT "gauche"
671 : C NLCEG = numero local du centre ELT "gauche"
672 : C NGCED = numero global du centre ELT "droite"
673 : C NLCED = numero local du centre ELT "droite"
674 : C
675 : NGCEG = IPT1.NUM(1,NLCF)
676 : NGCF = IPT1.NUM(2,NLCF)
677 : NGCED = IPT1.NUM(3,NLCF)
678 : NLCEG = MLENT1.LECT(NGCEG)
679 : NLCED = MLENT1.LECT(NGCED)
680 : C
681 : C******* TEST: IPT2.NUM(1,NLCF) = IPT1.NUM(2,NLCF)
682 : C
683 : NGCF1 = IPT2.NUM(1,NLCF)
684 : IF( NGCF1 .NE. NGCF) THEN
685 : LOGAN = .TRUE.
686 : MESERR(1:40) = 'PRET, subroutine pre111.eso '
687 : GOTO 9999
688 : ENDIF
689 : C
690 : C******* Cosinus directeurs des NORMALES aux faces
691 : C
692 : C On impose que les normales sont direct "Gauche" -> "Centre"
693 : C
694 : XG = XCOOR((NGCEG-1)*(IDIM+1)+1)
695 : YG = XCOOR((NGCEG-1)*(IDIM+1)+2)
696 : ZG = XCOOR((NGCEG-1)*(IDIM+1)+3)
697 : XC = XCOOR((NGCF-1)*(IDIM+1)+1)
698 : YC = XCOOR((NGCF-1)*(IDIM+1)+2)
699 : ZC = XCOOR((NGCF-1)*(IDIM+1)+3)
700 : DXG = XC - XG
701 : DYG = YC - YG
702 : DZG = ZC - ZG
703 :
704 : C
705 : C******* On calcule le sign du pruduit scalare
706 : C (Normales de Castem) * (vecteur "gauche" -> "centre")
707 : C
708 : CNX = MPNORM.VPOCHA(NLCF,7)
709 : CNY = MPNORM.VPOCHA(NLCF,8)
710 : CNZ = MPNORM.VPOCHA(NLCF,9)
711 : ORIENT = CNX * DXG + CNY * DYG + CNZ * DZG
712 : ORIENT = SIGN(1.0D0,ORIENT)
713 : IF(ORIENT .NE. 1.0D0)THEN
714 : LOGAN = .TRUE.
715 : MESERR(1:30)=
716 : & 'PRET , subroutine pre121.eso. '
717 : GOTO 9999
718 : ENDIF
719 : CNX = CNX * ORIENT
720 : CNY = CNY * ORIENT
721 : CNZ = CNZ * ORIENT
722 : C
723 : C********** Cosinus directeurs de tangente 1
724 : C
725 : CTX = MPNORM.VPOCHA(NLCF,1) * ORIENT
726 : CTY = MPNORM.VPOCHA(NLCF,2) * ORIENT
727 : CTZ = MPNORM.VPOCHA(NLCF,3) * ORIENT
728 : C
729 : C********** Cosinus directeurs de tangente 2
730 : C
731 : CVX = MPNORM.VPOCHA(NLCF,4) * ORIENT
732 : CVY = MPNORM.VPOCHA(NLCF,5) * ORIENT
733 : CVZ = MPNORM.VPOCHA(NLCF,6) * ORIENT
734 : C
735 : C
736 : C
737 : C******* Les autres MELVALs
738 : C
739 : C
740 : C******* N.B.: On suppose qu'on a déjà controlle RO, P > 0
741 : C GAMMA \in (1,3)
742 : C Si non il faut le faire, en utlisant LOGBOR,
743 : C LOGNEG, VALER, VAL1, VAL2
744 : C
745 : C
746 : C
747 : C******* NGCEG = NGCED -> Mur
748 : C
749 :
750 : IF( NGCEG .EQ. NGCED)THEN
751 : AG = MPALP.VPOCHA(NLCEG, 1)
752 : PG = MPPC.VPOCHA(NLCEG, 1)
753 : TVG = MPTVC.VPOCHA(NLCEG, 1)
754 : TLG = MPTLC.VPOCHA(NLCEG, 1)
755 : RVG = MPRVC.VPOCHA(NLCEG, 1)
756 : RLG = MPRLC.VPOCHA(NLCEG, 1)
757 : UVXG = MPUVC.VPOCHA(NLCEG, 1)
758 : UVYG = MPUVC.VPOCHA(NLCEG, 2)
759 : UVZG = MPUVC.VPOCHA(NLCEG, 3)
760 : ULXG = MPULC.VPOCHA(NLCEG, 1)
761 : ULYG = MPULC.VPOCHA(NLCEG, 2)
762 : ULZG = MPULC.VPOCHA(NLCEG, 3)
763 : UVNG = UVXG * CNX + UVYG * CNY + UVZG * CNZ
764 : UVTG = UVXG * CTX + UVYG * CTY + UVZG * CTZ
765 : UVVG = UVXG * CVX + UVYG * CVY + UVZG * CVZ
766 : ULNG = ULXG * CNX + ULYG * CNY + ULZG * CNZ
767 : ULTG = ULXG * CTX + ULYG * CTY + ULZG * CTZ
768 : ULVG = ULXG * CVX + ULYG * CVY + ULZG * CVZ
769 : C
770 : C********** Son etat droite
771 : C
772 : AD = AG
773 : PD = PG
774 : TVD = TVG
775 : TLD = TLG
776 : RVD = RVG
777 : RLD = RLG
778 : UVND = -1.0D0 * UVNG
779 : UVTD = UVTG
780 : UVVD = UVVG
781 : ULND = -1.0D0 * ULNG
782 : ULTD = ULTG
783 : ULVD = ULVG
784 : C
785 : C************* Fin cas mur
786 : C
787 : ELSE
788 : C
789 : C************* Etat gauche
790 : C
791 : AG = MPALP.VPOCHA(NLCEG, 1)
792 : PG = MPPC.VPOCHA(NLCEG, 1)
793 : TVG = MPTVC.VPOCHA(NLCEG, 1)
794 : TLG = MPTLC.VPOCHA(NLCEG, 1)
795 : RVG = MPRVC.VPOCHA(NLCEG, 1)
796 : RLG = MPRLC.VPOCHA(NLCEG, 1)
797 : UVXG = MPUVC.VPOCHA(NLCEG, 1)
798 : UVYG = MPUVC.VPOCHA(NLCEG, 2)
799 : UVZG = MPUVC.VPOCHA(NLCEG, 3)
800 : ULXG = MPULC.VPOCHA(NLCEG, 1)
801 : ULYG = MPULC.VPOCHA(NLCEG, 2)
802 : ULZG = MPULC.VPOCHA(NLCEG, 3)
803 : UVNG = UVXG * CNX + UVYG * CNY + UVZG * CNZ
804 : UVTG = UVXG * CTX + UVYG * CTY + UVZG * CTZ
805 : UVVG = UVXG * CVX + UVYG * CVY + UVZG * CVZ
806 : ULNG = ULXG * CNX + ULYG * CNY + ULZG * CNZ
807 : ULTG = ULXG * CTX + ULYG * CTY + ULZG * CTZ
808 : ULVG = ULXG * CVX + ULYG * CVY + ULZG * CVZ
809 : C
810 : C********** Etat gauche
811 : C
812 : AD = MPALP.VPOCHA(NLCED, 1)
813 : PD = MPPC.VPOCHA(NLCED, 1)
814 : TVD = MPTVC.VPOCHA(NLCED, 1)
815 : TLD = MPTLC.VPOCHA(NLCED, 1)
816 : RVD = MPRVC.VPOCHA(NLCED, 1)
817 : RLD = MPRLC.VPOCHA(NLCED, 1)
818 : UVXD = MPUVC.VPOCHA(NLCED, 1)
819 : UVYD = MPUVC.VPOCHA(NLCED, 2)
820 : UVZD = MPUVC.VPOCHA(NLCED, 3)
821 : ULXD = MPULC.VPOCHA(NLCED, 1)
822 : ULYD = MPULC.VPOCHA(NLCED, 2)
823 : ULZD = MPULC.VPOCHA(NLCED, 3)
824 : UVND = UVXD * CNX + UVYD * CNY + UVZD * CNZ
825 : UVTD = UVXD * CTX + UVYD * CTY + UVZD * CTZ
826 : UVVD = UVXD * CVX + UVYD * CVY + UVZD * CVZ
827 : ULND = ULXD * CNX + ULYD * CNY + ULZD * CNZ
828 : ULTD = ULXD * CTX + ULYD * CTY + ULZD * CTZ
829 : ULVD = ULXD * CVX + ULYD * CVY + ULZD * CVZ
830 : ENDIF
831 : C
832 : C************* Les MELVALs
833 : C
834 : MLALP.VELCHE(1,NLCF) = AG
835 : MLALP.VELCHE(3,NLCF) = AD
836 : MLP.VELCHE(1,NLCF) = PG
837 : MLP.VELCHE(3,NLCF) = PD
838 : MLTV.VELCHE(1,NLCF) = TVG
839 : MLTV.VELCHE(3,NLCF) = TVD
840 : MLTL.VELCHE(1,NLCF) = TLG
841 : MLTL.VELCHE(3,NLCF) = TLD
842 : MLRV.VELCHE(1,NLCF) = RVG
843 : MLRV.VELCHE(3,NLCF) = RVD
844 : MLRL.VELCHE(1,NLCF) = RLG
845 : MLRL.VELCHE(3,NLCF) = RLD
846 :
847 : MLUVN.VELCHE(1,NLCF) = UVNG
848 : MLUVN.VELCHE(3,NLCF) = UVND
849 : MLUVT.VELCHE(1,NLCF) = UVTG
850 : MLUVT.VELCHE(3,NLCF) = UVTD
851 : MLUVV.VELCHE(1,NLCF) = UVVG
852 : MLUVV.VELCHE(3,NLCF) = UVVD
853 :
854 : MLULN.VELCHE(1,NLCF) = ULNG
855 : MLULN.VELCHE(3,NLCF) = ULND
856 : MLULT.VELCHE(1,NLCF) = ULTG
857 : MLULT.VELCHE(3,NLCF) = ULTD
858 : MLULV.VELCHE(1,NLCF) = ULVG
859 : MLULV.VELCHE(3,NLCF) = ULVD
860 :
861 : MLVNX.VELCHE(1,NLCF) = CNX
862 : MLVNY.VELCHE(1,NLCF) = CNY
863 : MLVNZ.VELCHE(1,NLCF) = CNZ
864 : MLVT1X.VELCHE(1,NLCF) = CTX
865 : MLVT1Y.VELCHE(1,NLCF) = CTY
866 : MLVT1Z.VELCHE(1,NLCF) = CTZ
867 : MLVT2X.VELCHE(1,NLCF) = CVX
868 : MLVT2Y.VELCHE(1,NLCF) = CVY
869 : MLVT2Z.VELCHE(1,NLCF) = CVZ
870 :
871 : MLLNX.VELCHE(1,NLCF) = CNX
872 : MLLNY.VELCHE(1,NLCF) = CNY
873 : MLLNZ.VELCHE(1,NLCF) = CNZ
874 : MLLT1X.VELCHE(1,NLCF) = CTX
875 : MLLT1Y.VELCHE(1,NLCF) = CTY
876 : MLLT1Z.VELCHE(1,NLCF) = CTZ
877 : MLVT2X.VELCHE(1,NLCF) = CVX
878 : MLVT2Y.VELCHE(1,NLCF) = CVY
879 : MLVT2Z.VELCHE(1,NLCF) = CVZ
880 :
881 : ENDDO
882 : C
883 : C**** Desactivation des SEGMENTs
884 : C
885 : SEGDES IPT1
886 : SEGDES IPT2
887 : C
888 : SEGDES MPALP
889 : SEGDES MPUVC
890 : SEGDES MPULC
891 : SEGDES MPPC
892 : SEGDES MPTVC
893 : SEGDES MPTLC
894 : SEGDES MPRVC
895 : SEGDES MPRLC
896 : SEGDES MPNORM
897 :
898 : SEGDES MLALP
899 : SEGDES MLP
900 : SEGDES MLTV
901 : SEGDES MLTL
902 : SEGDES MLRV
903 : SEGDES MLRL
904 :
905 : SEGDES MLUVN
906 : SEGDES MLUVT
907 : SEGDES MLUVV
908 : SEGDES MLULN
909 : SEGDES MLULT
910 : SEGDES MLULV
911 :
912 : SEGDES MLVNX
913 : SEGDES MLVNY
914 : SEGDES MLVNZ
915 : SEGDES MLVT1X
916 : SEGDES MLVT1Y
917 : SEGDES MLVT1Z
918 : SEGDES MLVT2X
919 : SEGDES MLVT2Y
920 : SEGDES MLVT2Z
921 :
922 : SEGDES MLLNX
923 : SEGDES MLLNY
924 : SEGDES MLLNZ
925 : SEGDES MLLT1X
926 : SEGDES MLLT1Y
927 : SEGDES MLLT1Z
928 : SEGDES MLLT2X
929 : SEGDES MLLT2Y
930 : SEGDES MLLT2Z
931 :
932 : C
933 : C**** Destruction du MELNTI correspondance local/global
934 : C
935 : SEGSUP MLENT1
936 : C
937 : 9999 CONTINUE
938 : C
939 : RETURN
940 : END
941 :
942 :
943 :
944 :
945 :
946 :
© Cast3M 2003 - All rights reserved.
Disclaimer