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 cpphyv &
32
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
33
nnod , lndfac , lndfbr , ncelbr , &
34
nvar , nscal , nphas , &
35
nideve , nrdeve , nituse , nrtuse , nphmx , &
36
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
37
ipnfac , nodfac , ipnfbr , nodfbr , ibrom , izfppp , &
38
idevel , ituser , ia , &
39
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
40
28
dt , rtp , rtpa , propce , propfa , propfb , &
46
rdevel , rtuser , ra )
48
31
!===============================================================================
113
96
!__________________.____._____.________________________________________________.
114
97
! name !type!mode ! role !
115
98
!__________________!____!_____!________________________________________________!
116
! idbia0 ! i ! <-- ! number of first free position in ia !
117
! idbra0 ! i ! <-- ! number of first free position in ra !
118
! ndim ! i ! <-- ! spatial dimension !
119
! ncelet ! i ! <-- ! number of extended (real + ghost) cells !
120
! ncel ! i ! <-- ! number of cells !
121
! nfac ! i ! <-- ! number of interior faces !
122
! nfabor ! i ! <-- ! number of boundary faces !
123
! nfml ! i ! <-- ! number of families (group classes) !
124
! nprfml ! i ! <-- ! number of properties per family (group class) !
125
! nnod ! i ! <-- ! number of vertices !
126
! lndfac ! i ! <-- ! size of nodfac indexed array !
127
! lndfbr ! i ! <-- ! size of nodfbr indexed array !
128
! ncelbr ! i ! <-- ! number of cells with faces on boundary !
129
99
! nvar ! i ! <-- ! total number of variables !
130
100
! nscal ! i ! <-- ! total number of scalars !
131
! nphas ! i ! <-- ! number of phases !
132
! nideve, nrdeve ! i ! <-- ! sizes of idevel and rdevel arrays !
133
! nituse, nrtuse ! i ! <-- ! sizes of ituser and rtuser arrays !
134
! nphmx ! e ! <-- ! nphsmx !
135
! ifacel(2, nfac) ! ia ! <-- ! interior faces -> cells connectivity !
136
! ifabor(nfabor) ! ia ! <-- ! boundary faces -> cells connectivity !
137
! ifmfbr(nfabor) ! ia ! <-- ! boundary face family numbers !
138
! ifmcel(ncelet) ! ia ! <-- ! cell family numbers !
139
! iprfml ! ia ! <-- ! property numbers per family !
140
! (nfml, nprfml) ! ! ! !
141
! ipnfac(nfac+1) ! ia ! <-- ! interior faces -> vertices index (optional) !
142
! nodfac(lndfac) ! ia ! <-- ! interior faces -> vertices list (optional) !
143
! ipnfbr(nfabor+1) ! ia ! <-- ! boundary faces -> vertices index (optional) !
144
! nodfbr(lndfbr) ! ia ! <-- ! boundary faces -> vertices list (optional) !
145
101
! ibrom ! te ! <-- ! indicateur de remplissage de romb !
147
103
! izfppp ! te ! <-- ! numero de zone de la face de bord !
148
104
! (nfabor) ! ! ! pour le module phys. part. !
149
! idevel(nideve) ! ia ! <-> ! integer work array for temporary development !
150
! ituser(nituse) ! ia ! <-> ! user-reserved integer work array !
151
! ia(*) ! ia ! --- ! main integer work array !
152
! xyzcen ! ra ! <-- ! cell centers !
153
! (ndim, ncelet) ! ! ! !
154
! surfac ! ra ! <-- ! interior faces surface vectors !
155
! (ndim, nfac) ! ! ! !
156
! surfbo ! ra ! <-- ! boundary faces surface vectors !
157
! (ndim, nfabor) ! ! ! !
158
! cdgfac ! ra ! <-- ! interior faces centers of gravity !
159
! (ndim, nfac) ! ! ! !
160
! cdgfbo ! ra ! <-- ! boundary faces centers of gravity !
161
! (ndim, nfabor) ! ! ! !
162
! xyznod ! ra ! <-- ! vertex coordinates (optional) !
163
! (ndim, nnod) ! ! ! !
164
! volume(ncelet) ! ra ! <-- ! cell volumes !
165
105
! dt(ncelet) ! ra ! <-- ! time step (per cell) !
166
106
! rtp, rtpa ! ra ! <-- ! calculated variables at cell centers !
167
107
! (ncelet, *) ! ! ! (at current and previous time steps) !
170
110
! propfb(nfabor, *)! ra ! <-- ! physical properties at boundary face centers !
171
111
! coefa, coefb ! ra ! <-- ! boundary conditions !
172
112
! (nfabor, *) ! ! ! !
173
! w1...8(ncelet ! tr ! --- ! tableau de travail !
174
! rdevel(nrdeve) ! ra ! <-> ! real work array for temporary development !
175
! rtuser(nrtuse) ! ra ! <-> ! user-reserved real work array !
176
! ra(*) ! ra ! --- ! main real work array !
177
113
!__________________!____!_____!________________________________________________!
179
115
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
182
118
! --- tableau de travail
183
119
!===============================================================================
121
!===============================================================================
123
!===============================================================================
140
!===============================================================================
187
!===============================================================================
189
!===============================================================================
205
!===============================================================================
209
integer idbia0 , idbra0
210
integer ndim , ncelet , ncel , nfac , nfabor
211
integer nfml , nprfml
212
integer nnod , lndfac , lndfbr , ncelbr
213
integer nvar , nscal , nphas
214
integer nideve , nrdeve , nituse , nrtuse , nphmx
216
integer ifacel(2,nfac) , ifabor(nfabor)
217
integer ifmfbr(nfabor) , ifmcel(ncelet)
218
integer iprfml(nfml,nprfml)
219
integer ipnfac(nfac+1), nodfac(lndfac)
220
integer ipnfbr(nfabor+1), nodfbr(lndfbr), ibrom(nphmx)
221
149
integer izfppp(nfabor)
222
integer idevel(nideve), ituser(nituse), ia(*)
224
double precision xyzcen(ndim,ncelet)
225
double precision surfac(ndim,nfac), surfbo(ndim,nfabor)
226
double precision cdgfac(ndim,nfac), cdgfbo(ndim,nfabor)
227
double precision xyznod(ndim,nnod), volume(ncelet)
228
151
double precision dt(ncelet), rtp(ncelet,*), rtpa(ncelet,*)
229
152
double precision propce(ncelet,*)
230
153
double precision propfa(nfac,*), propfb(nfabor,*)
231
154
double precision coefa(nfabor,*), coefb(nfabor,*)
233
double precision f3max(ncelet)
235
double precision w1(ncelet),w2(ncelet),w3(ncelet),w4(ncelet)
236
double precision w5(ncelet),w6(ncelet),w7(ncelet),w8(ncelet)
237
double precision w9(ncelet),w10(ncelet)
238
double precision rdevel(nrdeve), rtuser(nrtuse), ra(*)
240
156
! Local variables
242
integer idebia, idebra
243
integer ntbcpi, icpwi, ntbcpr, icpwr
244
integer ntbmci, imcwi, ntbmcr, imcwr
245
integer ntbwoi, iwori, ntbwor, iworr
246
integer ifinia, ifinra
247
integer iel, icha, icla, iphas, ipcrom, ipcro2
158
integer ntbcpi, ntbcpr
159
integer ntbmci, ntbmcr
160
integer ntbwoi, ntbwor
161
integer iel, icha, icla, ipcrom, ipcro2
248
162
integer izone, ifac
249
163
integer ipbrom, ipcx2c, iromf , ioxy
252
166
double precision x2tot, wmolme, unsro1
253
167
double precision ff4min,ff4max
169
double precision, allocatable, dimension(:) :: f3max
170
double precision, allocatable, dimension(:) :: w1, w2, w3
171
double precision, allocatable, dimension(:) :: w4, w5, w6
172
double precision, allocatable, dimension(:) :: w7, w8, w9
173
double precision, allocatable, dimension(:) :: w10
456
rtp , propce , propce(1,iromf) , &
365
rtp , propce , propce(1,iromf) )
457
366
! ---------------- (masse vol. gaz)
458
ia(icpwi) , ra(icpwr) , &
459
ia(imcwi) , ra(imcwr) , &
460
ia(iwori) , ra(iworr) )
462
368
!===============================================================================
463
369
! 4. CALCUL DES PROPRIETES PHYSIQUES DE LA PHASE DISPERSEE