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 laglec &
32
ndim , ncelet , ncel , nfac , nfabor , &
26
( ndim , ncelet , ncel , nfac , nfabor , &
33
27
nbpmax , nvp , nvp1 , nvep , nivep , &
34
28
ntersl , nvlsta , nvisbr , &
37
ettp , tepa , statis , stativ , parbor , tslagr , ra )
31
ettp , tepa , statis , stativ , parbor , tslagr )
39
33
!===============================================================================
77
69
! nvisbr ! e ! <-- ! nombre de statistiques aux frontieres !
78
70
! itepa ! te ! <-- ! info particulaires (entiers) !
79
71
! (nbpmax,nivep ! ! ! (cellule de la particule,...) !
80
! ia(*) ! ia ! --- ! main integer work array !
81
72
! rtpa ! tr ! <-- ! variables de calcul au centre des !
82
73
! (ncelet,*) ! ! ! cellules instant precedent !
83
74
! propce(ncelet, *)! ra ! <-- ! physical properties at cell centers !
94
85
!(nfabor,nvisbr ! ! ! aux faces de bord !
95
86
! tslagr ! tr ! <-- ! terme de couplage retour du !
96
87
!(ncelet,ntersl ! ! ! lagrangien sur la phase porteuse !
97
! ra(*) ! ra ! --- ! main real work array !
98
88
!__________________!____!_____!________________________________________________!
100
90
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
101
91
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
102
92
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
103
93
! --- tableau de travail
94
!===============================================================================
96
!===============================================================================
98
!===============================================================================
105
116
!===============================================================================
109
!===============================================================================
111
!===============================================================================
129
!===============================================================================
133
integer idbia0 , idbra0
134
122
integer ndim , ncelet , ncel , nfac , nfabor
135
123
integer nbpmax , nvp , nvp1 , nvep , nivep
136
124
integer ntersl , nvlsta , nvisbr
137
integer itepa(nbpmax,nivep) , ia(*)
125
integer itepa(nbpmax,nivep)
139
127
double precision rtpa(ncelet,*) , propce(ncelet,*)
140
128
double precision ettp(nbpmax,nvp) , tepa(nbpmax,nvep)
142
130
double precision stativ(ncelet,nvlsta-1)
143
131
double precision tslagr(ncelet,ntersl)
144
132
double precision parbor(nfabor,nvisbr)
145
double precision ra(*)
147
134
! Local variables
149
136
character rubriq*64 , car4*4, car8*8, kar8*8
150
137
character nomnvl(nvplmx)*60 , nomtsl(nvplmx)*60
151
138
character nomite(nvplmx)*64 , nomrte(nvplmx)*64
152
integer idebia , idebra
153
140
integer ncelok , nfaiok , nfabok , nsomok
154
141
integer ierror , irtyp , itysup , nbval
155
142
integer ilecec , nberro , ivers
156
143
integer mvls , ivar , ip , icha
157
integer ifac , iel , iok , iphas
144
integer ifac , iel , iok
158
145
integer jphyla , jtpvar , jdpvar , jmpvar
159
146
integer jsttio , jdstnt , mstist , mvlsts
160
147
integer mstbor , musbor , mstits , jturb, jtytur
245
228
! (ILECEC=1:lecture)
247
call opnsui(ficaml,len(ficaml),ilecec,impaml,ierror)
230
ficsui = 'lagrangian'
231
call opnsui(ficsui,len(ficsui),ilecec,impaml,ierror)
249
233
if(ierror.ne.0) then
250
write(nfecra,9010) ficaml, ficaml
234
write(nfecra,9010) ficsui, ficsui
565
565
ippmod(ielarc).ge.0 .or. &
566
566
ippmod(ieljou).ge.0 ) then
567
567
ettp(ip,jtf) = propce(iel,ipproc(itemp)) -tkelvi
568
else if ( iscsth(iscalt(iphas)).eq.1 ) then
569
ettp(ip,jtf) = rtpa(iel,isca(iscalt(iphas))) -tkelvi
570
else if ( iscsth(iscalt(iphas)).eq.-1 ) then
571
ettp(ip,jtf) = rtpa(iel,isca(iscalt(iphas)))
572
else if ( iscsth(iscalt(iphas)).eq.2 ) then
568
else if ( iscsth(iscalt).eq.1 ) then
569
ettp(ip,jtf) = rtpa(iel,isca(iscalt)) -tkelvi
570
else if ( iscsth(iscalt).eq.-1 ) then
571
ettp(ip,jtf) = rtpa(iel,isca(iscalt))
572
else if ( iscsth(iscalt).eq.2 ) then
574
call usthht(mode, rtpa(iel,isca(iscalt(iphas))), &
574
call usthht(mode, rtpa(iel,isca(iscalt)), &
638
638
! (ILECEC=1:lecture)
640
call opnsui(ficmls,len(ficmls),ilecec,impmls,ierror)
640
ficsui = 'lagrangian_stats'
641
call opnsui(ficsui,len(ficsui),ilecec,impmls,ierror)
642
643
if(ierror.ne.0) then
643
write(nfecra,9010) ficmls, ficmls
644
write(nfecra,9010) ficsui, ficsui
1021
1022
IF (JTYTUR.EQ.3) CAR8 = 'Rij-eps'
1022
1023
IF (JTURB.EQ.50) CAR8 = 'v2f'
1023
1024
IF (JTURB.EQ.60) CAR8 = 'k-omega'
1024
IF (ITYTUR(IPHAS).EQ.2) KAR8 = 'k-eps'
1025
IF (ITYTUR(IPHAS).EQ.3) KAR8 = 'Rij-eps'
1026
IF (ITURB(IPHAS).EQ.50) KAR8 = 'v2f'
1027
IF (ITURB(IPHAS).EQ.60) KAR8 = 'k-omega'
1025
IF (ITYTUR.EQ.2) KAR8 = 'k-eps'
1026
IF (ITYTUR.EQ.3) KAR8 = 'Rij-eps'
1027
IF (ITURB.EQ.50) KAR8 = 'v2f'
1028
IF (ITURB.EQ.60) KAR8 = 'k-omega'
1028
1029
write (nfecra,9330) ficmls, &
1029
1030
jsttio, mstits, car8, &
1030
1031
isttio, nstits, kar8
1072
1073
NOMTSL(ITSVY) = 'terme_source_vitesseY'
1073
1074
NOMTSL(ITSVZ) = 'terme_source_vitesseZ'
1074
1075
NOMTSL(ITSLI) = 'terme_source_vitesse_implicite'
1075
if (itytur(iphas).eq.2 .or. iturb(iphas).eq.50 &
1076
.or. iturb(iphas).eq.60) then
1076
if (itytur.eq.2 .or. iturb.eq.50 &
1077
.or. iturb.eq.60) then
1077
1078
NOMTSL(ITSKE) = 'terme_source_turbulence_keps'
1078
else if (itytur(iphas).eq.3) then
1079
else if (itytur.eq.3) then
1079
1080
NOMTSL(ITSR11) = 'terme_source_turbulence_R11'
1080
1081
NOMTSL(ITSR12) = 'terme_source_turbulence_R12'
1081
1082
NOMTSL(ITSR13) = 'terme_source_turbulence_R13'