1
1
!-------------------------------------------------------------------------------
3
! This file is part of the Code_Saturne Kernel, element of the
4
! Code_Saturne CFD tool.
6
! Copyright (C) 1998-2009 EDF S.A., France
8
! contact: saturne-support@edf.fr
10
! The Code_Saturne Kernel is free software; you can redistribute it
11
! and/or modify it under the terms of the GNU General Public License
12
! as published by the Free Software Foundation; either version 2 of
13
! the License, or (at your option) any later version.
15
! The Code_Saturne Kernel is distributed in the hope that it will be
16
! useful, but WITHOUT ANY WARRANTY; without even the implied warranty
17
! of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
! GNU General Public License for more details.
20
! You should have received a copy of the GNU General Public License
21
! along with the Code_Saturne Kernel; if not, write to the
22
! Free Software Foundation, Inc.,
23
! 51 Franklin St, Fifth Floor,
24
! Boston, MA 02110-1301 USA
3
! This file is part of Code_Saturne, a general-purpose CFD tool.
5
! Copyright (C) 1998-2011 EDF S.A.
7
! This program is free software; you can redistribute it and/or modify it under
8
! the terms of the GNU General Public License as published by the Free Software
9
! Foundation; either version 2 of the License, or (at your option) any later
12
! This program is distributed in the hope that it will be useful, but WITHOUT
13
! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17
! You should have received a copy of the GNU General Public License along with
18
! this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
19
! Street, Fifth Floor, Boston, MA 02110-1301, USA.
26
21
!-------------------------------------------------------------------------------
223
214
if(icompt.eq.0.or.ncapt.eq.0) then
220
! Adapt the output frequency parameters according to the time scheme.
221
if (idtvar.lt.0.or.idtvar.eq.2) then
224
if (frhist > 0.d0) then
228
229
! ---> Nom des variables
232
IF(NOMVAR(IPPRTP(IPR (IPHAS))) .EQ.' ') THEN
233
WRITE(NOMVAR(IPPRTP(IPR (IPHAS))),'(A6,I2.2)')'PresPh',IPHAS
235
IF(NOMVAR(IPPRTP(IU (IPHAS))) .EQ.' ') THEN
236
WRITE(NOMVAR(IPPRTP(IU (IPHAS))),'(A6,I2.2)')'VitesX',IPHAS
238
IF(NOMVAR(IPPRTP(IV (IPHAS))) .EQ.' ') THEN
239
WRITE(NOMVAR(IPPRTP(IV (IPHAS))),'(A6,I2.2)')'VitesY',IPHAS
241
IF(NOMVAR(IPPRTP(IW (IPHAS))) .EQ.' ') THEN
242
WRITE(NOMVAR(IPPRTP(IW (IPHAS))),'(A6,I2.2)')'VitesZ',IPHAS
244
if(itytur(iphas).eq.2) then
245
IF(NOMVAR(IPPRTP(IK (IPHAS))) .EQ.' ') THEN
246
WRITE(NOMVAR(IPPRTP(IK (IPHAS))),'(A6,I2.2)') &
249
IF(NOMVAR(IPPRTP(IEP (IPHAS))) .EQ.' ') THEN
250
WRITE(NOMVAR(IPPRTP(IEP (IPHAS))),'(A6,I2.2)') &
253
elseif(itytur(iphas).eq.3) then
254
IF(NOMVAR(IPPRTP(IR11 (IPHAS))) .EQ.' ') THEN
255
WRITE(NOMVAR(IPPRTP(IR11 (IPHAS))),'(A6,I2.2)') &
258
IF(NOMVAR(IPPRTP(IR22 (IPHAS))) .EQ.' ') THEN
259
WRITE(NOMVAR(IPPRTP(IR22 (IPHAS))),'(A6,I2.2)') &
262
IF(NOMVAR(IPPRTP(IR33 (IPHAS))) .EQ.' ') THEN
263
WRITE(NOMVAR(IPPRTP(IR33 (IPHAS))),'(A6,I2.2)') &
266
IF(NOMVAR(IPPRTP(IR12 (IPHAS))) .EQ.' ') THEN
267
WRITE(NOMVAR(IPPRTP(IR12 (IPHAS))),'(A6,I2.2)') &
270
IF(NOMVAR(IPPRTP(IR13 (IPHAS))) .EQ.' ') THEN
271
WRITE(NOMVAR(IPPRTP(IR13 (IPHAS))),'(A6,I2.2)') &
274
IF(NOMVAR(IPPRTP(IR23 (IPHAS))) .EQ.' ') THEN
275
WRITE(NOMVAR(IPPRTP(IR23 (IPHAS))),'(A6,I2.2)') &
278
IF(NOMVAR(IPPRTP(IEP (IPHAS))) .EQ.' ') THEN
279
WRITE(NOMVAR(IPPRTP(IEP (IPHAS))),'(A6,I2.2)') &
282
elseif(iturb(iphas).eq.50) then
283
IF(NOMVAR(IPPRTP(IK (IPHAS))) .EQ.' ') THEN
284
WRITE(NOMVAR(IPPRTP(IK (IPHAS))),'(A6,I2.2)') &
287
IF(NOMVAR(IPPRTP(IEP (IPHAS))) .EQ.' ') THEN
288
WRITE(NOMVAR(IPPRTP(IEP (IPHAS))),'(A6,I2.2)') &
291
IF(NOMVAR(IPPRTP(IPHI (IPHAS))) .EQ.' ') THEN
292
WRITE(NOMVAR(IPPRTP(IPHI (IPHAS))),'(A6,I2.2)') &
295
IF(NOMVAR(IPPRTP(IFB (IPHAS))) .EQ.' ') THEN
296
WRITE(NOMVAR(IPPRTP(IFB (IPHAS))),'(A6,I2.2)') &
299
elseif(iturb(iphas).eq.60) then
300
IF(NOMVAR(IPPRTP(IK (IPHAS))) .EQ.' ') THEN
301
WRITE(NOMVAR(IPPRTP(IK (IPHAS))),'(A6,I2.2)') &
304
IF(NOMVAR(IPPRTP(IOMG (IPHAS))) .EQ.' ') THEN
305
WRITE(NOMVAR(IPPRTP(IOMG (IPHAS))),'(A5,I2.2)') &
310
IF(NOMVAR(IPPPRO(IPPROC(IROM (IPHAS)))) .EQ.' ') THEN
311
WRITE(NOMVAR(IPPPRO(IPPROC(IROM (IPHAS)))),'(A6,I2.2)') &
314
IF(NOMVAR(IPPPRO(IPPROC(IVISCT(IPHAS)))) .EQ.' ') THEN
315
WRITE(NOMVAR(IPPPRO(IPPROC(IVISCT(IPHAS)))),'(A6,I2.2)') &
318
IF(NOMVAR(IPPPRO(IPPROC(IVISCL(IPHAS)))) .EQ.' ') THEN
319
WRITE(NOMVAR(IPPPRO(IPPROC(IVISCL(IPHAS)))),'(A6,I2.2)') &
322
if (ismago(iphas).gt.0) then
323
IF(NOMVAR(IPPPRO(IPPROC(ISMAGO(IPHAS)))) .EQ.' ') THEN
324
WRITE(NOMVAR(IPPPRO(IPPROC(ISMAGO(IPHAS)))),'(A6,I2.2)') &
328
if(icp (iphas).gt.0) then
329
IF(NOMVAR(IPPPRO(IPPROC(ICP (IPHAS)))) .EQ.' ') THEN
330
WRITE(NOMVAR(IPPPRO(IPPROC(ICP (IPHAS)))),'(A6,I2.2)') &
334
if(iescal(iespre,iphas).gt.0) then
335
ipp = ipppro(ipproc(iestim(iespre,iphas)))
336
IF(NOMVAR(IPP) .EQ.' ') THEN
337
WRITE(NOMVAR(IPP),'(A5,I1,I2.2)') &
338
'EsPre',IESCAL(IESPRE,IPHAS),IPHAS
341
if(iescal(iesder,iphas).gt.0) then
342
ipp = ipppro(ipproc(iestim(iesder,iphas)))
343
IF(NOMVAR(IPP) .EQ.' ') THEN
344
WRITE(NOMVAR(IPP),'(A5,I1,I2.2)') &
345
'EsDer',IESCAL(IESDER,IPHAS),IPHAS
348
if(iescal(iescor,iphas).gt.0) then
349
ipp = ipppro(ipproc(iestim(iescor,iphas)))
350
IF(NOMVAR(IPP) .EQ.' ') THEN
351
WRITE(NOMVAR(IPP),'(A5,I1,I2.2)') &
352
'EsCor',IESCAL(IESCOR,IPHAS),IPHAS
355
if(iescal(iestot,iphas).gt.0) then
356
ipp = ipppro(ipproc(iestim(iestot,iphas)))
357
IF(NOMVAR(IPP) .EQ.' ') THEN
358
WRITE(NOMVAR(IPP),'(A5,I1,I2.2)') &
359
'EsTot',IESCAL(IESTOT,IPHAS),IPHAS
231
IF(NOMVAR(IPPRTP(IPR )) .EQ.' ') THEN
232
NOMVAR(IPPRTP(IPR )) = 'Pres'
234
IF(NOMVAR(IPPRTP(IU )) .EQ.' ') THEN
235
NOMVAR(IPPRTP(IU )) = 'VitesX'
237
IF(NOMVAR(IPPRTP(IV )) .EQ.' ') THEN
238
NOMVAR(IPPRTP(IV )) = 'VitesY'
240
IF(NOMVAR(IPPRTP(IW )) .EQ.' ') THEN
241
NOMVAR(IPPRTP(IW )) = 'VitesZ'
244
IF(NOMVAR(IPPRTP(IK )) .EQ.' ') THEN
245
NOMVAR(IPPRTP(IK )) = 'EnTurb'
247
IF(NOMVAR(IPPRTP(IEP )) .EQ.' ') THEN
248
NOMVAR(IPPRTP(IEP )) = 'Dissip'
250
elseif(itytur.eq.3) then
251
IF(NOMVAR(IPPRTP(IR11 )) .EQ.' ') THEN
252
NOMVAR(IPPRTP(IR11 )) = 'R11'
254
IF(NOMVAR(IPPRTP(IR22 )) .EQ.' ') THEN
255
NOMVAR(IPPRTP(IR22 )) = 'R22'
257
IF(NOMVAR(IPPRTP(IR33 )) .EQ.' ') THEN
258
NOMVAR(IPPRTP(IR33 )) = 'R33'
260
IF(NOMVAR(IPPRTP(IR12 )) .EQ.' ') THEN
261
NOMVAR(IPPRTP(IR12 )) = 'R12'
263
IF(NOMVAR(IPPRTP(IR13 )) .EQ.' ') THEN
264
NOMVAR(IPPRTP(IR13 )) = 'R13'
266
IF(NOMVAR(IPPRTP(IR23 )) .EQ.' ') THEN
267
NOMVAR(IPPRTP(IR23 )) = 'R23'
269
IF(NOMVAR(IPPRTP(IEP )) .EQ.' ') THEN
270
NOMVAR(IPPRTP(IEP )) = 'Dissip'
272
elseif(itytur.eq.5) then
273
IF(NOMVAR(IPPRTP(IK )) .EQ.' ') THEN
274
NOMVAR(IPPRTP(IK )) = 'EnTurb'
276
IF(NOMVAR(IPPRTP(IEP )) .EQ.' ') THEN
277
NOMVAR(IPPRTP(IEP )) = 'Dissip'
279
IF(NOMVAR(IPPRTP(IPHI )) .EQ.' ') THEN
280
NOMVAR(IPPRTP(IPHI )) = 'phi'
283
IF(NOMVAR(IPPRTP(IFB )) .EQ.' ') THEN
284
NOMVAR(IPPRTP(IFB )) = 'fbarre'
286
elseif(iturb.eq.51) then
287
IF(NOMVAR(IPPRTP(IAL )) .EQ.' ') THEN
288
NOMVAR(IPPRTP(IAL )) = 'Alpha'
291
elseif(iturb.eq.60) then
292
IF(NOMVAR(IPPRTP(IK )) .EQ.' ') THEN
293
NOMVAR(IPPRTP(IK )) = 'EnTurb'
295
IF(NOMVAR(IPPRTP(IOMG )) .EQ.' ') THEN
296
NOMVAR(IPPRTP(IOMG )) = 'Omega'
298
elseif(iturb.eq.70) then
299
IF(NOMVAR(IPPRTP(INUSA )) .EQ.' ') THEN
300
NOMVAR(IPPRTP(INUSA )) = 'NuTild'
304
IF(NOMVAR(IPPPRO(IPPROC(IROM ))) .EQ.' ') THEN
305
NOMVAR(IPPPRO(IPPROC(IROM ))) = 'MasVol'
307
IF(NOMVAR(IPPPRO(IPPROC(IVISCT))) .EQ.' ') THEN
308
NOMVAR(IPPPRO(IPPROC(IVISCT))) = 'VisTur'
310
IF(NOMVAR(IPPPRO(IPPROC(IVISCL))) .EQ.' ') THEN
311
NOMVAR(IPPPRO(IPPROC(IVISCL))) = 'VisMol'
313
if (ismago.gt.0) then
314
IF(NOMVAR(IPPPRO(IPPROC(ISMAGO))) .EQ.' ') THEN
315
NOMVAR(IPPPRO(IPPROC(ISMAGO))) = 'Csdyn2'
319
IF(NOMVAR(IPPPRO(IPPROC(ICP ))) .EQ.' ') THEN
320
NOMVAR(IPPPRO(IPPROC(ICP ))) = 'ChalSp'
323
if(iescal(iespre).gt.0) then
324
ipp = ipppro(ipproc(iestim(iespre)))
325
IF(NOMVAR(IPP) .EQ.' ') THEN
326
WRITE(NOMVAR(IPP),'(A5,I1)') 'EsPre',IESCAL(IESPRE)
329
if(iescal(iesder).gt.0) then
330
ipp = ipppro(ipproc(iestim(iesder)))
331
IF(NOMVAR(IPP) .EQ.' ') THEN
332
WRITE(NOMVAR(IPP),'(A5,I1)') 'EsDer',IESCAL(IESDER)
335
if(iescal(iescor).gt.0) then
336
ipp = ipppro(ipproc(iestim(iescor)))
337
IF(NOMVAR(IPP) .EQ.' ') THEN
338
WRITE(NOMVAR(IPP),'(A5,I1)') 'EsCor',IESCAL(IESCOR)
341
if(iescal(iestot).gt.0) then
342
ipp = ipppro(ipproc(iestim(iestot)))
343
IF(NOMVAR(IPP) .EQ.' ') THEN
344
WRITE(NOMVAR(IPP),'(A5,I1)') 'EsTot',IESCAL(IESTOT)
365
348
do jj = 1, nscaus
428
411
! ---> Sorties listing
431
ipp = ipppro(ipproc(irom (iphas)))
432
if(irovar(iphas).eq.1.and.ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
433
ipp = ipppro(ipproc(ivisct(iphas)))
434
if( (iturb(iphas).eq.10 .or. itytur(iphas).eq.2 &
435
.or. iturb(iphas).eq.50 .or. iturb(iphas).eq.60) &
436
.and.ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
437
ipp = ipppro(ipproc(icour(iphas)))
438
if (ilisvr(ipp).eq.-999 .or. idtvar.lt.0) ilisvr(ipp) = 0
439
ipp = ipppro(ipproc(ifour(iphas)))
440
if (ilisvr(ipp).eq.-999 .or. idtvar.lt.0) ilisvr(ipp) = 0
441
if(iescal(iespre,iphas).gt.0) then
442
ipp = ipppro(ipproc(iestim(iespre,iphas)))
443
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
445
if(iescal(iesder,iphas).gt.0) then
446
ipp = ipppro(ipproc(iestim(iesder,iphas)))
447
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
449
if(iescal(iescor,iphas).gt.0) then
450
ipp = ipppro(ipproc(iestim(iescor,iphas)))
451
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
453
if(iescal(iestot,iphas).gt.0) then
454
ipp = ipppro(ipproc(iestim(iestot,iphas)))
455
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
413
ipp = ipppro(ipproc(irom ))
414
if(irovar.eq.1.and.ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
415
ipp = ipppro(ipproc(ivisct))
416
if( (iturb.eq.10 .or. itytur.eq.2 &
417
.or. itytur.eq.5 .or. iturb.eq.60 &
419
.and.ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
420
if (inusa .gt. 0) then
421
ipp = ipppro(ipproc(inusa))
422
if(iturb.eq.70.and.ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
424
ipp = ipppro(ipproc(icour))
425
if (ilisvr(ipp).eq.-999 .or. idtvar.lt.0) ilisvr(ipp) = 0
426
ipp = ipppro(ipproc(ifour))
427
if (ilisvr(ipp).eq.-999 .or. idtvar.lt.0) ilisvr(ipp) = 0
428
if(iescal(iespre).gt.0) then
429
ipp = ipppro(ipproc(iestim(iespre)))
430
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
432
if(iescal(iesder).gt.0) then
433
ipp = ipppro(ipproc(iestim(iesder)))
434
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
436
if(iescal(iescor).gt.0) then
437
ipp = ipppro(ipproc(iestim(iescor)))
438
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
440
if(iescal(iestot).gt.0) then
441
ipp = ipppro(ipproc(iestim(iestot)))
442
if( ilisvr(ipp).eq.-999) ilisvr(ipp) = 1
459
445
if(nbmomt.gt.0) then
460
446
do imom = 1, nbmomt
496
482
! 3. OPTIONS DU CALCUL : TABLEAUX DE optcal.h
497
483
!===============================================================================
499
490
! ---> Schema en temps
504
492
! -- Flux de masse
505
if(abs(thetfl(iphas)+999.d0).gt.epzero) then
506
write(nfecra,1001) iphas,istmpf(iphas)
508
elseif(istmpf(iphas).eq.0) then
510
elseif(istmpf(iphas).eq.2) then
511
thetfl(iphas) = 0.5d0
493
if(abs(thetfl+999.d0).gt.epzero) then
494
write(nfecra,1001) istmpf
496
elseif(istmpf.eq.0) then
498
elseif(istmpf.eq.2) then
514
502
! -- Proprietes physiques
515
if(abs(thetro(iphas)+999.d0).gt.epzero) then
516
WRITE(NFECRA,1011) IPHAS,'IROEXT',IROEXT(IPHAS),'THETRO'
518
elseif(iroext(iphas).eq.0) then
519
thetro(iphas) = 0.0d0
520
elseif(iroext(iphas).eq.1) then
521
thetro(iphas) = 0.5d0
522
elseif(iroext(iphas).eq.2) then
525
if(abs(thetvi(iphas)+999.d0).gt.epzero) then
526
WRITE(NFECRA,1011) IPHAS,'IVIEXT',IVIEXT(IPHAS),'THETVI'
528
elseif(iviext(iphas).eq.0) then
529
thetvi(iphas) = 0.0d0
530
elseif(iviext(iphas).eq.1) then
531
thetvi(iphas) = 0.5d0
532
elseif(iviext(iphas).eq.2) then
535
if(abs(thetcp(iphas)+999.d0).gt.epzero) then
536
WRITE(NFECRA,1011) IPHAS,'ICPEXT',ICPEXT(IPHAS),'THETCP'
538
elseif(icpext(iphas).eq.0) then
539
thetcp(iphas) = 0.0d0
540
elseif(icpext(iphas).eq.1) then
541
thetcp(iphas) = 0.5d0
542
elseif(icpext(iphas).eq.2) then
503
if(abs(thetro+999.d0).gt.epzero) then
504
WRITE(NFECRA,1011) 'IROEXT',IROEXT,'THETRO'
506
elseif(iroext.eq.0) then
508
elseif(iroext.eq.1) then
510
elseif(iroext.eq.2) then
513
if(abs(thetvi+999.d0).gt.epzero) then
514
WRITE(NFECRA,1011) 'IVIEXT',IVIEXT,'THETVI'
516
elseif(iviext.eq.0) then
518
elseif(iviext.eq.1) then
520
elseif(iviext.eq.2) then
523
if(abs(thetcp+999.d0).gt.epzero) then
524
WRITE(NFECRA,1011) 'ICPEXT',ICPEXT,'THETCP'
526
elseif(icpext.eq.0) then
528
elseif(icpext.eq.1) then
530
elseif(icpext.eq.2) then
546
534
! -- Termes sources NS
547
if(abs(thetsn(iphas)+999.d0).gt.epzero) then
548
WRITE(NFECRA,1011) IPHAS,'ISNO2T',ISNO2T(IPHAS),'THETSN'
550
elseif(isno2t(iphas).eq.1) then
551
thetsn(iphas) = 0.5d0
552
elseif(isno2t(iphas).eq.2) then
554
elseif(isno2t(iphas).eq.0) then
535
if(abs(thetsn+999.d0).gt.epzero) then
536
WRITE(NFECRA,1011) 'ISNO2T',ISNO2T,'THETSN'
538
elseif(isno2t.eq.1) then
540
elseif(isno2t.eq.2) then
542
elseif(isno2t.eq.0) then
558
546
! -- Termes sources grandeurs turbulentes
559
if(abs(thetst(iphas)+999.d0).gt.epzero) then
560
WRITE(NFECRA,1011) IPHAS,'ISTO2T',ISTO2T(IPHAS),'THETST'
562
elseif(isto2t(iphas).eq.1) then
563
thetst(iphas) = 0.5d0
564
elseif(isto2t(iphas).eq.2) then
566
elseif(isto2t(iphas).eq.0) then
547
if(abs(thetst+999.d0).gt.epzero) then
548
WRITE(NFECRA,1011) 'ISTO2T',ISTO2T,'THETST'
550
elseif(isto2t.eq.1) then
552
elseif(isto2t.eq.2) then
554
elseif(isto2t.eq.0) then
572
558
do iscal = 1, nscal
573
559
! -- Termes sources des scalaires
597
583
! Ici on interdit que l'utilisateur fixe lui meme THETAV, par securite
598
584
! mais on pourrait le laisser faire
599
585
! (enlever le IOK, modifier le message et les tests dans verini)
602
587
! Vitesse pression (la pression est prise sans interp)
603
if(abs(thetav(iu (iphas))+999.d0).gt.epzero.or. &
604
abs(thetav(iv (iphas))+999.d0).gt.epzero.or. &
605
abs(thetav(iw (iphas))+999.d0).gt.epzero.or. &
606
abs(thetav(ipr(iphas))+999.d0).gt.epzero) then
607
WRITE(NFECRA,1031) IPHAS,'VITESSE-PRESSION ','THETAV'
609
elseif(ischtp(iphas).eq.1) then
610
thetav(iu (iphas)) = 1.d0
611
thetav(iv (iphas)) = 1.d0
612
thetav(iw (iphas)) = 1.d0
613
thetav(ipr(iphas)) = 1.d0
614
elseif(ischtp(iphas).eq.2) then
615
thetav(iu (iphas)) = 0.5d0
616
thetav(iv (iphas)) = 0.5d0
617
thetav(iw (iphas)) = 0.5d0
618
thetav(ipr(iphas)) = 1.d0
588
if(abs(thetav(iu )+999.d0).gt.epzero.or. &
589
abs(thetav(iv )+999.d0).gt.epzero.or. &
590
abs(thetav(iw )+999.d0).gt.epzero.or. &
591
abs(thetav(ipr)+999.d0).gt.epzero) then
592
WRITE(NFECRA,1031) 'VITESSE-PRESSION ','THETAV'
594
elseif(ischtp.eq.1) then
599
elseif(ischtp.eq.2) then
621
606
! Turbulence (en k-eps : ordre 1)
622
if(itytur(iphas).eq.2) then
623
if(abs(thetav(ik (iphas))+999.d0).gt.epzero.or. &
624
abs(thetav(iep(iphas))+999.d0).gt.epzero) then
625
WRITE(NFECRA,1031) IPHAS,'VARIABLES K-EPS','THETAV'
627
elseif(ischtp(iphas).eq.1) then
628
thetav(ik (iphas)) = 1.d0
629
thetav(iep(iphas)) = 1.d0
630
elseif(ischtp(iphas).eq.2) then
631
! pour le moment, on ne peut pas passer par ici (cf varpos)
632
thetav(ik (iphas)) = 0.5d0
633
thetav(iep(iphas)) = 0.5d0
635
elseif(itytur(iphas).eq.3) then
636
if(abs(thetav(ir11(iphas))+999.d0).gt.epzero.or. &
637
abs(thetav(ir22(iphas))+999.d0).gt.epzero.or. &
638
abs(thetav(ir33(iphas))+999.d0).gt.epzero.or. &
639
abs(thetav(ir12(iphas))+999.d0).gt.epzero.or. &
640
abs(thetav(ir13(iphas))+999.d0).gt.epzero.or. &
641
abs(thetav(ir23(iphas))+999.d0).gt.epzero.or. &
642
abs(thetav(iep (iphas))+999.d0).gt.epzero) then
643
WRITE(NFECRA,1031) IPHAS,'VARIABLES RIJ-EP','THETAV'
645
elseif(ischtp(iphas).eq.1) then
646
thetav(ir11(iphas)) = 1.d0
647
thetav(ir22(iphas)) = 1.d0
648
thetav(ir33(iphas)) = 1.d0
649
thetav(ir12(iphas)) = 1.d0
650
thetav(ir13(iphas)) = 1.d0
651
thetav(ir23(iphas)) = 1.d0
652
thetav(iep (iphas)) = 1.d0
653
elseif(ischtp(iphas).eq.2) then
654
thetav(ir11(iphas)) = 0.5d0
655
thetav(ir22(iphas)) = 0.5d0
656
thetav(ir33(iphas)) = 0.5d0
657
thetav(ir12(iphas)) = 0.5d0
658
thetav(ir13(iphas)) = 0.5d0
659
thetav(ir23(iphas)) = 0.5d0
660
thetav(iep (iphas)) = 0.5d0
662
elseif(iturb(iphas).eq.50) then
663
if(abs(thetav(ik (iphas))+999.d0).gt.epzero.or. &
664
abs(thetav(iep (iphas))+999.d0).gt.epzero.or. &
665
abs(thetav(iphi(iphas))+999.d0).gt.epzero.or. &
666
abs(thetav(ifb (iphas))+999.d0).gt.epzero) then
667
WRITE(NFECRA,1031) IPHAS,'VARIABLES V2F','THETAV'
669
elseif(ischtp(iphas).eq.1) then
670
thetav(ik (iphas)) = 1.d0
671
thetav(iep (iphas)) = 1.d0
672
thetav(iphi(iphas)) = 1.d0
673
thetav(ifb (iphas)) = 1.d0
674
elseif(ischtp(iphas).eq.2) then
675
! pour le moment, on ne peut pas passer par ici (cf varpos)
676
thetav(ik (iphas)) = 0.5d0
677
thetav(iep (iphas)) = 0.5d0
678
thetav(iphi(iphas)) = 0.5d0
679
thetav(ifb (iphas)) = 0.5d0
681
elseif(iturb(iphas).eq.60) then
682
if(abs(thetav(ik (iphas))+999.d0).gt.epzero.or. &
683
abs(thetav(iomg(iphas))+999.d0).gt.epzero ) then
684
WRITE(NFECRA,1031) IPHAS,'VARIABLES K-OMEGA','THETAV'
686
elseif(ischtp(iphas).eq.1) then
687
thetav(ik (iphas)) = 1.d0
688
thetav(iomg(iphas)) = 1.d0
689
elseif(ischtp(iphas).eq.2) then
690
! pour le moment, on ne peut pas passer par ici (cf varpos)
691
thetav(ik (iphas)) = 0.5d0
692
thetav(iomg(iphas)) = 0.5d0
608
if(abs(thetav(ik )+999.d0).gt.epzero.or. &
609
abs(thetav(iep)+999.d0).gt.epzero) then
610
WRITE(NFECRA,1031) 'VARIABLES K-EPS','THETAV'
612
elseif(ischtp.eq.1) then
615
elseif(ischtp.eq.2) then
616
! pour le moment, on ne peut pas passer par ici (cf varpos)
620
elseif(itytur.eq.3) then
621
if(abs(thetav(ir11)+999.d0).gt.epzero.or. &
622
abs(thetav(ir22)+999.d0).gt.epzero.or. &
623
abs(thetav(ir33)+999.d0).gt.epzero.or. &
624
abs(thetav(ir12)+999.d0).gt.epzero.or. &
625
abs(thetav(ir13)+999.d0).gt.epzero.or. &
626
abs(thetav(ir23)+999.d0).gt.epzero.or. &
627
abs(thetav(iep )+999.d0).gt.epzero) then
628
WRITE(NFECRA,1031) 'VARIABLES RIJ-EP','THETAV'
630
elseif(ischtp.eq.1) then
638
elseif(ischtp.eq.2) then
647
elseif(iturb.eq.50) then
648
if(abs(thetav(ik )+999.d0).gt.epzero.or. &
649
abs(thetav(iep )+999.d0).gt.epzero.or. &
650
abs(thetav(iphi)+999.d0).gt.epzero.or. &
651
abs(thetav(ifb )+999.d0).gt.epzero) then
652
WRITE(NFECRA,1031) 'VARIABLES V2F','THETAV'
654
elseif(ischtp.eq.1) then
659
elseif(ischtp.eq.2) then
660
! pour le moment, on ne peut pas passer par ici (cf varpos)
666
elseif(iturb.eq.51) then
667
if(abs(thetav(ik )+999.d0).gt.epzero.or. &
668
abs(thetav(iep )+999.d0).gt.epzero.or. &
669
abs(thetav(iphi)+999.d0).gt.epzero.or. &
670
abs(thetav(ial )+999.d0).gt.epzero) then
671
WRITE(NFECRA,1031) 'VARIABLES BL-V2/K','THETAV'
673
elseif(ischtp.eq.1) then
678
elseif(ischtp.eq.2) then
679
! pour le moment, on ne peut pas passer par ici (cf varpos)
685
elseif(iturb.eq.60) then
686
if(abs(thetav(ik )+999.d0).gt.epzero.or. &
687
abs(thetav(iomg)+999.d0).gt.epzero ) then
688
WRITE(NFECRA,1031) 'VARIABLES K-OMEGA','THETAV'
690
elseif(ischtp.eq.1) then
693
elseif(ischtp.eq.2) then
694
! pour le moment, on ne peut pas passer par ici (cf varpos)
698
elseif(iturb.eq.70) then
699
if(abs(thetav(inusa)+999.d0).gt.epzero) then
700
WRITE(NFECRA,1031) 'VARIABLE NU_tilde de SA','THETAV'
702
elseif(ischtp.eq.1) then
704
elseif(ischtp.eq.2) then
705
! pour le moment, on ne peut pas passer par ici (cf varpos)
706
thetav(inusa) = 0.5d0
699
711
do iscal = 1, nscal
700
iphas = iphsca(iscal)
701
712
ivar = isca(iscal)
702
713
if(abs(thetav(ivar)+999.d0).gt.epzero) then
703
WRITE(NFECRA,1041) IPHAS,'SCALAIRE',ISCAL,'THETAV'
714
WRITE(NFECRA,1041) 'SCALAIRE',ISCAL,'THETAV'
705
elseif(ischtp(iphas).eq.1) then
716
elseif(ischtp.eq.1) then
706
717
thetav(ivar) = 1.d0
707
elseif(ischtp(iphas).eq.2) then
718
elseif(ischtp.eq.2) then
708
719
thetav(ivar) = 0.5d0
712
723
! Vitesse de maillage en ALE
713
724
if (iale.eq.1) then
715
725
if(abs(thetav(iuma)+999.d0).gt.epzero.or. &
716
726
abs(thetav(ivma)+999.d0).gt.epzero.or. &
717
727
abs(thetav(iwma)+999.d0).gt.epzero) then
718
728
WRITE(NFECRA,1032) 'THETAV'
720
elseif(ischtp(iphas).eq.1) then
730
elseif(ischtp.eq.1) then
721
731
thetav(iuma) = 1.d0
722
732
thetav(ivma) = 1.d0
723
733
thetav(iwma) = 1.d0
724
elseif(ischtp(iphas).eq.2) then
734
elseif(ischtp.eq.2) then
725
735
! pour le moment, on ne peut pas passer par ici (cf varpos)
726
736
thetav(iuma) = 0.5d0
727
737
thetav(ivma) = 0.5d0
797
803
! on initialise EPSILO a 1.D-5
798
804
! Attention aux tests dans verini
801
if(ischtp(iphas).eq.2) then
803
if(nswrsm(ii).eq.-999) nswrsm(ii) = 5
804
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
805
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
807
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
808
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
809
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
811
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
812
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
813
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
815
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
816
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
817
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
820
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
821
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
822
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
826
if(nswrsm(ii).eq.-999) nswrsm(ii) = 2
808
if(nswrsm(ii).eq.-999) nswrsm(ii) = 5
809
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
810
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
812
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
813
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
814
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
816
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
817
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
818
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
820
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
821
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
822
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
825
if(nswrsm(ii).eq.-999) nswrsm(ii) = 10
826
if(abs(epsrsm(ii)+999.d0).lt.epzero) epsrsm(ii) = 1.d-5
827
if(abs(epsilo(ii)+999.d0).lt.epzero) epsilo(ii) = 1.d-5
831
if(nswrsm(ii).eq.-999) nswrsm(ii) = 2
829
833
do ii = 1, nvarmx
830
834
if (nswrsm(ii).eq.-999) nswrsm(ii) = 1
871
875
dtmax = 1.0d3*dtref
876
878
! Ici, ce n'est pas grave pour le moment,
877
879
! etant entendu que ces coefs ne servent pas
878
880
! s'ils servaient, attention dans le cas a plusieurs phases avec
879
881
! une seule pression : celle ci prend le coef de la derniere phase
880
cdtvar(iv (iphas)) = cdtvar(iu(iphas))
881
cdtvar(iw (iphas)) = cdtvar(iu(iphas))
882
cdtvar(ipr(iphas)) = cdtvar(iu(iphas))
884
if(itytur(iphas).eq.2) then
885
cdtvar(iep (iphas)) = cdtvar(ik (iphas))
886
elseif(itytur(iphas).eq.3) then
887
cdtvar(ir22(iphas)) = cdtvar(ir11(iphas))
888
cdtvar(ir33(iphas)) = cdtvar(ir11(iphas))
889
cdtvar(ir12(iphas)) = cdtvar(ir11(iphas))
890
cdtvar(ir13(iphas)) = cdtvar(ir11(iphas))
891
cdtvar(ir23(iphas)) = cdtvar(ir11(iphas))
892
cdtvar(iep (iphas)) = cdtvar(ir11(iphas))
893
elseif(iturb(iphas).eq.50) then
894
cdtvar(iep (iphas)) = cdtvar(ik (iphas))
896
cdtvar(iphi(iphas)) = cdtvar(ik (iphas))
897
! CDTVAR(IFB) est en fait inutile car pas de temps dans l'eq de f_barre
898
cdtvar(ifb (iphas)) = cdtvar(ik (iphas))
899
elseif(iturb(iphas).eq.60) then
900
cdtvar(iomg(iphas)) = cdtvar(ik (iphas))
882
cdtvar(iv ) = cdtvar(iu)
883
cdtvar(iw ) = cdtvar(iu)
884
cdtvar(ipr) = cdtvar(iu)
887
cdtvar(iep ) = cdtvar(ik )
888
elseif(itytur.eq.3) then
889
cdtvar(ir22) = cdtvar(ir11)
890
cdtvar(ir33) = cdtvar(ir11)
891
cdtvar(ir12) = cdtvar(ir11)
892
cdtvar(ir13) = cdtvar(ir11)
893
cdtvar(ir23) = cdtvar(ir11)
894
cdtvar(iep ) = cdtvar(ir11)
895
elseif(itytur.eq.5) then
896
cdtvar(iep ) = cdtvar(ik )
897
cdtvar(iphi) = cdtvar(ik )
898
! CDTVAR(IFB/IAL) est en fait inutile car pas de temps dans
899
! l'eq de f_barre/alpha
901
cdtvar(ifb ) = cdtvar(ik )
902
elseif(iturb.eq.51) then
903
cdtvar(ial ) = cdtvar(ik )
905
elseif(iturb.eq.60) then
906
cdtvar(iomg) = cdtvar(ik )
907
elseif(iturb.eq.70) then
908
! cdtvar est � 1.0 par defaut dans iniini.f90
909
cdtvar(inusa)= cdtvar(inusa)
905
912
! ---> IDEUCH, YPLULI
906
! En laminaire, longueur de melange et LES, une echelle de vitesse
913
! En laminaire, longueur de melange, Spalar-Allmaras et LES,
914
! une echelle de vitesse.
907
915
! Sinon, 2 echelles, sauf si l'utilisateur choisit 1 echelle.
908
916
! On a initialise IDEUCH a -999 pour voir si l'utilisateur essaye
909
917
! de choisir deux echelles quand ce n'est pas possible et le
910
918
! prevenir dans la section verification.
913
if(ideuch(iphas).eq.-999) then
914
if(iturb(iphas).eq. 0.or. &
915
iturb(iphas).eq.10.or. &
916
itytur(iphas).eq.4 ) then
922
! Pour YPLULI, 1/XKAPPA est la valeur qui assure la continuite de la derivee entre
923
! la zone lineaire et la zone logarithmique. Dans le cas des lois de paroi invariantes,
924
! on utilise la valeur de continuite du profil de vitesse, 10,88.
925
! Pour la L .E.S., on remet 10,88, afin d'eviter des clic/clac quand on est a la limite
926
! (en modele a une echelle en effet, YPLULI=1/XKAPPA ne permet pas forcement de calculer
927
! u* de maniere totalement satisfaisante)
928
if (ypluli(iphas).lt.-grand) then
929
if (ideuch(iphas).eq.2 .or. itytur(iphas).eq.4 ) then
930
ypluli(iphas) = 10.88d0
932
ypluli(iphas) = 1.d0/xkappa
920
if(ideuch.eq.-999) then
931
! Pour YPLULI, 1/XKAPPA est la valeur qui assure la continuite de la derivee
932
! entre la zone lineaire et la zone logarithmique.
934
! Dans le cas des lois de paroi invariantes, on utilise la valeur de
935
! continuite du profil de vitesse, 10.88.
937
! Pour la LES, on remet 10.88, afin d'eviter des clic/clac quand on est a
938
! la limite (en modele a une echelle en effet, YPLULI=1/XKAPPA ne permet pas
939
! forcement de calculer u* de maniere totalement satisfaisante).
940
! Idem en Spalart-Allmaras.
942
if (ypluli.lt.-grand) then
943
if (ideuch.eq.2 .or. itytur.eq.4 .or. &
938
952
! ---> Van Driest
940
if(idries(iphas).eq.-1) then
941
! On met 1 en supposant qu'en periodicite ou parallele on utilise le
942
! mode de calcul de la distance a la paroi qui les prend en charge
943
! (ICDPAR=+/-1, valeur par defaut)
944
if(iturb(iphas).eq.40) then
946
elseif(iturb(iphas).eq.41) then
948
elseif(iturb(iphas).eq.42) then
953
if(idries.eq.-1) then
954
! On met 1 en supposant qu'en periodicite ou parallele on utilise le
955
! mode de calcul de la distance a la paroi qui les prend en charge
956
! (ICDPAR=+/-1, valeur par defaut)
959
elseif(iturb.eq.41) then
961
elseif(iturb.eq.42) then