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 cfmsfl &
32
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
33
nnod , lndfac , lndfbr , ncelbr , &
34
nvar , nscal , nphas , ncepdp , ncesmp , &
35
nideve , nrdeve , nituse , nrtuse , iscal , &
36
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
37
ipnfac , nodfac , ipnfbr , nodfbr , &
26
( nvar , nscal , ncepdp , ncesmp , &
38
28
icepdc , icetsm , itypsm , &
39
idevel , ituser , ia , &
40
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
41
29
dt , rtp , rtpa , propce , propfa , propfb , &
42
30
coefa , coefb , ckupdc , smacel , &
43
31
flumas , flumab , &
44
w1 , w2 , w3 , w4 , w5 , w6 , &
45
w7 , w8 , w9 , w10 , w11 , w12 , &
46
trflms , trflmb , coefu , xam , &
32
trflms , trflmb , coefu )
50
34
!===============================================================================
59
43
!__________________.____._____.________________________________________________.
60
44
! name !type!mode ! role !
61
45
!__________________!____!_____!________________________________________________!
62
! idbia0 ! i ! <-- ! number of first free position in ia !
63
! idbra0 ! i ! <-- ! number of first free position in ra !
64
! ndim ! i ! <-- ! spatial dimension !
65
! ncelet ! i ! <-- ! number of extended (real + ghost) cells !
66
! ncel ! i ! <-- ! number of cells !
67
! nfac ! i ! <-- ! number of interior faces !
68
! nfabor ! i ! <-- ! number of boundary faces !
69
! nfml ! i ! <-- ! number of families (group classes) !
70
! nprfml ! i ! <-- ! number of properties per family (group class) !
71
! nnod ! i ! <-- ! number of vertices !
72
! lndfac ! i ! <-- ! size of nodfac indexed array !
73
! lndfbr ! i ! <-- ! size of nodfbr indexed array !
74
! ncelbr ! i ! <-- ! number of cells with faces on boundary !
75
46
! nvar ! i ! <-- ! total number of variables !
76
47
! nscal ! i ! <-- ! total number of scalars !
77
! nphas ! i ! <-- ! number of phases !
78
! nideve, nrdeve ! i ! <-- ! sizes of idevel and rdevel arrays !
79
! nituse, nrtuse ! i ! <-- ! sizes of ituser and rtuser arrays !
80
48
! iscal ! i ! <-- ! scalar number !
81
49
! itspdv ! e ! <-- ! calcul termes sources prod et dissip !
82
50
! ! ! ! (0 : non , 1 : oui) !
83
! ifacel(2, nfac) ! ia ! <-- ! interior faces -> cells connectivity !
84
! ifabor(nfabor) ! ia ! <-- ! boundary faces -> cells connectivity !
85
! ifmfbr(nfabor) ! ia ! <-- ! boundary face family numbers !
86
! ifmcel(ncelet) ! ia ! <-- ! cell family numbers !
87
! iprfml ! ia ! <-- ! property numbers per family !
88
! (nfml, nprfml) ! ! ! !
89
! ipnfac(nfac+1) ! ia ! <-- ! interior faces -> vertices index (optional) !
90
! nodfac(lndfac) ! ia ! <-- ! interior faces -> vertices list (optional) !
91
! ipnfbr(nfabor+1) ! ia ! <-- ! boundary faces -> vertices index (optional) !
92
! nodfbr(lndfbr) ! ia ! <-- ! boundary faces -> vertices list (optional) !
93
! idevel(nideve) ! ia ! <-> ! integer work array for temporary development !
94
! ituser(nituse) ! ia ! <-> ! user-reserved integer work array !
95
! ia(*) ! ia ! --- ! main integer work array !
96
! xyzcen ! ra ! <-- ! cell centers !
97
! (ndim, ncelet) ! ! ! !
98
! surfac ! ra ! <-- ! interior faces surface vectors !
99
! (ndim, nfac) ! ! ! !
100
! surfbo ! ra ! <-- ! boundary faces surface vectors !
101
! (ndim, nfabor) ! ! ! !
102
! cdgfac ! ra ! <-- ! interior faces centers of gravity !
103
! (ndim, nfac) ! ! ! !
104
! cdgfbo ! ra ! <-- ! boundary faces centers of gravity !
105
! (ndim, nfabor) ! ! ! !
106
! xyznod ! ra ! <-- ! vertex coordinates (optional) !
107
! (ndim, nnod) ! ! ! !
108
! volume(ncelet) ! ra ! <-- ! cell volumes !
109
51
! dt(ncelet) ! ra ! <-- ! time step (per cell) !
110
52
! rtp, rtpa ! ra ! <-- ! calculated variables at cell centers !
111
53
! (ncelet, *) ! ! ! (at current and previous time steps) !
118
60
! (nfabor, *) ! ! ! !
119
61
! flumas(nfac) ! tr ! --> ! flux de masse aux faces internes !
120
62
! flumab(nfabor ! tr ! --> ! flux de masse aux faces de bord !
121
! w1..12(ncelet ! tr ! --- ! tableau de travail !
122
63
! trflms(nfac) ! tr ! --- ! tableau de travail !
123
64
! trflmb(nfabor ! tr ! --- ! tableau de travail !
124
65
! coefu(nfabo,3 ! tr ! --- ! tableau de travail cl de la qdm !
125
! xam(nfac,*) ! tr ! --- ! tableau de travail pour matrice !
126
! rdevel(nrdeve) ! ra ! <-> ! real work array for temporary development !
127
! rtuser(nrtuse) ! ra ! <-> ! user-reserved real work array !
128
! ra(*) ! ra ! --- ! main real work array !
129
66
!__________________!____!_____!________________________________________________!
131
68
! TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
132
69
! L (LOGIQUE) .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
133
70
! MODE : <-- donnee, --> resultat, <-> Donnee modifiee
134
71
! --- tableau de travail
135
!-------------------------------------------------------------------------------
72
!===============================================================================
74
!===============================================================================
76
!===============================================================================
136
91
!===============================================================================
140
!===============================================================================
142
!===============================================================================
157
!===============================================================================
161
integer idbia0 , idbra0
162
integer ndim , ncelet , ncel , nfac , nfabor
163
integer nfml , nprfml
164
integer nnod , lndfac , lndfbr , ncelbr
165
integer nvar , nscal , nphas
166
98
integer ncepdp , ncesmp
167
integer nideve , nrdeve , nituse , nrtuse
170
integer ifacel(2,nfac) , ifabor(nfabor)
171
integer ifmfbr(nfabor) , ifmcel(ncelet)
172
integer iprfml(nfml,nprfml)
173
integer ipnfac(nfac+1), nodfac(lndfac)
174
integer ipnfbr(nfabor+1), nodfbr(lndfbr)
175
101
integer icepdc(ncepdp)
176
102
integer icetsm(ncesmp), itypsm(ncesmp,nvar)
177
integer idevel(nideve), ituser(nituse)
180
double precision xyzcen(ndim,ncelet)
181
double precision surfac(ndim,nfac), surfbo(ndim,nfabor)
182
double precision cdgfac(ndim,nfac), cdgfbo(ndim,nfabor)
183
double precision xyznod(ndim,nnod), volume(ncelet)
184
104
double precision dt(ncelet), rtp(ncelet,*), rtpa(ncelet,*)
185
105
double precision propce(ncelet,*)
186
106
double precision propfa(nfac,*), propfb(nfabor,*)
187
107
double precision coefa(nfabor,*), coefb(nfabor,*)
188
108
double precision ckupdc(ncepdp,6), smacel(ncesmp,nvar)
189
109
double precision flumas(nfac), flumab(nfabor)
190
double precision w1(ncelet) , w2(ncelet) , w3(ncelet)
191
double precision w4(ncelet) , w5(ncelet) , w6(ncelet)
192
double precision w7(ncelet) , w8(ncelet) , w9(ncelet)
193
double precision w10(ncelet), w11(ncelet), w12(ncelet)
194
110
double precision trflms(nfac), trflmb(nfabor)
195
double precision coefu(nfabor,3), xam(nfac,2)
196
double precision rdevel(nrdeve), rtuser(nrtuse)
197
double precision ra(*)
111
double precision coefu(nfabor,3)
199
113
! Local variables
201
integer idebia, idebra, ifinia
203
116
integer ifac , iel
204
117
integer init , inc , iccocg, ii, jj
210
123
integer iirom , iiromb
211
124
integer ivar0 , imvis1, iccfth, imodif, isou
212
integer imaspe, iflmb0, iismph
125
integer imaspe, iflmb0
213
126
integer icliup, iclivp, icliwp, iclvar
214
integer idimte, itenso
215
integer iuiph , iviph , iwiph
216
127
integer itsqdm, iiun , iextts
219
129
double precision epsrgp, climgp, extrap, blencp
220
130
double precision flui , fluj , pfac , thetv
132
double precision, allocatable, dimension(:) :: w1, w2, w3
133
double precision, allocatable, dimension(:) :: w4, w5, w6
134
double precision, allocatable, dimension(:) :: w7, w8, w9
135
double precision, allocatable, dimension(:) :: w10, w11, w12
222
137
!===============================================================================
224
139
!===============================================================================
225
140
! 1. INITIALISATION
226
141
!===============================================================================
143
! Allocate work arrays
144
allocate(w1(ncelet), w2(ncelet), w3(ncelet))
145
allocate(w4(ncelet), w5(ncelet), w6(ncelet))
146
allocate(w7(ncelet), w8(ncelet), w9(ncelet))
147
allocate(w10(ncelet), w11(ncelet), w12(ncelet))
231
! --- Numero de phase associee au scalaire traite
232
iphas = iphsca(iscal)
234
150
! --- Numero des variables de calcul
235
151
! Masse volumique
236
152
ivar = isca(iscal)
242
154
! Masse volumique dans PROPCE
243
iirom = ipproc(irom (iphas))
244
iiromb = ipprob(irom (iphas))
155
iirom = ipproc(irom )
156
iiromb = ipprob(irom )
246
158
! ---> Initialisation du flux de masse
306
218
! --- Terme source utilisateur
308
maxelt = max(ncelet, nfac, nfabor)
310
ifinia = ils + maxelt
311
CALL IASIZE('CFMSFL',IFINIA)
316
( ifinia , idebra , &
317
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
318
nnod , lndfac , lndfbr , ncelbr , &
319
nvar , nscal , nphas , ncepdp , ncesmp , &
320
nideve , nrdeve , nituse , nrtuse , &
322
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
323
ipnfac , nodfac , ipnfbr , nodfbr , &
223
( nvar , nscal , ncepdp , ncesmp , &
324
225
icepdc , icetsm , itypsm , &
325
idevel , ituser , ia , &
326
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
327
226
dt , rtpa , propce , propfa , propfb , &
328
227
coefa , coefb , ckupdc , smacel , &
332
w1 , w2 , w3 , w4 , w5 , w6 , &
333
rdevel , rtuser , ra )
338
( ifinia , idebra , &
339
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
340
nnod , lndfac , lndfbr , ncelbr , &
341
nvar , nscal , nphas , ncepdp , ncesmp , &
342
nideve , nrdeve , nituse , nrtuse , &
344
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
345
ipnfac , nodfac , ipnfbr , nodfbr , &
233
( nvar , nscal , ncepdp , ncesmp , &
346
235
icepdc , icetsm , itypsm , &
347
idevel , ituser , ia , &
348
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
349
236
dt , rtpa , propce , propfa , propfb , &
350
237
coefa , coefb , ckupdc , smacel , &
354
w1 , w2 , w3 , w4 , w5 , w6 , &
355
rdevel , rtuser , ra )
360
( ifinia , idebra , &
361
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
362
nnod , lndfac , lndfbr , ncelbr , &
363
nvar , nscal , nphas , ncepdp , ncesmp , &
364
nideve , nrdeve , nituse , nrtuse , &
366
ifacel , ifabor , ifmfbr , ifmcel , iprfml , maxelt , ia(ils), &
367
ipnfac , nodfac , ipnfbr , nodfbr , &
243
( nvar , nscal , ncepdp , ncesmp , &
368
245
icepdc , icetsm , itypsm , &
369
idevel , ituser , ia , &
370
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
371
246
dt , rtpa , propce , propfa , propfb , &
372
247
coefa , coefb , ckupdc , smacel , &
376
w1 , w2 , w3 , w4 , w5 , w6 , &
377
rdevel , rtuser , ra )
380
251
! --- Terme de convection de quantite de mouvement
381
if(iconv(iuiph).ge.1) then
252
if(iconv(iu).ge.1) then
383
icliup = iclrtp(iuiph ,icoef)
384
iclivp = iclrtp(iviph ,icoef)
385
icliwp = iclrtp(iwiph ,icoef)
254
icliup = iclrtp(iu ,icoef)
255
iclivp = iclrtp(iv ,icoef)
256
icliwp = iclrtp(iw ,icoef)
391
iismph = iisymp+nfabor*(iphas-1)
392
nswrgp = nswrgr(iuiph)
393
imligp = imligr(iuiph)
394
iwarnp = iwarni(iuiph)
395
epsrgp = epsrgr(iuiph)
396
climgp = climgr(iuiph)
397
extrap = extrag(iuiph)
401
271
! Calcul du flux de masse
404
( idebia , idebra , &
405
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
406
nnod , lndfac , lndfbr , ncelbr , &
407
nvar , nscal , nphas , &
408
iuiph , iviph , iwiph , imaspe , iphas , &
409
nideve , nrdeve , nituse , nrtuse , &
275
iu , iv , iw , imaspe , &
410
276
iflmb0 , init , inc , imrgra , iccocg , nswrgp , imligp , &
411
277
iwarnp , nfecra , &
412
278
epsrgp , climgp , extrap , &
413
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
414
ipnfac , nodfac , ipnfbr , nodfbr , ia(iismph) , &
415
idevel , ituser , ia , &
416
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
417
279
propce(1,iirom) , propfb(1,iiromb), &
418
rtpa (1,iuiph) , rtpa (1,iviph) , rtpa (1,iwiph) , &
280
rtpa (1,iu) , rtpa (1,iv) , rtpa (1,iw) , &
419
281
coefa(1,icliup) , coefa(1,iclivp) , coefa(1,icliwp) , &
420
282
coefb(1,icliup) , coefb(1,iclivp) , coefb(1,icliwp) , &
423
w1 , w2 , w3 , w4 , w5 , w6 , &
424
w7 , w8 , w9 , coefu , &
425
rdevel , rtuser , ra )
427
285
! Calcul du terme convecte suivant les 3 directions
428
286
! sans reconstruction
430
if(isou.eq.1) ivar0 = iuiph
288
if(isou.eq.1) ivar0 = iu
431
289
if(isou.eq.1) iclvar = icliup
432
if(isou.eq.2) ivar0 = iviph
290
if(isou.eq.2) ivar0 = iv
433
291
if(isou.eq.2) iclvar = iclivp
434
if(isou.eq.3) ivar0 = iwiph
292
if(isou.eq.3) ivar0 = iw
435
293
if(isou.eq.3) iclvar = icliwp
437
295
do ifac = 1, nfac
482
( idebia , idebra , &
483
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
484
nnod , lndfac , lndfbr , ncelbr , &
485
nvar , nscal , nphas , ncepdp , ncesmp , &
486
nideve , nrdeve , nituse , nrtuse , iphas , &
487
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
488
ipnfac , nodfac , ipnfbr , nodfbr , icepdc , icetsm , itypsm , &
489
idevel , ituser , ia , &
490
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
491
rtpa , propce , propfa , propfb , &
492
coefa , coefb , ckupdc , smacel , &
493
w10 , w8 , w9 , w9 , &
496
w1 , w2 , w3 , w4 , w5 , w6 , &
497
rdevel , rtuser , ra )
501
( idebia , idebra , &
502
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
503
nnod , lndfac , lndfbr , ncelbr , &
504
nvar , nscal , nphas , ncepdp , ncesmp , &
505
nideve , nrdeve , nituse , nrtuse , iphas , &
506
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
507
ipnfac , nodfac , ipnfbr , nodfbr , icepdc , icetsm , itypsm , &
508
idevel , ituser , ia , &
509
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
510
rtpa , propce , propfa , propfb , &
511
coefa , coefb , ckupdc , smacel , &
512
w11 , w9 , w8 , w9 , &
515
w1 , w2 , w3 , w4 , w5 , w6 , &
516
rdevel , rtuser , ra )
520
( idebia , idebra , &
521
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
522
nnod , lndfac , lndfbr , ncelbr , &
523
nvar , nscal , nphas , ncepdp , ncesmp , &
524
nideve , nrdeve , nituse , nrtuse , iphas , &
525
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
526
ipnfac , nodfac , ipnfbr , nodfbr , icepdc , icetsm , itypsm , &
527
idevel , ituser , ia , &
528
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
529
rtpa , propce , propfa , propfb , &
530
coefa , coefb , ckupdc , smacel , &
531
w12 , w9 , w9 , w8 , &
534
w1 , w2 , w3 , w4 , w5 , w6 , &
535
rdevel , rtuser , ra )
340
( nvar , nscal , ncepdp , ncesmp , &
341
icepdc , icetsm , itypsm , &
342
rtpa , propce , propfa , propfb , &
343
coefa , coefb , ckupdc , smacel , &
349
( nvar , nscal , ncepdp , ncesmp , &
350
icepdc , icetsm , itypsm , &
351
rtpa , propce , propfa , propfb , &
352
coefa , coefb , ckupdc , smacel , &
358
( nvar , nscal , ncepdp , ncesmp , &
359
icepdc , icetsm , itypsm , &
360
rtpa , propce , propfa , propfb , &
361
coefa , coefb , ckupdc , smacel , &
547
375
if(isou.eq.1) then
551
379
( ncelet, ncel , ncesmp , iiun , iextts , thetv , &
552
380
icetsm, itypsm(1,ivar0) , volume , rtpa(1,ivar0) , &
553
smacel(1,ivar0), smacel(1,ipr(iphas)), &
381
smacel(1,ivar0), smacel(1,ipr) , &
556
384
w10(iel) = w10(iel) + w2(iel)
559
387
elseif(isou.eq.2) then
563
391
( ncelet, ncel , ncesmp , iiun , iextts , thetv , &
564
392
icetsm, itypsm(1,ivar0) , volume , rtpa(1,ivar0) , &
565
smacel(1,ivar0), smacel(1,ipr(iphas)), &
393
smacel(1,ivar0), smacel(1,ipr) , &
568
396
w11(iel) = w11(iel) + w2(iel)
571
399
elseif(isou.eq.3) then
575
403
( ncelet, ncel , ncesmp , iiun , iextts , thetv , &
576
404
icetsm, itypsm(1,ivar0) , volume , rtpa(1,ivar0) , &
577
smacel(1,ivar0), smacel(1,ipr(iphas)), &
405
smacel(1,ivar0), smacel(1,ipr) , &
580
408
w12(iel) = w12(iel) + w2(iel)
715
( idebia , idebra , &
716
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
717
nnod , lndfac , lndfbr , ncelbr , &
718
nvar , nscal , nphas , &
719
nideve , nrdeve , nituse , nrtuse , &
720
504
ivar0 , iconvp , idiffp , nswrgp , imligp , ircflp , &
721
505
ischcp , isstpp , inc , imrgra , iccocg , &
723
507
blencp , epsrgp , climgp , extrap , &
724
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
725
ipnfac , nodfac , ipnfbr , nodfbr , &
726
idevel , ituser , ia , &
727
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
728
508
w1 , coefu(1,1) , coefu(1,2) , &
729
509
coefu(1,1) , coefu(1,2) , &
730
510
trflms , trflmb , trflms , trflmb , &
733
w2 , w3 , w4 , w8 , w9 , w10 , &
734
rdevel , rtuser , ra )
737
514
! 2.3 CALCUL DU FLUX DE MASSE AUX FACES
792
( idebia , idebra , &
793
ndim , ncelet , ncel , nfac , nfabor , nfml , nprfml , &
794
nnod , lndfac , lndfbr , ncelbr , &
795
nvar , nscal , nphas , &
796
ivar0 , ivar0 , ivar0 , imaspe , iphas , &
797
nideve , nrdeve , nituse , nrtuse , &
569
ivar0 , ivar0 , ivar0 , imaspe , &
798
570
iflmb0 , init , inc , imrgra , iccocg , nswrgp , imligp , &
799
571
iwarnp , nfecra , &
800
572
epsrgp , climgp , extrap , &
801
ifacel , ifabor , ifmfbr , ifmcel , iprfml , &
802
ipnfac , nodfac , ipnfbr , nodfbr , ia(iismph) , &
803
idevel , ituser , ia , &
804
xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
806
574
w10 , w11 , w12 , &
807
575
coefa(1,icliup) , coefa(1,iclivp) , coefa(1,icliwp) , &
808
576
trflmb , trflmb , trflmb , &
811
w1 , w2 , w3 , w4 , w5 , w6 , &
812
w7 , w8 , w9 , coefu , &
813
rdevel , rtuser , ra )
580
deallocate(w1, w2, w3)
581
deallocate(w4, w5, w6)
582
deallocate(w7, w8, w9)
583
deallocate(w10, w11, w12)