6
! This file is part of the Code_Saturne Kernel, element of the
7
! Code_Saturne CFD tool.
9
! Copyright (C) 1998-2009 EDF S.A., France
11
! contact: saturne-support@edf.fr
13
! The Code_Saturne Kernel is free software; you can redistribute it
14
! and/or modify it under the terms of the GNU General Public License
15
! as published by the Free Software Foundation; either version 2 of
16
! the License, or (at your option) any later version.
18
! The Code_Saturne Kernel is distributed in the hope that it will be
19
! useful, but WITHOUT ANY WARRANTY; without even the implied warranty
20
! of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
! GNU General Public License for more details.
23
! You should have received a copy of the GNU General Public License
24
! along with the Code_Saturne Kernel; if not, write to the
25
! Free Software Foundation, Inc.,
26
! 51 Franklin St, Fifth Floor,
27
! Boston, MA 02110-1301 USA
5
! This file is part of Code_Saturne, a general-purpose CFD tool.
7
! Copyright (C) 1998-2011 EDF S.A.
9
! This program is free software; you can redistribute it and/or modify it under
10
! the terms of the GNU General Public License as published by the Free Software
11
! Foundation; either version 2 of the License, or (at your option) any later
14
! This program is distributed in the hope that it will be useful, but WITHOUT
15
! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16
! FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
19
! You should have received a copy of the GNU General Public License along with
20
! this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
21
! Street, Fifth Floor, Boston, MA 02110-1301, USA.
29
23
!-------------------------------------------------------------------------------
31
25
subroutine usctiv &
35
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
36
nnod , lndfac , lndfbr , ncelbr , &
37
nvar , nscal , nphas , &
38
nideve , nrdeve , nituse , nrtuse , &
39
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , lstelt , &
40
ipnfac , nodfac , ipnfbr , nodfbr , &
41
idevel , ituser , ia , &
42
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
43
dt , rtp , propce , propfa , propfb , coefa , coefb , &
44
rdevel , rtuser , ra )
29
dt , rtp , propce , propfa , propfb , coefa , coefb )
46
31
!===============================================================================
69
54
! PROPCE (prop au centre), PROPFA (aux faces internes),
70
55
! PROPFB (prop aux faces de bord)
72
! PROPCE(IEL,IPPROC(IROM (IPHAS))) designe ROM (IEL ,IPHAS)
73
! PROPCE(IEL,IPPROC(IVISCL(IPHAS))) designe VISCL (IEL ,IPHAS)
74
! PROPCE(IEL,IPPROC(ICP (IPHAS))) designe CP (IEL ,IPHAS)
57
! PROPCE(IEL,IPPROC(IROM )) designe ROM (IEL)
58
! PROPCE(IEL,IPPROC(IVISCL)) designe VISCL (IEL)
59
! PROPCE(IEL,IPPROC(ICP )) designe CP (IEL)
75
60
! PROPCE(IEL,IPPROC(IVISLS(ISCAL))) designe VISLS (IEL ,ISCAL)
77
62
! PROPFA(IFAC,IPPROF(IFLUMA(IVAR ))) designe FLUMAS(IFAC,IVAR)
79
! PROPFB(IFAC,IPPROB(IROM (IPHAS))) designe ROMB (IFAC,IPHAS)
64
! PROPFB(IFAC,IPPROB(IROM )) designe ROMB (IFAC)
80
65
! PROPFB(IFAC,IPPROB(IFLUMA(IVAR ))) designe FLUMAB(IFAC,IVAR)
100
85
!__________________.____._____.________________________________________________.
101
86
! name !type!mode ! role !
102
87
!__________________!____!_____!________________________________________________!
103
! idbia0 ! i ! <-- ! number of first free position in ia !
104
! idbra0 ! i ! <-- ! number of first free position in ra !
105
! ndim ! i ! <-- ! spatial dimension !
106
! ncelet ! i ! <-- ! number of extended (real + ghost) cells !
107
! ncel ! i ! <-- ! number of cells !
108
! nfac ! i ! <-- ! number of interior faces !
109
! nfabor ! i ! <-- ! number of boundary faces !
110
! nfml ! i ! <-- ! number of families (group classes) !
111
! nprfml ! i ! <-- ! number of properties per family (group class) !
112
! nnod ! i ! <-- ! number of vertices !
113
! lndfac ! i ! <-- ! size of nodfac indexed array !
114
! lndfbr ! i ! <-- ! size of nodfbr indexed array !
115
! ncelbr ! i ! <-- ! number of cells with faces on boundary !
116
88
! nvar ! i ! <-- ! total number of variables !
117
89
! nscal ! i ! <-- ! total number of scalars !
118
! nphas ! i ! <-- ! number of phases !
119
! nideve, nrdeve ! i ! <-- ! sizes of idevel and rdevel arrays !
120
! nituse, nrtuse ! i ! <-- ! sizes of ituser and rtuser arrays !
121
! ifacel(2, nfac) ! ia ! <-- ! interior faces -> cells connectivity !
122
! ifabor(nfabor) ! ia ! <-- ! boundary faces -> cells connectivity !
123
! ifmfbr(nfabor) ! ia ! <-- ! boundary face family numbers !
124
! ifmcel(ncelet) ! ia ! <-- ! cell family numbers !
125
! iprfml ! ia ! <-- ! property numbers per family !
126
! (nfml, nprfml) ! ! ! !
127
! maxelt ! i ! <-- ! max number of cells and faces (int/boundary) !
128
! lstelt(maxelt) ! ia ! --- ! work array !
129
! ipnfac(nfac+1) ! ia ! <-- ! interior faces -> vertices index (optional) !
130
! nodfac(lndfac) ! ia ! <-- ! interior faces -> vertices list (optional) !
131
! ipnfbr(nfabor+1) ! ia ! <-- ! boundary faces -> vertices index (optional) !
132
! nodfbr(lndfbr) ! ia ! <-- ! boundary faces -> vertices list (optional) !
133
! idevel(nideve) ! ia ! <-> ! integer work array for temporary development !
134
! ituser(nituse) ! ia ! <-> ! user-reserved integer work array !
135
! ia(*) ! ia ! --- ! main integer work array !
136
! xyzcen ! ra ! <-- ! cell centers !
137
! (ndim, ncelet) ! ! ! !
138
! surfac ! ra ! <-- ! interior faces surface vectors !
139
! (ndim, nfac) ! ! ! !
140
! surfbo ! ra ! <-- ! boundary faces surface vectors !
141
! (ndim, nfabor) ! ! ! !
142
! cdgfac ! ra ! <-- ! interior faces centers of gravity !
143
! (ndim, nfac) ! ! ! !
144
! cdgfbo ! ra ! <-- ! boundary faces centers of gravity !
145
! (ndim, nfabor) ! ! ! !
146
! xyznod ! ra ! <-- ! vertex coordinates (optional) !
147
! (ndim, nnod) ! ! ! !
148
! volume(ncelet) ! ra ! <-- ! cell volumes !
149
90
! dt(ncelet) ! tr ! <-- ! valeur du pas de temps !
150
91
! rtp ! tr ! <-- ! variables de calcul au centre des !
151
92
! (ncelet,*) ! ! ! cellules !
154
95
! propfb(nfabor, *)! ra ! <-- ! physical properties at boundary face centers !
155
96
! coefa coefb ! tr ! <-- ! conditions aux limites aux !
156
97
! (nfabor,*) ! ! ! faces de bord !
157
! rdevel(nrdeve) ! ra ! <-> ! real work array for temporary development !
158
! rtuser(nrtuse) ! ra ! <-> ! user-reserved real work array !
159
! ra(*) ! ra ! --- ! main real work array !
160
98
!__________________!____!_____!________________________________________________!
162
100
! Type: i (integer), r (real), s (string), a (array), l (logical),
164
102
! mode: <-- input, --> output, <-> modifies data, --- work array
165
103
!===============================================================================
105
!===============================================================================
107
!===============================================================================
123
!===============================================================================
169
!===============================================================================
171
!===============================================================================
186
!===============================================================================
188
integer idbia0 , idbra0
189
integer ndim , ncelet , ncel , nfac , nfabor
190
integer nfml , nprfml
191
integer nnod , lndfac , lndfbr , ncelbr
192
integer nvar , nscal , nphas
193
integer nideve , nrdeve , nituse , nrtuse
195
integer ifacel(2,nfac) , ifabor(nfabor)
196
integer ifmfbr(nfabor) , ifmcel(ncelet)
197
integer iprfml(nfml,nprfml), maxelt, lstelt(maxelt)
198
integer ipnfac(nfac+1), nodfac(lndfac)
199
integer ipnfbr(nfabor+1), nodfbr(lndfbr)
200
integer idevel(nideve), ituser(nituse), ia(*)
202
double precision xyzcen(ndim,ncelet)
203
double precision surfac(ndim,nfac), surfbo(ndim,nfabor)
204
double precision cdgfac(ndim,nfac), cdgfbo(ndim,nfabor)
205
double precision xyznod(ndim,nnod), volume(ncelet)
206
129
double precision dt(ncelet), rtp(ncelet,*), propce(ncelet,*)
207
130
double precision propfa(nfac,*), propfb(nfabor,*)
208
131
double precision coefa(nfabor,*), coefb(nfabor,*)
209
double precision rdevel(nrdeve), rtuser(nrtuse), ra(*)
211
133
! Local variables
213
integer idebia, idebra
214
integer iel, iutile, iphas
215
136
integer ilelt, nlelt
217
138
double precision d2s3
140
integer, allocatable, dimension(:) :: lstelt
219
142
!===============================================================================
221
144
! TEST_TO_REMOVE_FOR_USE_OF_SUBROUTINE_START