1
!-------------------------------------------------------------------------------
3
! This file is part of the Code_Saturne Kernel, element of the
4
! Code_Saturne CFD tool.
6
! Copyright (C) 1998-2011 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
26
!-------------------------------------------------------------------------------
32
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
33
nnod , lndfac , lndfbr , ncelbr , &
34
nvar , nscal , nphas , ncepdp , ncesmp , &
35
nideve , nrdeve , nituse , nrtuse , iphas , &
36
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
37
ipnfac , nodfac , ipnfbr , nodfbr , &
38
icepdc , icetsm , itypsm , &
39
idevel , ituser , ia , &
40
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
41
dt , rtp , rtpa , propce , propfa , propfb , &
43
coefa , coefb , ckupdc , smacel , &
44
viscf , viscb , coefax , &
46
smbr , rovsdt , grdvit , produc , grarox , graroy , graroz , &
48
w5 , w6 , w7 , w8 , w9 , &
49
rdevel , rtuser , ra )
51
!===============================================================================
55
! RESOLUTION DES EQUATIONS Rij-EPS 1 PHASE INCOMPRESSIBLE OU
56
! RHO VARIABLE SUR UN PAS DE TEMPS
58
!-------------------------------------------------------------------------------
60
!__________________.____._____.________________________________________________.
61
! name !type!mode ! role !
62
!__________________!____!_____!________________________________________________!
63
! idbia0 ! i ! <-- ! number of first free position in ia !
64
! idbra0 ! i ! <-- ! number of first free position in ra !
65
! ndim ! i ! <-- ! spatial dimension !
66
! ncelet ! i ! <-- ! number of extended (real + ghost) cells !
67
! ncel ! i ! <-- ! number of cells !
68
! nfac ! i ! <-- ! number of interior faces !
69
! nfabor ! i ! <-- ! number of boundary faces !
70
! nfml ! i ! <-- ! number of families (group classes) !
71
! nprfml ! i ! <-- ! number of properties per family (group class) !
72
! nnod ! i ! <-- ! number of vertices !
73
! lndfac ! i ! <-- ! size of nodfac indexed array !
74
! lndfbr ! i ! <-- ! size of nodfbr indexed array !
75
! ncelbr ! i ! <-- ! number of cells with faces on boundary !
76
! nvar ! i ! <-- ! total number of variables !
77
! nscal ! i ! <-- ! total number of scalars !
78
! nphas ! i ! <-- ! number of phases !
79
! ncepdp ! i ! <-- ! number of cells with head loss !
80
! ncesmp ! i ! <-- ! number of cells with mass source term !
81
! nideve, nrdeve ! i ! <-- ! sizes of idevel and rdevel arrays !
82
! nituse, nrtuse ! i ! <-- ! sizes of ituser and rtuser arrays !
83
! iphas ! i ! <-- ! phase number !
84
! ifacel(2, nfac) ! ia ! <-- ! interior faces -> cells connectivity !
85
! ifabor(nfabor) ! ia ! <-- ! boundary faces -> cells connectivity !
86
! ifmfbr(nfabor) ! ia ! <-- ! boundary face family numbers !
87
! ifmcel(ncelet) ! ia ! <-- ! cell family numbers !
88
! iprfml ! ia ! <-- ! property numbers per family !
89
! (nfml, nprfml) ! ! ! !
90
! ipnfac(nfac+1) ! ia ! <-- ! interior faces -> vertices index (optional) !
91
! nodfac(lndfac) ! ia ! <-- ! interior faces -> vertices list (optional) !
92
! ipnfbr(nfabor+1) ! ia ! <-- ! boundary faces -> vertices index (optional) !
93
! nodfbr(lndfbr) ! ia ! <-- ! boundary faces -> vertices list (optional) !
94
! icepdc(ncelet ! te ! <-- ! numero des ncepdp cellules avec pdc !
95
! icetsm(ncesmp ! te ! <-- ! numero des cellules a source de masse !
96
! itypsm ! te ! <-- ! type de source de masse pour les !
97
! (ncesmp,nvar) ! ! ! variables (cf. ustsma) !
98
! idevel(nideve) ! ia ! <-> ! integer work array for temporary development !
99
! ituser(nituse) ! ia ! <-> ! user-reserved integer work array !
100
! ia(*) ! ia ! --- ! main integer work array !
101
! xyzcen ! ra ! <-- ! cell centers !
102
! (ndim, ncelet) ! ! ! !
103
! surfac ! ra ! <-- ! interior faces surface vectors !
104
! (ndim, nfac) ! ! ! !
105
! surfbo ! ra ! <-- ! boundary faces surface vectors !
106
! (ndim, nfabor) ! ! ! !
107
! cdgfac ! ra ! <-- ! interior faces centers of gravity !
108
! (ndim, nfac) ! ! ! !
109
! cdgfbo ! ra ! <-- ! boundary faces centers of gravity !
110
! (ndim, nfabor) ! ! ! !
111
! xyznod ! ra ! <-- ! vertex coordinates (optional) !
112
! (ndim, nnod) ! ! ! !
113
! volume(ncelet) ! ra ! <-- ! cell volumes !
114
! dt(ncelet) ! ra ! <-- ! time step (per cell) !
115
! rtp, rtpa ! ra ! <-- ! calculated variables at cell centers !
116
! (ncelet, *) ! ! ! (at current and previous time steps) !
117
! propce(ncelet, *)! ra ! <-- ! physical properties at cell centers !
118
! propfa(nfac, *) ! ra ! <-- ! physical properties at interior face centers !
119
! propfb(nfabor, *)! ra ! <-- ! physical properties at boundary face centers !
120
! tslagr ! tr ! <-- ! terme de couplage retour du !
121
!(ncelet,*) ! ! ! lagrangien !
122
! coefa, coefb ! ra ! <-- ! boundary conditions !
123
! (nfabor, *) ! ! ! !
124
! ckupdc ! tr ! <-- ! tableau de travail pour pdc !
126
! smacel ! tr ! <-- ! valeur des variables associee a la !
127
! (ncesmp,* ) ! ! ! source de masse !
128
! ! ! ! pour ivar=ipr, smacel=flux de masse !
129
! viscf(nfac) ! tr ! --- ! visc*surface/dist aux faces internes !
130
! viscb(nfabor ! tr ! --- ! visc*surface/dist aux faces de bord !
131
! coefax(nfabor ! tr ! --- ! tab de trav pour cond.lim. paroi !
132
! ! tr ! --- ! attention : uniquement avec echo !
133
! ! tr ! --- ! de paroi et abs(icdpar) = 1 !
134
! dam(ncelet ! tr ! --- ! tableau de travail pour matrice !
135
! xam(nfac,*) ! tr ! --- ! tableau de travail pour matrice !
136
! drtp(ncelet ! tr ! --- ! tableau de travail pour increment !
137
! drtp(ncelet ! tr ! --- ! tableau de travail pour increment !
138
! smbr (ncelet ! tr ! --- ! tableau de travail pour sec mem !
139
! drtp(ncelet) ! tr ! --- ! tableau de travail pour increment !
140
! smbr?(ncelet) ! tr ! --- ! tableau de travail pour sec mem !
141
! rovsdt(ncelet ! tr ! --- ! tableau de travail pour terme instat !
142
! grdvit ! tr ! --- ! tableau de travail pour terme grad !
143
! (ncelet,3,3) ! ! ! de vitesse uniqt pour iturb=31 !
144
! produc ! tr ! <-- ! tableau de travail pour production !
145
! (6,ncelet) ! ! ! (sans rho volume) uniqt pour iturb=30 !
146
! grarox,y,z ! tr ! --- ! tableau de travail pour grad rom !
148
! w?(ncelet) ! tr ! --- ! tableau de travail !
149
! rdevel(nrdeve) ! ra ! <-> ! real work array for temporary development !
150
! rtuser(nrtuse) ! ra ! <-> ! user-reserved real work array !
151
! ra(*) ! ra ! --- ! main real work array !
152
!__________________!____!_____!________________________________________________!
154
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
155
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
156
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
157
! --- tableau de travail
158
!-------------------------------------------------------------------------------
159
!===============================================================================
163
!===============================================================================
165
!===============================================================================
176
! Disable use of Fortran 90 pointers if using gfortran < 4.2, as
177
! a gfortran 4.1 bug produces an error here. Array bounds checking
178
! with such an old version will thus lead to errors.
179
#if defined(__GNUC__) && defined(__GNUC_MINOR__)
180
#if (__GNUC__ == 4) && (__GNUC_MINOR__ < 2)
181
#define CS_DISABLE_F90_POINTERS 1
185
!===============================================================================
189
integer idbia0 , idbra0
190
integer ndim , ncelet , ncel , nfac , nfabor
191
integer nfml , nprfml
192
integer nnod , lndfac , lndfbr , ncelbr
193
integer nvar , nscal , nphas
194
integer ncepdp , ncesmp
195
integer nideve , nrdeve , nituse , nrtuse , iphas
197
integer ifacel(2,nfac) , ifabor(nfabor)
198
integer ifmfbr(nfabor) , ifmcel(ncelet)
199
integer iprfml(nfml,nprfml)
200
integer ipnfac(nfac+1), nodfac(lndfac)
201
integer ipnfbr(nfabor+1), nodfbr(lndfbr)
202
integer icepdc(ncepdp)
203
integer icetsm(ncesmp)
204
integer idevel(nideve), ituser(nituse)
207
#if !defined(CS_DISABLE_F90_POINTERS)
208
integer, dimension(ncesmp,nvar), target :: itypsm
210
integer itypsm(ncesmp,nvar)
213
double precision xyzcen(ndim,ncelet)
214
double precision surfac(ndim,nfac), surfbo(ndim,nfabor)
215
double precision cdgfac(ndim,nfac), cdgfbo(ndim,nfabor)
216
double precision xyznod(ndim,nnod), volume(ncelet)
217
double precision dt(ncelet), rtp(ncelet,*), rtpa(ncelet,*)
218
double precision propce(ncelet,*)
219
double precision propfa(nfac,*), propfb(ndimfb,*)
220
double precision coefa(ndimfb,*), coefb(ndimfb,*)
221
double precision ckupdc(ncepdp,6)
222
double precision viscf(nfac), viscb(nfabor), coefax(nfabor)
223
double precision dam(ncelet), xam(nfac,2)
224
double precision drtp(ncelet), smbr(ncelet), rovsdt(ncelet)
225
double precision grdvit(ncelet,3,3), produc(6,ncelet)
226
double precision grarox(ncelet), graroy(ncelet), graroz(ncelet)
227
double precision w1(ncelet), w2(ncelet), w3(ncelet)
228
double precision w4(ncelet), w5(ncelet), w6(ncelet)
229
double precision w7(ncelet), w8(ncelet), w9(ncelet)
230
double precision rdevel(nrdeve), rtuser(nrtuse), ra(*)
232
#if !defined(CS_DISABLE_F90_POINTERS)
233
double precision, dimension(ncesmp,nvar), target :: smacel
234
double precision, dimension(ncelet,*), target :: tslagr
236
double precision smacel(ncesmp,nvar)
237
double precision tslagr(ncelet,*)
242
integer idebia, idebra
243
integer ifac , iel , ivar , isou , ii
245
integer ipp , iwarnp, iclip
246
integer ipriph, iuiph , iviph , iwiph
247
integer ir11ip, ir22ip, ir33ip, ir12ip, ir13ip, ir23ip
249
integer icliup, iclivp, icliwp
250
integer nswrgp, imligp, iphydp
251
integer ipcrom, ipbrom, ipcroo, ipbroo, iivar
253
double precision epsrgp, climgp, extrap
255
#if !defined(CS_DISABLE_F90_POINTERS)
256
integer, pointer, dimension(:) :: itpsmp => null()
257
double precision, pointer, dimension(:) :: smcelp => null(), gammap => null()
258
double precision, pointer, dimension(:) :: tslage => null(), tslagi => null()
261
!===============================================================================
263
!===============================================================================
265
!===============================================================================
282
icliup = iclrtp(iuiph,icoef)
283
iclivp = iclrtp(iviph,icoef)
284
icliwp = iclrtp(iwiph,icoef)
286
ipcrom = ipproc(irom (iphas))
287
ipbrom = ipprob(irom (iphas))
289
if(iwarni(ieiph).ge.1) then
290
if (iturb(iphas).eq.30) then
291
write(nfecra,1000) iphas
293
write(nfecra,1001) iphas
298
! SI ITURB=30 (RIJ STD) ON STOCKE DIRECTEMENT LA PRODUCTION DANS
300
! SI ITURB=31 (SSG) ON STOCKE LE GRADIENT DE VITESSE DANS GRDVIT
302
!===============================================================================
303
! 2.a CALCUL DU TENSEUR DE PRODUCTION POUR LE RIJ STANDARD
304
! W7 = P11 , W8 = P22 , W9 = P33
305
! W10 = P12 , W11 = P13 , W9 = P23
306
!===============================================================================
308
if (iturb(iphas).eq.30) then
309
! INITIALISATIONS DE W7 ... W12
313
produc(ii,iel) = 0.0d0
317
! CALCUL DU GRADIENT DES 3 COMPOSANTES DE LA VITESSE
324
nswrgp = nswrgr(iuiph)
325
imligp = imligr(iuiph)
326
iwarnp = iwarni(iuiph)
327
epsrgp = epsrgr(iuiph)
328
climgp = climgr(iuiph)
329
extrap = extrag(iuiph)
334
( idebia , idebra , &
335
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
336
nnod , lndfac , lndfbr , ncelbr , nphas , &
337
nideve , nrdeve , nituse , nrtuse , &
338
iuiph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
339
iwarnp , nfecra , epsrgp , climgp , extrap , &
340
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
341
ipnfac , nodfac , ipnfbr , nodfbr , &
342
idevel , ituser , ia , &
343
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
345
rtpa(1,iuiph) , coefa(1,icliup) , coefb(1,icliup) , &
347
! ------ ------ ------
349
rdevel , rtuser , ra )
354
produc(1,iel) = produc(1,iel) &
355
- 2.0d0*(rtpa(iel,ir11ip)*w1(iel) + &
356
rtpa(iel,ir12ip)*w2(iel) + &
357
rtpa(iel,ir13ip)*w3(iel) )
359
produc(4,iel) = produc(4,iel) &
360
- (rtpa(iel,ir12ip)*w1(iel) + &
361
rtpa(iel,ir22ip)*w2(iel) + &
362
rtpa(iel,ir23ip)*w3(iel) )
364
produc(5,iel) = produc(5,iel) &
365
- (rtpa(iel,ir13ip)*w1(iel) + &
366
rtpa(iel,ir23ip)*w2(iel) + &
367
rtpa(iel,ir33ip)*w3(iel) )
373
nswrgp = nswrgr(iviph)
374
imligp = imligr(iviph)
375
iwarnp = iwarni(iviph)
376
epsrgp = epsrgr(iviph)
377
climgp = climgr(iviph)
378
extrap = extrag(iviph)
383
( idebia , idebra , &
384
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
385
nnod , lndfac , lndfbr , ncelbr , nphas , &
386
nideve , nrdeve , nituse , nrtuse , &
387
iviph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
388
iwarnp , nfecra , epsrgp , climgp , extrap , &
389
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
390
ipnfac , nodfac , ipnfbr , nodfbr , &
391
idevel , ituser , ia , &
392
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
394
rtpa(1,iviph) , coefa(1,iclivp) , coefb(1,iclivp) , &
396
! ------ ------ ------
398
rdevel , rtuser , ra )
402
produc(2,iel) = produc(2,iel) &
403
- 2.0d0*(rtpa(iel,ir12ip)*w1(iel) + &
404
rtpa(iel,ir22ip)*w2(iel) + &
405
rtpa(iel,ir23ip)*w3(iel) )
407
produc(4,iel) = produc(4,iel) &
408
- (rtpa(iel,ir11ip)*w1(iel) + &
409
rtpa(iel,ir12ip)*w2(iel) + &
410
rtpa(iel,ir13ip)*w3(iel) )
412
produc(6,iel) = produc(6,iel) &
413
- (rtpa(iel,ir13ip)*w1(iel) + &
414
rtpa(iel,ir23ip)*w2(iel) + &
415
rtpa(iel,ir33ip)*w3(iel) )
421
nswrgp = nswrgr(iwiph)
422
imligp = imligr(iwiph)
423
iwarnp = iwarni(iwiph)
424
epsrgp = epsrgr(iwiph)
425
climgp = climgr(iwiph)
426
extrap = extrag(iwiph)
431
( idebia , idebra , &
432
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
433
nnod , lndfac , lndfbr , ncelbr , nphas , &
434
nideve , nrdeve , nituse , nrtuse , &
435
iwiph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
436
iwarnp , nfecra , epsrgp , climgp , extrap , &
437
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
438
ipnfac , nodfac , ipnfbr , nodfbr , &
439
idevel , ituser , ia , &
440
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
442
rtpa(1,iwiph) , coefa(1,icliwp) , coefb(1,icliwp) , &
444
! ------ ------ ------
446
rdevel , rtuser , ra )
450
produc(3,iel) = produc(3,iel) &
451
- 2.0d0*(rtpa(iel,ir13ip)*w1(iel) + &
452
rtpa(iel,ir23ip)*w2(iel) + &
453
rtpa(iel,ir33ip)*w3(iel) )
455
produc(5,iel) = produc(5,iel) &
456
- (rtpa(iel,ir11ip)*w1(iel) + &
457
rtpa(iel,ir12ip)*w2(iel) + &
458
rtpa(iel,ir13ip)*w3(iel) )
460
produc(6,iel) = produc(6,iel) &
461
- (rtpa(iel,ir12ip)*w1(iel) + &
462
rtpa(iel,ir22ip)*w2(iel) + &
463
rtpa(iel,ir23ip)*w3(iel) )
469
!===============================================================================
470
! 2.b CALCUL DU GRADIENT DE VITESSE POUR LE RIJ SSG
471
! GRDVIT(IEL,I,J) = dUi/dxj(IEL)
472
!===============================================================================
474
! CALCUL DU GRADIENT DES 3 COMPOSANTES DE LA VITESSE
481
nswrgp = nswrgr(iuiph)
482
imligp = imligr(iuiph)
483
iwarnp = iwarni(iuiph)
484
epsrgp = epsrgr(iuiph)
485
climgp = climgr(iuiph)
486
extrap = extrag(iuiph)
491
( idebia , idebra , &
492
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
493
nnod , lndfac , lndfbr , ncelbr , nphas , &
494
nideve , nrdeve , nituse , nrtuse , &
495
iuiph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
496
iwarnp , nfecra , epsrgp , climgp , extrap , &
497
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
498
ipnfac , nodfac , ipnfbr , nodfbr , &
499
idevel , ituser , ia , &
500
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
502
rtpa(1,iuiph) , coefa(1,icliup) , coefb(1,icliup) , &
503
grdvit(1,1,1) , grdvit(1,1,2) , grdvit(1,1,3) , &
504
! ------------- ------------- -------------
506
rdevel , rtuser , ra )
511
nswrgp = nswrgr(iviph)
512
imligp = imligr(iviph)
513
iwarnp = iwarni(iviph)
514
epsrgp = epsrgr(iviph)
515
climgp = climgr(iviph)
516
extrap = extrag(iviph)
521
( idebia , idebra , &
522
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
523
nnod , lndfac , lndfbr , ncelbr , nphas , &
524
nideve , nrdeve , nituse , nrtuse , &
525
iviph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
526
iwarnp , nfecra , epsrgp , climgp , extrap , &
527
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
528
ipnfac , nodfac , ipnfbr , nodfbr , &
529
idevel , ituser , ia , &
530
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
532
rtpa(1,iviph) , coefa(1,iclivp) , coefb(1,iclivp) , &
533
grdvit(1,2,1) , grdvit(1,2,2) , grdvit(1,2,3) , &
534
! ------------- ------------- -------------
536
rdevel , rtuser , ra )
541
nswrgp = nswrgr(iwiph)
542
imligp = imligr(iwiph)
543
iwarnp = iwarni(iwiph)
544
epsrgp = epsrgr(iwiph)
545
climgp = climgr(iwiph)
546
extrap = extrag(iwiph)
551
( idebia , idebra , &
552
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
553
nnod , lndfac , lndfbr , ncelbr , nphas , &
554
nideve , nrdeve , nituse , nrtuse , &
555
iwiph , imrgra , inc , iccocg , nswrgp , imligp , iphydp , &
556
iwarnp , nfecra , epsrgp , climgp , extrap , &
557
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
558
ipnfac , nodfac , ipnfbr , nodfbr , &
559
idevel , ituser , ia , &
560
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
562
rtpa(1,iwiph) , coefa(1,icliwp) , coefb(1,icliwp) , &
563
grdvit(1,3,1) , grdvit(1,3,2) , grdvit(1,3,3) , &
564
! ------------- ------------- -------------
566
rdevel , rtuser , ra )
571
!===============================================================================
572
! 3. CALCUL DU GRADIENT DE ROM POUR LES TERMES DE GRAVITE
573
!===============================================================================
575
if(igrari(iphas).eq.1) then
577
! Conditions aux limites : Dirichlet ROMB
578
! On utilise VISCB pour stocker le coefb relatif a ROM
579
! On impose en Dirichlet (COEFA) la valeur ROMB
585
! Le choix ci dessous a l'avantage d'etre simple
587
nswrgp = nswrgr(ir11ip)
588
imligp = imligr(ir11ip)
589
iwarnp = iwarni(ir11ip)
590
epsrgp = epsrgr(ir11ip)
591
climgp = climgr(ir11ip)
592
extrap = extrag(ir11ip)
597
! Si on extrapole les termes sources et rho, on utilise cpdt rho^n
600
if(isto2t(iphas).gt.0.and.iroext(iphas).gt.0) then
601
ipcroo = ipproc(iroma(iphas))
602
ipbroo = ipprob(iroma(iphas))
607
( idebia , idebra , &
608
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
609
nnod , lndfac , lndfbr , ncelbr , nphas , &
610
nideve , nrdeve , nituse , nrtuse , &
611
iivar , imrgra , inc , iccocg , nswrgp , imligp , iphydp ,&
612
iwarnp , nfecra , epsrgp , climgp , extrap , &
613
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
614
ipnfac , nodfac , ipnfbr , nodfbr , &
615
idevel , ituser , ia , &
616
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
618
propce(1,ipcroo), propfb(1,ipbroo), viscb , &
619
grarox , graroy , graroz , &
620
! ------ ------ ------
622
rdevel , rtuser , ra )
627
!===============================================================================
628
! 4. Boucle sur les variables Rij (6 variables)
629
! L'ordre est R11 R22 R33 R12 R13 R23 (La place de ces variables
631
! On resout les equation dans une routine semblable a covofi.F
632
!===============================================================================
639
elseif(isou.eq.2) then
641
elseif(isou.eq.3) then
643
elseif(isou.eq.4) then
645
elseif(isou.eq.5) then
647
elseif(isou.eq.6) then
652
#if !defined(CS_DISABLE_F90_POINTERS)
654
if (iilagr.eq.2 .and. iphas.eq.1) then
655
iitsla = itsr11 + (isou-1)
656
tslage => tslagr(1:ncelet, iitsla)
657
tslagi => tslagr(1:ncelet, itsli)
660
if (ncesmp.gt.0) then
661
itpsmp => itypsm(1:ncesmp,ivar)
662
smcelp => smacel(1:ncesmp,ivar)
663
gammap => smacel(1:ncesmp,ipriph)
666
! Rij-epsilon standard (LRR)
667
if (iturb(iphas).eq.30) then
670
( idebia , idebra , &
671
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
672
nnod , lndfac , lndfbr , ncelbr , &
673
nvar , nscal , nphas , ncepdp , ncesmp , &
674
nideve , nrdeve , nituse , nrtuse , &
675
iphas , ivar , isou , ipp , &
676
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
677
ipnfac , nodfac , ipnfbr , nodfbr , &
678
icepdc , icetsm , itpsmp , &
679
idevel , ituser , ia , &
680
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
681
dt , rtp , rtpa , propce , propfa , propfb , &
682
coefa , coefb , produc , grarox , graroy , graroz , &
683
ckupdc , smcelp , gammap , &
684
viscf , viscb , coefax , &
686
dam , xam , drtp , smbr , rovsdt , &
687
w1 , w2 , w3 , w4 , &
688
w5 , w6 , w7 , w8 , w9 , &
689
rdevel , rtuser , ra )
695
( idebia , idebra , &
696
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
697
nnod , lndfac , lndfbr , ncelbr , &
698
nvar , nscal , nphas , ncepdp , ncesmp , &
699
nideve , nrdeve , nituse , nrtuse , &
700
iphas , ivar , isou , ipp , &
701
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
702
ipnfac , nodfac , ipnfbr , nodfbr , &
703
icepdc , icetsm , itpsmp , &
704
idevel , ituser , ia , &
705
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
706
dt , rtp , rtpa , propce , propfa , propfb , &
707
coefa , coefb , grdvit , grarox , graroy , graroz , &
708
ckupdc , smcelp , gammap , &
709
viscf , viscb , coefax , &
711
dam , xam , drtp , smbr , rovsdt , &
712
w1 , w2 , w3 , w4 , &
713
w5 , w6 , w7 , w8 , w9 , &
714
rdevel , rtuser , ra )
719
if (iilagr.eq.2 .and. iphas.eq.1) then
720
iitsla = itsr11 + (isou-1)
723
! Rij-epsilon standard (LRR)
724
if (iturb(iphas).eq.30) then
727
( idebia , idebra , &
728
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
729
nnod , lndfac , lndfbr , ncelbr , &
730
nvar , nscal , nphas , ncepdp , ncesmp , &
731
nideve , nrdeve , nituse , nrtuse , &
732
iphas , ivar , isou , ipp , &
733
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
734
ipnfac , nodfac , ipnfbr , nodfbr , &
735
icepdc , icetsm , itypsm(1,ivar) , &
736
idevel , ituser , ia , &
737
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
738
dt , rtp , rtpa , propce , propfa , propfb , &
739
coefa , coefb , produc , grarox , graroy , graroz , &
740
ckupdc , smacel(1,ivar) , smacel(1,ipriph), &
741
viscf , viscb , coefax , &
742
tslagr(1,iitsla) , tslagr(1,itsli) , &
743
dam , xam , drtp , smbr , rovsdt , &
744
w1 , w2 , w3 , w4 , &
745
w5 , w6 , w7 , w8 , w9 , &
746
rdevel , rtuser , ra )
752
( idebia , idebra , &
753
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
754
nnod , lndfac , lndfbr , ncelbr , &
755
nvar , nscal , nphas , ncepdp , ncesmp , &
756
nideve , nrdeve , nituse , nrtuse , &
757
iphas , ivar , isou , ipp , &
758
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
759
ipnfac , nodfac , ipnfbr , nodfbr , &
760
icepdc , icetsm , itypsm(1,ivar) , &
761
idevel , ituser , ia , &
762
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
763
dt , rtp , rtpa , propce , propfa , propfb , &
764
coefa , coefb , grdvit , grarox , graroy , graroz , &
765
ckupdc , smacel(1,ivar) , smacel(1,ipriph), &
766
viscf , viscb , coefax , &
767
tslagr(1,iitsla) , tslagr(1,itsli) , &
768
dam , xam , drtp , smbr , rovsdt , &
769
w1 , w2 , w3 , w4 , &
770
w5 , w6 , w7 , w8 , w9 , &
771
rdevel , rtuser , ra )
778
!===============================================================================
779
! 5. RESOLUTION DE EPSILON
780
!===============================================================================
786
#if !defined(CS_DISABLE_F90_POINTERS)
788
if (ncesmp.gt.0) then
789
itpsmp => itypsm(1:ncesmp,ivar)
790
smcelp => smacel(1:ncesmp,ivar)
791
gammap => smacel(1:ncesmp,ipriph)
796
( idebia , idebra , &
797
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
798
nnod , lndfac , lndfbr , ncelbr , &
799
nvar , nscal , nphas , ncepdp , ncesmp , &
800
nideve , nrdeve , nituse , nrtuse , &
801
iphas , ivar , isou , ipp , &
802
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
803
ipnfac , nodfac , ipnfbr , nodfbr , &
804
icepdc , icetsm , itpsmp , &
805
idevel , ituser , ia , &
806
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
807
dt , rtp , rtpa , propce , propfa , propfb , &
808
coefa , coefb , grdvit , produc ,grarox , graroy , graroz , &
809
ckupdc , smcelp , gammap , &
812
dam , xam , drtp , smbr , rovsdt , &
813
w1 , w2 , w3 , w4 , &
814
w5 , w6 , w7 , w8 , w9 , &
815
rdevel , rtuser , ra )
821
( idebia , idebra , &
822
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
823
nnod , lndfac , lndfbr , ncelbr , &
824
nvar , nscal , nphas , ncepdp , ncesmp , &
825
nideve , nrdeve , nituse , nrtuse , &
826
iphas , ivar , isou , ipp , &
827
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
828
ipnfac , nodfac , ipnfbr , nodfbr , &
829
icepdc , icetsm , itypsm(1,ivar) , &
830
idevel , ituser , ia , &
831
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
832
dt , rtp , rtpa , propce , propfa , propfb , &
833
coefa , coefb , grdvit , produc ,grarox , graroy , graroz , &
834
ckupdc , smacel(1,ivar) , smacel(1,ipriph), &
837
dam , xam , drtp , smbr , rovsdt , &
838
w1 , w2 , w3 , w4 , &
839
w5 , w6 , w7 , w8 , w9 , &
840
rdevel , rtuser , ra )
844
!===============================================================================
846
!===============================================================================
851
( ncelet , ncel , nvar , nphas , &
853
propce , rtpa , rtp )
860
#if defined(_CS_LANG_FR)
863
' ** PHASE ',I4,' RESOLUTION DU Rij-EPSILON LRR ',/,&
864
' ------------------------------------------ ',/)
866
' ** PHASE ',I4,' RESOLUTION DU Rij-EPSILON SSG ',/,&
867
' ------------------------------------------ ',/)
872
' ** PHASE ',I4,' SOLVING Rij-EPSILON LRR' ,/,&
873
' ------------------------------------' ,/)
875
' ** PHASE ',I4,' SOLVING Rij-EPSILON SSG' ,/,&
876
' ------------------------------------' ,/)