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
!-------------------------------------------------------------------------------
28
23
subroutine tridim &
31
( idbia0 , idbra0 , itrale , &
32
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
33
nnod , lndfac , lndfbr , ncelbr , &
34
nvar , nscal , nphas , &
35
nideve , nrdeve , nituse , nrtuse , &
36
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
37
ipnfac , nodfac , ipnfbr , nodfbr , isostd , &
38
idevel , ituser , ia , &
39
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
40
dt , rtpa , rtp , propce , propfa , propfb , &
41
tslagr , coefa , coefb , frcxt , &
29
dt , tpucou , rtpa , rtp , propce , propfa , propfb , &
30
tslagr , coefa , coefb , frcxt )
45
32
!===============================================================================
115
57
! (nfabor, *) ! ! ! !
116
58
! tslagr ! tr ! <-- ! terme de couplage retour du !
117
59
!(ncelet,*) ! ! ! lagrangien !
118
! frcxt(ncelet, ! tr ! <-- ! force exterieure generant la pression !
119
! 3,nphas) ! ! ! hydrostatique !
120
! rdevel(nrdeve) ! ra ! <-> ! real work array for temporary development !
121
! rtuser(nrtuse) ! ra ! <-> ! user-reserved real work array !
122
! ra(*) ! ra ! --- ! main real work array !
60
! frcxt(ncelet,3) ! tr ! <-- ! force exterieure generant la pression !
61
! ! ! ! hydrostatique !
123
62
!__________________!____!_____!________________________________________________!
125
64
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
126
65
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
127
66
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
128
67
! --- tableau de travail
68
!===============================================================================
70
!===============================================================================
72
!===============================================================================
102
! les " use pp* " ne servent que pour recuperer le pointeur IIZFPP
130
104
!===============================================================================
134
!===============================================================================
136
!===============================================================================
165
! les includes pp* ne servent que pour recuperer le pointeur IIZFPP
167
!===============================================================================
171
integer idbia0 , idbra0 , itrale
172
integer ndim , ncelet , ncel , nfac , nfabor
173
integer nfml , nprfml
174
integer nnod , lndfac , lndfbr , ncelbr
175
integer nvar , nscal , nphas
176
integer nideve , nrdeve , nituse , nrtuse
178
integer ifacel(2,nfac) , ifabor(nfabor)
179
integer ifmfbr(nfabor) , ifmcel(ncelet)
180
integer iprfml(nfml,nprfml)
181
integer ipnfac(nfac+1), nodfac(lndfac)
182
integer ipnfbr(nfabor+1), nodfbr(lndfbr)
183
integer isostd(nfabor+1,nphas)
184
integer idevel(nideve), ituser(nituse)
187
double precision xyzcen(ndim,ncelet)
188
double precision surfac(ndim,nfac), surfbo(ndim,nfabor)
189
double precision cdgfac(ndim,nfac), cdgfbo(ndim,nfabor)
190
double precision xyznod(ndim,nnod), volume(ncelet)
191
double precision dt(ncelet), rtp(ncelet,*), rtpa(ncelet,*)
113
integer isostd(nfabor+1)
115
double precision dt(ncelet), tpucou(ncelet,3), rtp(ncelet,*), rtpa(ncelet,*)
192
116
double precision propce(ncelet,*)
193
117
double precision propfa(nfac,*), propfb(nfabor,*)
194
118
double precision tslagr(ncelet,*)
195
119
double precision coefa(nfabor,*), coefb(nfabor,*)
196
double precision frcxt(ncelet,3,nphas)
197
double precision rdevel(nrdeve), rtuser(nrtuse), ra(*)
120
double precision frcxt(ncelet,3)
199
122
! Local variables
201
integer idebia, idebra
202
integer idbia1, idbra1
203
integer ifinia, ifinra, ifnia1, ifnra1
204
124
integer iel , ifac , inod , ivar , iscal , iappel
205
125
integer ncp , ncv , iok
206
126
integer iicodc, ircodc
207
integer icoefu, irijip, ihbord, itbord
208
integer idtr , iviscf, iviscb, ivisfi, ivisbi, iiptot
211
integer idrtp , igrdp , ismbr , irovsd
212
integer itinsk, itinse, idivu , iprv2f
213
integer iw1 , iw2 , iw3 , iw4 , iw5 , iw6
214
integer iw7 , iw8 , iw9 , iw10 , iw11 , iw12
216
integer ifrchy, idfrhy, idfrcx
217
integer igrdvt, iprodu, igrarx, igrary, igrarz
218
integer iesflm, iesflb
219
integer itrava, iximpa, iuvwk
127
integer ihbord, itbord
224
132
integer isvhb , isvtb
225
integer iphas , kphas , ii , jj , ippcp , ientha, ippcv
226
integer ikiph , ieiph , iomiph
227
integer iuiph , iviph , iwiph , ipriph, iphiph, iphass
228
integer ir11ip, ir22ip, ir33ip, ir12ip, ir13ip, ir23ip
133
integer ii , jj , ippcp , ientha, ippcv
229
134
integer ipcrom, ipcroa
230
integer iprnew, idimte, itenso
231
integer ifinib, ifinrb, iiifap
135
integer idimte, itenso
232
136
integer iflua , iflub
233
integer icoax , icobx , icoay , icoby , icoaz , icobz
234
integer iqfx , iqfy , iqfz , icoefq
235
integer iirho , iirhob, icoefx
236
integer irtdp , idrtdp, icofay, icofby, iismph
237
integer iisoth, itext , itint , itek
238
integer icorua, icorub, iflxma, iflxmb
239
integer iterns, inslst, icvrge, iuetbo, ivsvdr
240
integer iwflms, iwflmb
241
integer iwcf , iph , iflmas, iflmab
137
integer iterns, inslst, icvrge, ivsvdr
138
integer iflmas, iflmab
242
139
integer italim, itrfin, itrfup, ineefl
243
integer iflalf, iflalb, iprale, icoale
244
integer maxelt, ils, iilzfb, nbzfmx, nozfmx, iqcalc
140
integer nbzfmx, nozfmx
246
142
double precision cpcst , tditot, tdist2, tdist1, cvcst
247
double precision ro0iph, p0iph, pr0iph, xxp0, xyp0, xzp0
248
double precision relaxk, relaxe, relaxw
143
double precision xxp0, xyp0, xzp0
144
double precision relaxk, relaxe, relaxw, relaxn
249
145
double precision ctheta, stheta, omgnrm, rrotgb(3,3)
302
( idimte , itenso , &
303
rtp(1,iu), rtp(1,iu), rtp(1,iu), &
304
rtp(1,iv), rtp(1,iv), rtp(1,iv), &
305
rtp(1,iw), rtp(1,iw), rtp(1,iw))
307
! -- Tenseur de Reynolds
419
( idimte , itenso , &
420
rtp(1,iuiph), rtp(1,iuiph), rtp(1,iuiph), &
421
rtp(1,iviph), rtp(1,iviph), rtp(1,iviph), &
422
rtp(1,iwiph), rtp(1,iwiph), rtp(1,iwiph))
426
! -- Tenseur de Reynolds
430
if(itytur(iphas).eq.3) then
441
( idimte , itenso , &
442
rtp(1,ir11ip), rtp(1,ir12ip), rtp(1,ir13ip), &
443
rtp(1,ir12ip), rtp(1,ir22ip), rtp(1,ir23ip), &
444
rtp(1,ir13ip), rtp(1,ir23ip), rtp(1,ir33ip) )
314
( idimte , itenso , &
315
rtp(1,ir11), rtp(1,ir12), rtp(1,ir13), &
316
rtp(1,ir12), rtp(1,ir22), rtp(1,ir23), &
317
rtp(1,ir13), rtp(1,ir23), rtp(1,ir33) )
447
320
! -- Remarque pour le v2f
448
321
! v2 (donc phi) est lie a une orientation locale, on peut donc le traiter
449
322
! comme un scalaire dans la periodicite de rotation
454
325
! -- Variables scalaires
456
327
do ivar = 1, nvar
458
if(ivar.ne.iu(iphas).and.ivar.ne.iv(iphas).and. &
459
ivar.ne.iw(iphas).and. &
460
(itytur(iphas).ne.3.or. &
461
(ivar.ne.ir11(iphas).and.ivar.ne.ir22(iphas).and. &
462
ivar.ne.ir33(iphas).and.ivar.ne.ir12(iphas).and. &
463
ivar.ne.ir13(iphas).and.ivar.ne.ir23(iphas)))) then
469
( idimte , itenso , &
470
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar), &
471
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar), &
472
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar) )
328
if(ivar.ne.iu.and.ivar.ne.iv.and.ivar.ne.iw.and. &
330
(ivar.ne.ir11.and.ivar.ne.ir22.and. &
331
ivar.ne.ir33.and.ivar.ne.ir12.and. &
332
ivar.ne.ir13.and.ivar.ne.ir23))) then
338
( idimte , itenso , &
339
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar), &
340
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar), &
341
rtp(1,ivar), rtp(1,ivar), rtp(1,ivar) )
670
511
! (VISCOSITES ET MASSE VOLUMIQUE)
671
512
!===============================================================================
673
if(iwarni(iu(1)).ge.1) then
514
if(iwarni(iu).ge.1) then
674
515
write(nfecra,1010)
679
( idebia , idebra , &
680
nvar , ncelet , ncel , nfac , nfabor , nphas , &
681
iw1 , iw2 , iw3 , iw4 , &
682
iw5 , iw6 , iw7 , iw8 , &
683
iw9 , iw10 , iw11 , iw12 , ixmij , &
688
( ifinia , ifinra , &
689
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
690
nnod , lndfac , lndfbr , ncelbr , &
691
nvar , nscal , nphas , &
692
nideve , nrdeve , nituse , nrtuse , &
693
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
694
ipnfac , nodfac , ipnfbr , nodfbr , &
695
idevel , ituser , ia , &
696
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
697
521
dt , rtp , rtpa , propce , propfa , propfb , &
699
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
700
ra(iw7), ra(iw8), ra(iw9), ra(iw10), ra(iw11), ra(iw12), &
702
rdevel , rtuser , ra )
704
524
if (itrale.gt.0) then
708
( idebia , idebra , &
709
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
710
nnod , lndfac , lndfbr , ncelbr , &
711
nvar , nscal , nphas , iappel , &
712
nideve , nrdeve , nituse , nrtuse , &
713
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
714
ipnfac , nodfac , ipnfbr , nodfbr , isostd , &
715
idevel , ituser , ia , &
716
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
528
( nvar , nscal , iappel , &
717
530
dt , rtpa , rtp , propce , propfa , propfb , &
727
538
! LA VITESSE MOYENNE OU MAX.
732
if (ncpdct(iphas).gt.0) then
735
if (imatis.eq.1) then
739
( idebia , idebra , &
740
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
741
nnod , lndfac , lndfbr , ncelbr , &
742
nvar , nscal , nphas , &
743
nideve , nrdeve , nituse , nrtuse , &
744
ncepdc(iphas) , iphas , iappel , &
745
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
746
ipnfac , nodfac , ipnfbr , nodfbr , ia(iicepd(iphas)) , &
747
idevel , ituser , ia , &
748
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
749
dt , rtpa , rtp , propce , propfa , propfb , &
750
coefa , coefb , ra(ickupd(iphas)) , &
751
rdevel , rtuser , ra )
755
if (iihmpr.eq.1) then
758
( iappel, iphas, ncelet, ncepdc, &
759
ia(iicepd(iphas)), ra(ickupd(iphas)), rtpa )
763
idbia1 = ils + maxelt
764
CALL IASIZE('TRIDIM',IDBIA1)
768
( idbia1 , idebra , &
769
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
770
nnod , lndfac , lndfbr , ncelbr , &
771
nvar , nscal , nphas , &
772
nideve , nrdeve , nituse , nrtuse , &
773
ncepdc(iphas) , iphas , iappel , &
774
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
775
ipnfac , nodfac , ipnfbr , nodfbr , ia(iicepd(iphas)) , &
776
idevel , ituser , ia , &
777
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
778
dt , rtpa , rtp , propce , propfa , propfb , &
779
coefa , coefb , ra(ickupd(iphas)) , &
780
rdevel , rtuser , ra )
541
if (ncpdct.gt.0) then
545
if (iihmpr.eq.1) then
548
( iappel, ncelet, ncepdc, &
549
icepdc, ckupdc, rtpa )
557
dt , rtpa , rtp , propce , propfa , propfb , &
558
coefa , coefb , ckupdc )
789
563
! REMPLISSAGE DES COEFS DE TERME SOURCE DE MASSE
793
565
! ON Y PASSE MEME S'IL N'Y A PAS DE TSM SUR LE PROC COURANT AU CAS OU
794
566
! UN UTILISATEUR DECIDERAIT D'AVOIR UN TSM DEPENDANT DE
795
567
! VALEURS GLOBALES OU MAX.
796
if(nctsmt(iphas).gt.0) then
799
idbia1 = ils + maxelt
800
CALL IASIZE('TRIDIM',IDBIA1)
802
! Mise a zero du tableau de type de TS masse et source
803
do ii = 1, ncetsm(iphas)*nvar
804
ia(iitpsm(iphas)+ii-1) = 0
805
ra(ismace(iphas)+ii-1) = 0.d0
570
! Mise a zero du tableau de type de TS masse et source
574
smacel(ii,ivar) = 0.d0
811
( idbia1 , idebra , &
812
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
813
nnod , lndfac , lndfbr , ncelbr , &
814
nvar , nscal , nphas , ncepdc(iphas) , &
815
nideve , nrdeve , nituse , nrtuse , &
816
ncetsm(iphas) , iphas , iappel , &
817
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
818
ipnfac , nodfac , ipnfbr , nodfbr , &
819
ia(iicepd(iphas)) , &
820
ia(iicesm(iphas)) , ia(iitpsm(iphas)) , &
821
idevel , ituser , ia , &
822
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
823
dt , rtpa , propce , propfa , propfb , &
824
coefa , coefb , ra(ickupd(iphas)), ra(ismace(iphas)), &
825
rdevel , rtuser , ra )
581
( nvar , nscal , ncepdc , &
584
icetsm , itypsm , izctsm , &
585
dt , rtpa , propce , propfa , propfb , &
586
coefa , coefb , ckupdc , smacel )
831
590
!===============================================================================
832
591
! 8. CALCUL DU NOMBRE DE COURANT ET DE FOURIER
833
592
! CALCUL DU PAS DE TEMPS SI VARIABLE
834
593
!===============================================================================
836
if(iwarni(iu(1)).ge.1) then
595
if(iwarni(iu).ge.1) then
837
596
write(nfecra,1020)
842
( idebia , idebra , &
843
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
844
nnod , lndfac , lndfbr , ncelbr , &
845
nvar , nscal , nphas , &
846
iviscf , iviscb , idam , icofbd , iw1 , iw2 , iw3 , &
847
icofbr , igrarx , igrary , igrarz , iwcf , &
848
iptlro , ippmod(icompf) , &
855
( ifinia , ifinra , &
856
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
857
nnod , lndfac , lndfbr , ncelbr , &
858
nvar , nscal , nphas , &
859
ncepdc(iphas) , ncetsm(iphas) , &
860
nideve , nrdeve , nituse , nrtuse , iwarni(iu(1)) , &
861
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
862
ipnfac , nodfac , ipnfbr , nodfbr , &
863
ia(iicepd(iphas)), ia(iicesm(iphas)), ia(iitpsm(iphas)) , &
864
idevel , ituser , ia , &
865
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
604
icepdc , icetsm , itypsm , &
866
605
dt , rtp , rtpa , propce , propfa , propfb , &
867
coefa , coefb , ra(ickupd(iphas)) , ra(ismace(iphas)), &
868
ra(iviscf) , ra(iviscb) , ra(idam) , &
869
ra(icofbd) , ra(iw1) , ra(iw2) , ra(iw3) ,&
870
ra(icofbr) , ra(igrarx) , ra(igrary) , ra(igrarz),&
872
rdevel , rtuser , ra )
606
coefa , coefb , ckupdc , smacel )
874
608
if (nbaste.gt.0.and.itrale.gt.nalinf) then
875
609
ntrela = ntcabs - ntpabs
1002
710
do while (iterns.le.nterup)
1007
( idbia1 , idbra1 , &
1008
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1009
nnod , lndfac , lndfbr , ncelbr , &
1010
nvar , nscal , nphas , &
1013
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , &
1014
icoefu , irijip , iuetbo , ivsvdr , ihbord , itbord , &
712
! Allocate temporary arrays for boundary conditions
713
allocate(icodcl(nfabor,nvar))
714
allocate(rcodcl(nfabor,nvar,3))
716
allocate(hbord(nfabor))
718
if (isvtb.gt.0 .or. iirayo.gt.0) then
719
allocate(tbord(nfabor))
721
if (itytur.eq.4 .and. idries.eq.1) then
722
allocate(visvdr(ncelet))
1019
( ifinia , ifinra , &
1020
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1021
nnod , lndfac , lndfbr , ncelbr , &
1022
nvar , nscal , nphas , &
1023
nideve , nrdeve , nituse , nrtuse , &
1024
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1025
ipnfac , nodfac , ipnfbr , nodfbr , &
1026
ia(iicodc) , ia(iizfpp) , &
1027
idevel , ituser , ia , &
1028
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1029
729
dt , rtp , rtpa , propce , propfa , propfb , &
1030
730
coefa , coefb , &
1031
ra(ircodc) , ra(icoefu) , &
1032
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , &
1033
ra(iw4 ) , ra(iw5 ) , ra(iw6 ) , &
1034
rdevel , rtuser , ra )
1037
if (imatis.eq.0) then
1039
! ON NE FAIT PAS DE MATISSE
1041
734
! - Interface Code_Saturne
1042
735
! ======================
1044
if (iihmpr.eq.1) then
1046
! N.B. Zones de face de bord : on utilise provisoirement les zones des
1047
! physiques particulieres, meme sans physique particuliere
1048
! -> sera modifie lors de la restructuration des zones de bord
1053
nozppm, ncharm, ncharb, nclpch, &
1054
iindef, ientre, iparoi, iparug, isymet, isolib, &
1055
iqimp, icalke, ientat, ientcp, inmoxy, iprofm, &
1056
ia(iitypf), ia(iizfpp), ia(iicodc), &
1057
dtref, ttcabs, surfbo, cdgfbo, &
1058
qimp, qimpat, qimpcp, dh, xintur, &
1059
timpat, timpcp, distch, ra(ircodc) )
1061
if (ippmod(iphpar).eq.0) then
1063
! ON NE FAIT PAS DE LA PHYSIQUE PARTICULIERE NI DE MATISSE
1068
ifnia1 = iilzfb + nbzfmx
1070
ifnra1 = iqcalc + nozfmx
1071
CALL IASIZE('TRIDIM',IFNIA1)
1072
CALL RASIZE('TRIDIM',IFNRA1)
1076
( ifnia1 , ifnra1 , &
1077
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1078
nnod , lndfac , lndfbr , ncelbr , &
1079
nvar , nscal , nphas , nbzfmx , nozfmx , &
1080
nideve , nrdeve , nituse , nrtuse , &
1081
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1082
ipnfac , nodfac , ipnfbr , nodfbr , &
1083
iqimp , icalke , qimp , dh , xintur, &
1084
ia(iicodc) , ia(iitrif) , ia(iitypf) , ia(iizfpp) , &
1085
ia(iilzfb) , idevel , ituser , ia , &
1086
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1087
dt , rtp , rtpa , propce , propfa , propfb , &
1088
coefa , coefb , ra(ircodc) , &
1089
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
1090
ra(icoefu) , ra(iqcalc) , &
1091
rdevel , rtuser , ra )
1097
! - Sous-programme utilisateur
1098
! ==========================
737
if (iihmpr.eq.1) then
739
! N.B. Zones de face de bord : on utilise provisoirement les zones des
740
! physiques particulieres, meme sans physique particuliere
741
! -> sera modifie lors de la restructuration des zones de bord
746
nozppm, ncharm, ncharb, nclpch, &
747
iindef, ientre, iparoi, iparug, isymet, isolib, &
748
iqimp, icalke, ientat, ientcp, inmoxy, iprofm, &
749
itypfb, izfppp, icodcl, &
750
dtref, ttcabs, surfbo, cdgfbo, &
751
qimp, qimpat, qimpcp, dh, xintur, &
752
timpat, timpcp, distch, rcodcl)
1100
754
if (ippmod(iphpar).eq.0) then
1103
ifnia1 = ils + maxelt
1104
CALL IASIZE('TRIDIM',IFNIA1)
1108
( ifnia1 , ifinra , &
1109
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1110
nnod , lndfac , lndfbr , ncelbr , &
1111
nvar , nscal , nphas , &
1112
nideve , nrdeve , nituse , nrtuse , &
1113
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
1114
ipnfac , nodfac , ipnfbr , nodfbr , &
1115
ia(iicodc) , ia(iitrif) , ia(iitypf) , &
1116
idevel , ituser , ia , &
1117
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1118
dt , rtp , rtpa , propce , propfa , propfb , &
1119
coefa , coefb , ra(ircodc) , &
1120
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
1122
rdevel , rtuser , ra )
1126
! ON FAIT DE LA PHYSIQUE PARTICULIERE (MAIS PAS DE MATISSE)
1130
( ifinia , ifinra , &
1131
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1132
nnod , lndfac , lndfbr , ncelbr , &
1133
nvar , nscal , nphas , &
1134
nideve , nrdeve , nituse , nrtuse , &
1135
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1136
ipnfac , nodfac , ipnfbr , nodfbr , &
1137
ia(iicodc) , ia(iitrif) , ia(iitypf) , ia(iizfpp) , &
1138
idevel , ituser , ia , &
1139
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1140
dt , rtp , rtpa , propce , propfa , propfb , &
1141
coefa , coefb , ra(ircodc) , &
1142
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
1144
rdevel , rtuser , ra )
1148
! - Interface Code_Saturne
1149
! ======================
1151
if(iihmpr.eq.1) then
1156
iindef, ientre, iparoi, iparug, isymet, isolib, &
1157
ia(iitypf), ia(iizfpp) )
756
! ON NE FAIT PAS DE LA PHYSIQUE PARTICULIERE
760
allocate(ilzfbr(nbzfmx))
761
allocate(qcalc(nozfmx))
765
( nvar , nscal , nbzfmx , nozfmx , &
766
iqimp , icalke , qimp , dh , xintur, &
767
icodcl , itrifb , itypfb , izfppp , &
769
dt , rtp , rtpa , propce , propfa , propfb , &
770
coefa , coefb , rcodcl , &
781
! - Sous-programme utilisateur
782
! ==========================
784
if (ippmod(iphpar).eq.0) then
789
icodcl , itrifb , itypfb , &
790
dt , rtp , rtpa , propce , propfa , propfb , &
791
coefa , coefb , rcodcl )
795
! ON FAIT DE LA PHYSIQUE PARTICULIERE
800
icodcl , itrifb , itypfb , izfppp , &
801
dt , rtp , rtpa , propce , propfa , propfb , &
802
coefa , coefb , rcodcl )
806
! - Interface Code_Saturne
807
! ======================
814
iindef, ientre, iparoi, iparug, isymet, isolib, &
1170
( ifinia , ifinra , &
1171
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1172
nnod , lndfac , lndfbr , ncelbr , &
1173
nvar , nscal , nphas , &
1174
nideve , nrdeve , nituse , nrtuse , &
1175
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1176
ipnfac , nodfac , ipnfbr , nodfbr , &
1177
ia(iicodc) , ia(iitrif) , ia(iitypf) , &
1178
idevel , ia(iirepv) , ituser , ia , &
1179
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
827
icodcl , itrifb , itypfb , &
1180
828
dt , rtp , rtpa , propce , propfa , propfb , &
1181
coefa , coefb , ra(ircodc) , &
1182
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
1184
rdevel , rtuser , ra )
829
coefa , coefb , rcodcl )
1188
833
! --- Couplage code/code entre deux instances (ou plus) de Code_Saturne
1189
834
! On s'occupe ici du couplage via les faces de bord, et de la
1190
! transformation de l'information reçue en condition limite.
835
! transformation de l'information re�ue en condition limite.
1192
837
if (nbrcpl.gt.0) then
1196
( ifinia , ifinra , &
1197
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1198
nnod , lndfac , lndfbr , ncelbr , &
1199
nvar , nscal , nphas , &
1200
nideve , nrdeve , nituse , nrtuse , &
1201
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1202
ipnfac , nodfac , ipnfbr , nodfbr , &
1203
ia(iicodc) , ia(iitrif) , ia(iitypf) , &
1204
idevel , ituser , ia , &
1205
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
842
icodcl , itrifb , itypfb , &
1206
843
dt , rtp , rtpa , propce , propfa , propfb , &
1207
coefa , coefb , ra(ircodc) , &
1208
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), &
1210
rdevel , rtuser , ra )
844
coefa , coefb , rcodcl )
1456
( ifinia , ifinra , &
1457
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1458
nnod , lndfac , lndfbr , ncelbr , &
1459
nvar , nscal , nphas , isvtb , &
1460
nideve , nrdeve , nituse , nrtuse , ncp , ncv , ientha , &
1461
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1462
ipnfac , nodfac , ipnfbr , nodfbr , &
1463
idevel , ituser , ia , &
1464
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1018
( nvar , nscal , isvtb , &
1019
ncp , ncv , ientha , &
1465
1020
dt , rtp , rtpa , propce , propfa , propfb , &
1466
1021
coefa , coefb , &
1467
1022
cpcst , propce(1,ippcp) , cvcst , propce(1,ippcv), &
1468
ra(ihbord) , ra(itbord) , &
1469
rdevel , rtuser , ra )
1472
1026
if (nfpt1t.gt.0) then
1475
( ifinia , ifinra , &
1476
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1477
nnod , lndfac , lndfbr , ncelbr , &
1478
nvar , nscal , nphas , ncp , nfpt1d , &
1479
nideve , nrdeve , nituse , nrtuse , &
1480
ifacel , ifabor , ifmfbr , ifmcel , iprfml, &
1481
ipnfac , nodfac , ipnfbr , nodfbr , &
1482
ientha , ia(iifpt1), ia(iiclt1), &
1483
idevel , ituser , ia , &
1484
xyzcen , surfac , surfbo , cdgfac , cdgfbo , &
1486
ra(itppt1), ra(itept1), ra(ihept1), &
1487
ra(ifept1), ra(ixlmt1), ra(ircpt1), ra(idtpt1), &
1029
( nvar , nscal , ncp , nfpt1d , &
1030
ientha , ifpt1d , iclt1d , &
1031
tppt1d , tept1d , hept1d , &
1032
fept1d , xlmbt1 , rcpt1d , dtpt1d , &
1488
1033
dt , rtpa , propce , propfa , propfb , &
1489
1034
coefa , coefb , &
1490
cpcst , propce(1,ippcp) , ra(ihbord) , ra(itbord) , &
1491
rdevel , rtuser , ra )
1035
cpcst , propce(1,ippcp) , hbord , tbord )
1598
1114
! OU CALCUL DE Y+ POUR LE LAGRANGIEN
1603
! Pour passer en argument
1606
! On calcule y+ si on en a besoin
1608
if( (itytur(iphas).eq.4.and.idries(iphas).eq.1) &
1609
.or. (iilagr.ge.1 .and. iroule.eq.2) ) then
1611
! On calcule si on a demande ce mode de calcul
1612
! et s'il y a des parois (si pas de paroi, pas de y+)
1613
if(abs(icdpar).eq.1.and.infpar.gt.0) then
1615
iismph = iisymp+nfabor*(iphas-1)
1617
! On doit conserver la memoire de memcli a cause de RA(IUETBO)
1622
( ifinia , ifinra , &
1623
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1624
nnod , lndfac , lndfbr , ncelbr , &
1625
nvar , nscal , nphas , &
1626
nideve , nrdeve , nituse , nrtuse , &
1627
idam , ixam , ismbr , irovsd , &
1629
iqfx , iqfy , iqfz , icoefq , iirho , iirhob , &
1631
icoax , icobx , icoay , icoby , icoaz , icobz , &
1632
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
1638
( ifinib , ifinrb , &
1639
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1640
nnod , lndfac , lndfbr , ncelbr , &
1641
nvar , nscal , nphas , iphass , &
1642
nideve , nrdeve , nituse , nrtuse , &
1643
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1644
ipnfac , nodfac , ipnfbr , nodfbr , &
1645
ia(iitypf) , ia(iismph), &
1646
idevel , ituser , ia , &
1647
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1648
ra(idipar), propce , ra(iuetbo), ra(iyppar), &
1649
ra(idam ), ra(ixam ), ra(ismbr ), ra(irovsd), &
1650
ra(irtdp ), ra(idrtdp), &
1651
ra(iqfx ), ra(iqfy ), ra(iqfz ), ra(icoefq), &
1652
ra(iirho ), ra(iirhob), &
1653
ra(iflua ), ra(iflub ), &
1654
ra(icoax ), ra(icobx ), ra(icoay ), ra(icoby ), &
1655
ra(icoaz ), ra(icobz ), &
1656
ra(iw1), ra(iw2), ra(iw3), ra(iw4), ra(iw5), ra(iw6), ra(iw7), &
1658
rdevel , rtuser , ra )
1664
if (itytur(iphas).eq.4 .and. idries(iphas).eq.1) then
1666
! Pas d'amortissement si pas de paroi
1667
if(infpar.gt.0) then
1668
if(iifapa(iphas).gt.0) then
1669
iiifap = iifapa(iphas)
1675
( ndim , ncelet , ncel , nfac , nfabor , nphas , &
1676
nideve , nrdeve , nituse , nrtuse , iphass , &
1677
ia(iitypf) , ifabor, ia(iiifap), &
1678
idevel , ituser , ia , &
1679
xyzcen , cdgfbo , ra(iuetbo) , ra(ivsvdr) , ra(iyppar) , &
1680
propce , rdevel , rtuser , ra )
1117
! On calcule y+ si on en a besoin
1119
if( (itytur.eq.4.and.idries.eq.1) &
1120
.or. (iilagr.ge.1 .and. iroule.eq.2) ) then
1122
! On calcule si on a demande ce mode de calcul
1123
! et s'il y a des parois (si pas de paroi, pas de y+)
1124
if(abs(icdpar).eq.1.and.infpar.gt.0) then
1126
! On doit conserver la memoire de memcli a cause de 'uetbor'
1133
dispar , propce , yplpar )
1139
if (itytur.eq.4 .and. idries.eq.1) then
1141
! Pas d'amortissement si pas de paroi
1142
if(infpar.gt.0) then
1145
( ndim , ncelet , ncel , nfac , nfabor , &
1146
itypfb , ifabor , ifapat, &
1147
xyzcen , cdgfbo , visvdr , yplpar , &
1687
1153
if(ineedy.eq.1.and.iwarny.ge.1) then
1688
1154
call dmtmps(tdist2)
1766
1210
! Le module compressible n'est pas compatible avec la boucle U/P
1767
1211
if ( ippmod(icompf).ge.0 ) then
1769
if(iwarni(iu(1)).ge.1) then
1213
if(iwarni(iu).ge.1) then
1770
1214
write(nfecra,1080)
1775
( idbia1 , idbra1 , &
1776
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1777
nnod , lndfac , lndfbr , ncelbr , &
1778
nvar , nscal , nphas , &
1779
nideve , nrdeve , nituse , nrtuse , &
1780
idtr , iviscf , iviscb , idam , ixam , &
1781
idrtp , ismbr , irovsd , &
1782
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , &
1783
iw7 , iw8 , iw9 , iw10 , iw11 , iw12 , &
1794
( ifinia , ifinra , &
1795
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1796
nnod , lndfac , lndfbr , ncelbr , &
1797
nvar , nscal , nphas , &
1798
ncepdc(iphas) , ncetsm(iphas) , &
1799
nideve , nrdeve , nituse , nrtuse , iscal , &
1800
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1801
ipnfac , nodfac , ipnfbr , nodfbr , &
1802
ia(iicepd(iphas)) , ia(iicesm(iphas)) , &
1803
ia(iitpsm(iphas)) , &
1804
idevel , ituser , ia , &
1805
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1806
dt , rtp , rtpa , propce , propfa , propfb , &
1808
ra(ickupd(iphas)) , ra(ismace(iphas)) , &
1809
ra(iviscf) , ra(iviscb) , &
1810
ra(idam ) , ra(ixam ) , &
1811
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , &
1812
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , &
1813
ra(iw4 ) , ra(iw5 ) , ra(iw6 ) , &
1814
ra(iw7 ) , ra(iw8 ) , ra(iw9 ) , &
1815
ra(iw10 ) , ra(iw11 ) , ra(iw12 ) , &
1816
ra(iwflms) , ra(iwflmb) , &
1818
rdevel , rtuser , ra )
1226
dt , rtp , rtpa , propce , propfa , propfb , &
1825
1233
! 13. RESOLUTION QUANTITE DE MOUVEMENT ET MASSE (INCOMPRESSIBLE)
1826
1234
!===============================================================================
1828
if(iwarni(iu(1)).ge.1) then
1236
if(iwarni(iu).ge.1) then
1829
1237
write(nfecra,1040)
1834
( idbia1 , idbra1 , &
1835
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1836
nnod , lndfac , lndfbr , ncelbr , &
1837
nvar , nscal , nphas , &
1838
nideve , nrdeve , nituse , nrtuse , &
1839
iviscf , iviscb , ivisfi , ivisbi , &
1841
idrtp , igrdp , ismbr , irovsd , &
1842
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
1843
iw8 , iw9 , iw10 , idfrcx , ifrchy , idfrhy , &
1844
icoefu , iesflm , iesflb , &
1847
1240
! SI LE COMPRESSIBLE SANS CHOC EST ACTIF, ON RESOUT AVEC CFQDMV
1848
1241
if ( ippmod(icompf).ge.0 ) then
1853
iflmas = ipprof(ifluma(iuiph))
1854
iflmab = ipprob(ifluma(iuiph))
1859
( ifinia , ifinra , &
1860
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1861
nnod , lndfac , lndfbr , ncelbr , &
1862
nvar , nscal , nphas , &
1863
ncepdc(iphas) , ncetsm(iphas) , &
1864
nideve , nrdeve , nituse , nrtuse , iph , &
1865
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1866
ipnfac , nodfac , ipnfbr , nodfbr , &
1867
ia(iicepd(iphas)) , ia(iicesm(iphas)) , &
1868
ia(iitpsm(iphas)) , &
1869
idevel , ituser , ia , &
1870
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1871
dt , rtp , rtpa , propce , propfa , propfb , &
1872
propfa(1,iflmas), propfb(1,iflmab), &
1874
ra(ickupd(iphas)) , ra(ismace(iphas)) , &
1875
frcxt , ra(idfrcx) , ra(itpuco) , ra(igrdp) , &
1876
ra(iviscf) , ra(iviscb) , ra(ivisfi) , ra(ivisbi) , &
1877
ra(idam ) , ra(ixam ) , &
1878
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , &
1879
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , &
1880
ra(iw4 ) , ra(iw5 ) , ra(iw6 ) , &
1881
ra(iw7 ) , ra(iw8 ) , ra(iw9 ) , &
1883
rdevel , rtuser , ra )
1243
iflmas = ipprof(ifluma(iu))
1244
iflmab = ipprob(ifluma(iu))
1891
( ifinia , ifinra , &
1892
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
1893
nnod , lndfac , lndfbr , ncelbr , &
1894
nvar , nscal , nphas , iterns , icvrge , &
1895
nideve , nrdeve , nituse , nrtuse , &
1896
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
1897
ipnfac , nodfac , ipnfbr , nodfbr , &
1899
idevel , ituser , ia , &
1900
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
1901
1252
dt , rtp , rtpa , propce , propfa , propfb , &
1902
tslagr , coefa , coefb , frcxt , &
1903
ra(itrava) , ra(iximpa) , ra(iuvwk ) , &
1904
ra(iviscf) , ra(iviscb) , ra(ivisfi) , ra(ivisbi) , &
1905
ra(idam ) , ra(ixam ) , &
1906
ra(idrtp ) , ra(igrdp ) , ra(ismbr ) , ra(irovsd) , &
1907
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , &
1908
ra(iw4 ) , ra(iw5 ) , ra(iw6 ) , &
1909
ra(iw7 ) , ra(iw8 ) , ra(iw9 ) , ra(iw10 ) , &
1910
ra(idfrcx) , ra(ifrchy) , ra(idfrhy) , &
1911
ra(icoefu) , ra(iesflm) , ra(iesflb), &
1912
rdevel , rtuser , ra )
1253
propfa(1,iflmas), propfb(1,iflmab), &
1260
if (ivelco.eq.0) then
1264
( nvar , nscal , iterns , icvrge , &
1266
dt , tpucou , rtp , rtpa , propce , propfa , propfb , &
1267
tslagr , coefa , coefb , frcxt , &
1268
trava , ximpa , uvwk )
1272
! Coupled solving of the velocity components
1276
( nvar , nscal , iterns , icvrge , &
1278
dt , tpucou , rtp , rtpa , propce , propfa , propfb , &
1279
tslagr , coefa , coefb , frcxt , &
1280
trava , ximpav , uvwk )
1914
1286
! Mise a jour de la pression si on utilise un couplage vitesse/pression
1915
1287
! par point fixe
1916
1288
! En parallele, l'echange est fait au debut de navsto.
1917
1289
if(nterup.gt.1) then
1921
rtpa(iel,ipriph) = rtp(iel,ipriph)
1291
rtpa(iel,ipr) = rtp(iel,ipr)
2044
1397
!===============================================================================
2047
if(iwarni(iu(1)).ge.1) then
2049
if( itytur(iphas).eq.2 .or. itytur(iphas).eq.3 &
2050
.or. iturb(iphas).eq.50 .or. iturb(iphas).eq.60 ) then
1400
if(iwarni(iu).ge.1) then
1401
if( itytur.eq.2 .or. itytur.eq.3 &
1402
.or. itytur.eq.5 .or. iturb.eq.60 ) then
2054
1405
if(iok.eq.1) then
2055
1406
write(nfecra,1050)
2061
! Si on est en v2f, on reserve un tableau de taille NCELET pour
2062
! eviter de recalculer la production dans RESV2F (trois appels
2067
if (iturb(iphas).eq.50) then
2068
idbra1 = iprv2f + ncelet
2069
! Pas la peine de tester les depassements de tableaux puisqu'on
2070
! passe juste apres dans MEMKEP
2073
if( (itytur(iphas).eq.2) .or. (iturb(iphas).eq.50) ) then
2079
( idbia1 , idbra1 , &
2080
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2081
nnod , lndfac , lndfbr , ncelbr , &
2082
nvar , nscal , nphas , &
2083
nideve , nrdeve , nituse , nrtuse , &
2084
idtr , iviscf , iviscb , idam , ixam , &
2085
idrtp , ismbr , irovsd , itinsk , itinse , idivu , &
2086
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2090
if(cdtvar(ikiph).ne.1.d0) then
2092
ra(idtr-1+iel) = dt(iel)*cdtvar(ikiph)
2096
ra(idtr-1+iel) = dt(iel)
2102
( ifinia , ifinra , &
2103
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2104
nnod , lndfac , lndfbr , ncelbr , &
2105
nvar , nscal , nphas , &
2106
ncepdc(iphas) , ncetsm(iphas) , &
2107
nideve , nrdeve , nituse , nrtuse , iphas , &
2108
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
2109
ipnfac , nodfac , ipnfbr , nodfbr , &
2110
ia(iicepd(iphas)) , ia(iicesm(iphas)) , ia(iitpsm(iphas)) , &
2111
idevel , ituser , ia , &
2112
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2113
ra(idtr) , rtp , rtpa , propce , propfa , propfb , &
2115
coefa , coefb , ra(ickupd(iphas)) , ra(ismace(iphas)) , &
2116
ra(iviscf) , ra(iviscb) , ra(iprv2f), &
2117
ra(idam ) , ra(ixam ) , &
2118
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , ra(itinsk) , ra(itinse),&
2119
ra(idivu ) , ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ),&
2120
ra(iw5 ) , ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ),&
2121
rdevel , rtuser , ra )
2123
if( iturb(iphas).eq.50 ) then
2125
iphiph = iphi(iphas)
2129
( idbia1 , idbra1 , &
2130
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2131
nnod , lndfac , lndfbr , ncelbr , &
2132
nvar , nscal , nphas , &
2133
nideve , nrdeve , nituse , nrtuse , &
2134
idtr , iviscf , iviscb , idam , ixam , &
2135
idrtp , ismbr , irovsd , &
2136
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2137
iw8 , iw9 , iw10 , &
2140
if(cdtvar(iphiph).ne.1.d0) then
2142
ra(idtr-1+iel) = dt(iel)*cdtvar(iphiph)
2146
ra(idtr-1+iel) = dt(iel)
2152
( ifinia , ifinra , &
2153
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2154
nnod , lndfac , lndfbr , ncelbr , &
2155
nvar , nscal , nphas , &
2156
ncepdc(iphas) , ncetsm(iphas) , &
2157
nideve , nrdeve , nituse , nrtuse , iphas , &
2158
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
2159
ipnfac , nodfac , ipnfbr , nodfbr , &
2160
ia(iicepd(iphas)) , ia(iicesm(iphas)) , ia(iitpsm(iphas)) , &
2161
idevel , ituser , ia , &
2162
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2163
ra(idtr) , rtp , rtpa , propce , propfa , propfb , &
2164
coefa , coefb , ra(ickupd(iphas)) , ra(ismace(iphas)) , &
2165
ra(iviscf) , ra(iviscb) , ra(iprv2f), &
2166
ra(idam ) , ra(ixam ) , &
2167
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , &
2168
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ), &
2169
ra(iw5 ) , ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ),&
2170
ra(iw10 ) , rdevel , rtuser , ra )
2174
! RELAXATION DE K ET EPSILON SI IKECOU=0 EN INSTATIONNAIRE
2175
if (ikecou(iphas).eq.0 .and. idtvar.ge.0) then
2178
relaxk = relaxv(ikiph)
2179
relaxe = relaxv(ieiph)
2181
rtp(iel,ikiph) = relaxk*rtp(iel,ikiph) + (1.d0-relaxk)*rtpa(iel,ikiph)
2182
rtp(iel,ieiph) = relaxe*rtp(iel,ieiph) + (1.d0-relaxe)*rtpa(iel,ieiph)
2186
else if(itytur(iphas).eq.3) then
2188
ir11ip = ir11(iphas)
2192
( idebia , idebra , &
2193
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2194
nnod , lndfac , lndfbr , ncelbr , &
2195
nvar , nscal , nphas , &
2196
nideve , nrdeve , nituse , nrtuse , iturb(iphas) , &
2197
idtr , iviscf , iviscb , icoefx , &
2198
idam , ixam , idrtp , &
2199
ismbr , irovsd , igrdvt , iprodu , igrarx , igrary , igrarz , &
2200
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2204
if(cdtvar(ir11ip).ne.1.d0) then
2206
ra(idtr-1+iel) = dt(iel)*cdtvar(ir11ip)
2210
ra(idtr-1+iel) = dt(iel)
2216
( ifinia , ifinra , &
2217
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2218
nnod , lndfac , lndfbr , ncelbr , &
2219
nvar , nscal , nphas , &
2220
ncepdc(iphas) , ncetsm(iphas) , &
2221
nideve , nrdeve , nituse , nrtuse , iphas , &
2222
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
2223
ipnfac , nodfac , ipnfbr , nodfbr , &
2224
ia(iicepd(iphas)) , ia(iicesm(iphas)) , ia(iitpsm(iphas)) , &
2225
idevel , ituser , ia , &
2226
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2227
ra(idtr) , rtp , rtpa , propce , propfa , propfb , &
2229
coefa , coefb , ra(ickupd(iphas)) , ra(ismace(iphas)) , &
2230
ra(iviscf) , ra(iviscb) , ra(icoefx), &
2231
ra(idam ) , ra(ixam ) , &
2232
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , ra(igrdvt) , &
2233
ra(iprodu) , ra(igrarx) , ra(igrary) , ra(igrarz) , &
2234
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ) , &
2235
ra(iw5 ) , ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ),&
2236
rdevel , rtuser , ra )
2238
else if( iturb(iphas).eq.60 ) then
2244
( idebia , idebra , &
2245
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2246
nnod , lndfac , lndfbr , ncelbr , &
2247
nvar , nscal , nphas , &
2248
nideve , nrdeve , nituse , nrtuse , &
2249
idtr , iviscf , iviscb , idam , ixam , &
2250
idrtp , ismbr , irovsd , itinsk , itinse , idivu , &
2251
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2255
if(cdtvar(ikiph).ne.1.d0) then
2257
ra(idtr-1+iel) = dt(iel)*cdtvar(ikiph)
2261
ra(idtr-1+iel) = dt(iel)
2267
( ifinia , ifinra , &
2268
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2269
nnod , lndfac , lndfbr , ncelbr , &
2270
nvar , nscal , nphas , &
2271
ncepdc(iphas) , ncetsm(iphas) , &
2272
nideve , nrdeve , nituse , nrtuse , iphas , &
2273
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
2274
ipnfac , nodfac , ipnfbr , nodfbr , &
2275
ia(iicepd(iphas)) , ia(iicesm(iphas)) , ia(iitpsm(iphas)) , &
2276
idevel , ituser , ia , &
2277
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2278
ra(idtr) , rtp , rtpa , propce , propfa , propfb , &
2280
coefa , coefb , ra(ickupd(iphas)) , ra(ismace(iphas)) , &
2281
ra(is2kw(iphas)), ra(idvukw(iphas)), &
2282
ra(iviscf) , ra(iviscb) , &
2283
ra(idam ) , ra(ixam ) , &
2284
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , ra(itinsk) , ra(itinse),&
2285
ra(idivu ) , ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ),&
2286
ra(iw5 ) , ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ),&
2287
rdevel , rtuser , ra )
2289
! RELAXATION DE K ET OMEGA SI IKECOU=0
2290
if (ikecou(iphas).eq.0 .and. idtvar.ge.0) then
2292
iomiph = iomg(iphas)
2293
relaxk = relaxv(ikiph )
2294
relaxw = relaxv(iomiph)
2296
rtp(iel,ikiph) = relaxk*rtp(iel,ikiph) +(1.d0-relaxk)*rtpa(iel,ikiph)
2297
rtp(iel,iomiph) = relaxw*rtp(iel,iomiph)+(1.d0-relaxw)*rtpa(iel,iomiph)
1410
! Si on est en v2f (phi-fbar ou BL-v2/k), on reserve un tableau
1411
! de taille NCELET pour eviter de recalculer la production dans RESV2F
1412
! (trois appels a GRDCEL)
1413
if (itytur.eq.5) then
1414
allocate(prdv2f(ncelet))
1417
if( (itytur.eq.2) .or. (itytur.eq.5) ) then
1423
icepdc , icetsm , itypsm , &
1424
dt , rtp , rtpa , propce , propfa , propfb , &
1426
coefa , coefb , ckupdc , smacel , &
1429
if( itytur.eq.5 ) then
1435
icepdc , icetsm , itypsm , &
1436
dt , rtp , rtpa , propce , propfa , propfb , &
1437
coefa , coefb , ckupdc , smacel , &
1445
! RELAXATION DE K ET EPSILON SI IKECOU=0 EN INSTATIONNAIRE
1446
if (ikecou.eq.0 .and. idtvar.ge.0) then
1448
relaxe = relaxv(iep)
1450
rtp(iel,ik) = relaxk*rtp(iel,ik) + (1.d0-relaxk)*rtpa(iel,ik)
1451
rtp(iel,iep) = relaxe*rtp(iel,iep) + (1.d0-relaxe)*rtpa(iel,iep)
1455
else if(itytur.eq.3) then
1461
icepdc , icetsm , itypsm , &
1462
dt , rtp , rtpa , propce , propfa , propfb , &
1464
coefa , coefb , ckupdc , smacel )
1466
else if( iturb.eq.60 ) then
1472
icepdc , icetsm , itypsm , &
1473
dt , rtp , rtpa , propce , propfa , propfb , &
1475
coefa , coefb , ckupdc , smacel )
1477
! RELAXATION DE K ET OMEGA SI IKECOU=0
1478
if (ikecou.eq.0 .and. idtvar.ge.0) then
1479
relaxk = relaxv(ik )
1480
relaxw = relaxv(iomg)
1482
rtp(iel,ik) = relaxk*rtp(iel,ik) +(1.d0-relaxk)*rtpa(iel,ik)
1483
rtp(iel,iomg) = relaxw*rtp(iel,iomg)+(1.d0-relaxw)*rtpa(iel,iomg)
1487
else if( iturb.eq.70 ) then
1493
icepdc , icetsm , itypsm , &
1494
dt , rtp , rtpa , propce , propfa , propfb , &
1496
coefa , coefb , ckupdc , smacel , &
1499
! RELAXATION DE NUSA
1500
if (idtvar.ge.0) then
1501
relaxn = relaxv(inusa)
1503
rtp(iel,inusa) = relaxn*rtp(iel,inusa)+(1.d0-relaxn)*rtpa(iel,inusa)
2305
1509
endif ! Fin si calcul sur champ de vitesse fige SUITE
2315
1519
if (nscal.ge.1 .and. iirayo.gt.0) then
2317
if(iwarni(iu(1)).ge.1 .and. mod(ntcabs,nfreqr).eq.0) then
1521
if(iwarni(iu).ge.1 .and. mod(ntcabs,nfreqr).eq.0) then
2318
1522
write(nfecra,1070)
2323
( idebia , idebra , &
2324
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2325
nnod , lndfac , lndfbr , ncelbr , &
2326
nvar , nscal , nphas , &
2327
nideve , nrdeve , nituse , nrtuse , &
2328
idtr , iviscf , iviscb , idam , ixam , &
2329
idrtp , ismbr , irovsd , &
2331
icorua , icorub , iflxma , iflxmb , itek , &
2333
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2334
iw8 , iw9 , iw10 , &
2340
( ifinia , ifinra , &
2341
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2342
nnod , lndfac , lndfbr , ncelbr , &
2343
nvar , nscal , nphas , &
2344
nideve , nrdeve , nituse , nrtuse , &
2345
ifacel , ifabor , ifmfbr , ifmcel , iprfml , ia(iitypf) , &
2346
ipnfac , nodfac , ipnfbr , nodfbr , &
2348
idevel , ituser , ia , &
2349
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2350
1530
dt , rtp , rtpa , propce , propfa , propfb , &
2352
ra(icorua) , ra(icorub) , &
2353
ra(iflxma) , ra(iflxmb) , &
2354
ra(idtr) , ra(iviscf) , ra(iviscb) , &
2355
ra(idam ) , ra(ixam ) , &
2356
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , ra(itek) ,&
2357
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ) , ra(iw5 ),&
2358
ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ) , &
2366
1536
if (nscal.ge.1) then
2368
if(iwarni(iu(1)).ge.1) then
1538
if(iwarni(iu).ge.1) then
2369
1539
write(nfecra,1060)
2374
( idebia , idebra , &
2375
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2376
nnod , lndfac , lndfbr , ncelbr , &
2377
nvar , nscal , nphas , &
2378
nideve , nrdeve , nituse , nrtuse , &
2379
idtr , iviscf , iviscb , idam , ixam , &
2380
idrtp , ismbr , irovsd , &
2381
iw1 , iw2 , iw3 , iw4 , iw5 , iw6 , iw7 , &
2387
( ifinia , ifinra , &
2388
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
2389
nnod , lndfac , lndfbr , ncelbr , &
2390
nvar , nscal , nphas , &
2391
nideve , nrdeve , nituse , nrtuse , &
2392
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
2393
ipnfac , nodfac , ipnfbr , nodfbr , &
2394
idevel , ituser , ia , &
2395
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
2396
1545
dt , rtp , rtpa , propce , propfa , propfb , &
2397
tslagr , coefa , coefb , &
2398
ra(idtr) , ra(iviscf) , ra(iviscb) , &
2399
ra(idam ) , ra(ixam ) , &
2400
ra(idrtp ) , ra(ismbr ) , ra(irovsd) , &
2401
ra(iw1 ) , ra(iw2 ) , ra(iw3 ) , ra(iw4 ) , ra(iw5 ),&
2402
ra(iw6 ) , ra(iw7 ) , ra(iw8 ) , ra(iw9 ) , &
1546
tslagr , coefa , coefb )