~ubuntu-branches/ubuntu/oneiric/code-saturne/oneiric

« back to all changes in this revision

Viewing changes to users/lagr/uslast.f90

  • Committer: Bazaar Package Importer
  • Author(s): Sylvestre Ledru
  • Date: 2009-11-02 23:21:17 UTC
  • Revision ID: james.westby@ubuntu.com-20091102232117-9brxj2l5e33ie45a
Tags: upstream-2.0.0.beta2
ImportĀ upstreamĀ versionĀ 2.0.0.beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
!-------------------------------------------------------------------------------
 
2
 
 
3
!VERS
 
4
 
 
5
 
 
6
!     This file is part of the Code_Saturne Kernel, element of the
 
7
!     Code_Saturne CFD tool.
 
8
 
 
9
!     Copyright (C) 1998-2008 EDF S.A., France
 
10
 
 
11
!     contact: saturne-support@edf.fr
 
12
 
 
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.
 
17
 
 
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.
 
22
 
 
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
 
28
 
 
29
!-------------------------------------------------------------------------------
 
30
 
 
31
subroutine uslast &
 
32
!================
 
33
 
 
34
 ( idbia0 , idbra0 ,                                              &
 
35
   ndim   , ncelet , ncel   , nfac   , nfabor , nfml   , nprfml , &
 
36
   nnod   , lndfac , lndfbr , ncelbr ,                            &
 
37
   nvar   , nscal  , nphas  ,                                     &
 
38
   nbpmax , nvp    , nvp1   , nvep   , nivep  ,                   &
 
39
   ntersl , nvlsta , nvisbr ,                                     &
 
40
   nideve , nrdeve , nituse , nrtuse ,                            &
 
41
   ifacel , ifabor , ifmfbr , ifmcel , iprfml ,                   &
 
42
   ipnfac , nodfac , ipnfbr , nodfbr , itepa  ,                   &
 
43
   idevel , ituser , ia     ,                                     &
 
44
   xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
 
45
   dt     , rtpa   , rtp    , propce , propfa , propfb ,          &
 
46
   coefa  , coefb  ,                                              &
 
47
   ettp   , ettpa  , tepa   , taup   , tlag   , tempct ,          &
 
48
   statis , stativ ,                                              &
 
49
   w1     , w2     , w3     ,                                     &
 
50
   rdevel , rtuser , ra     )
 
51
 
 
52
!===============================================================================
 
53
! FONCTION :
 
54
! ----------
 
55
 
 
56
!       SOUS-PROGRAMME DU MODULE LAGRANGIEN :
 
57
!       -----------------------------------
 
58
 
 
59
!    SOUS-PROGRAMME UTILISATEUR (INTERVENTION NON OBLIGATOIRE)
 
60
 
 
61
!    MODIFICATIONS UTILSATEUR SUR LES VARIABLES EN FIN D'ITERATION
 
62
!    LAGRANGIENNES ET CALCUL DES STATISTIQUES UTILISATEUR
 
63
!    SUPPLEMENTAIRES SUR LES PARTICULES
 
64
 
 
65
!   POUR LES STATISTIQUES UTILISATEUR SUPPLEMENTAIRES,
 
66
!   ON RAPPELLE QUE :
 
67
 
 
68
!   ISTTIO = 0 : calcul instationnaire pour le lagrangien
 
69
!          = 1 : calcul stationnaire   pour le lagrangien
 
70
 
 
71
!   ISTALA : calcul statistiques       si  >= 1 sinon pas de stat
 
72
 
 
73
!   ISUIST : suite calcul statistiques si  >= 1 sinon pas de stat
 
74
 
 
75
!   IDSTNT : Numero du pas de temps pour debut statistque
 
76
 
 
77
!   NSTIST : iteration Lagrangienne du debut calcul stationnaire
 
78
 
 
79
!   NPST   : nombre d'iterations de calcul de stat stationnaires
 
80
 
 
81
!   NPSTT  : nombre d'iterations total des stats depuis le debut
 
82
!            du calcul, partie instationnaire comprise
 
83
 
 
84
!   TSTAT  : Temps physique d'enregistrement des stats volumiques
 
85
!            stationnaires
 
86
!            (en instationnaire TSTAT=DTP le pas de temps Lagrangien)
 
87
 
 
88
!-------------------------------------------------------------------------------
 
89
! Arguments
 
90
!__________________.____._____.________________________________________________.
 
91
!    nom           !type!mode !                   role                         !
 
92
!__________________!____!_____!________________________________________________!
 
93
! idbia0           ! e  ! <-- ! numero de la 1ere case libre dans ia           !
 
94
! idbra0           ! e  ! <-- ! numero de la 1ere case libre dans ra           !
 
95
! ndim             ! e  ! <-- ! dimension de l'espace                          !
 
96
! ncelet           ! e  ! <-- ! nombre d'elements halo compris                 !
 
97
! ncel             ! e  ! <-- ! nombre d'elements actifs                       !
 
98
! nfac             ! e  ! <-- ! nombre de faces internes                       !
 
99
! nfabor           ! e  ! <-- ! nombre de faces de bord                        !
 
100
! nfml             ! e  ! <-- ! nombre de familles d entites                   !
 
101
! nprfml           ! e  ! <-- ! nombre de proprietese des familles             !
 
102
! nnod             ! e  ! <-- ! nombre de sommets                              !
 
103
! lndfac           ! e  ! <-- ! longueur du tableau nodfac                     !
 
104
! lndfbr           ! e  ! <-- ! longueur du tableau nodfbr                     !
 
105
! ncelbr           ! e  ! <-- ! nombre d'elements ayant au moins une           !
 
106
!                  !    !     ! face de bord                                   !
 
107
! nvar             ! e  ! <-- ! nombre total de variables                      !
 
108
! nscal            ! e  ! <-- ! nombre total de scalaires                      !
 
109
! nphas            ! e  ! <-- ! nombre de phases                               !
 
110
! nbpmax           ! e  ! <-- ! nombre max de particulies autorise             !
 
111
! nvp              ! e  ! <-- ! nombre de variables particulaires              !
 
112
! nvp1             ! e  ! <-- ! nvp sans position, vfluide, vpart              !
 
113
! nvep             ! e  ! <-- ! nombre info particulaires (reels)              !
 
114
! nivep            ! e  ! <-- ! nombre info particulaires (entiers)            !
 
115
! ntersl           ! e  ! <-- ! nbr termes sources de couplage retour          !
 
116
! nvlsta           ! e  ! <-- ! nombre de var statistiques lagrangien          !
 
117
! nvisbr           ! e  ! <-- ! nombre de statistiques aux frontieres          !
 
118
! nideve nrdeve    ! e  ! <-- ! longueur de idevel rdevel                      !
 
119
! nituse nrtuse    ! e  ! <-- ! longueur de ituser rtuser                      !
 
120
! ifacel           ! te ! <-- ! elements voisins d'une face interne            !
 
121
! (2, nfac)        !    !     !                                                !
 
122
! ifabor           ! te ! <-- ! element  voisin  d'une face de bord            !
 
123
! (nfabor)         !    !     !                                                !
 
124
! ifmfbr           ! te ! <-- ! numero de famille d'une face de bord           !
 
125
! (nfabor)         !    !     !                                                !
 
126
! ifmcel           ! te ! <-- ! numero de famille d'une cellule                !
 
127
! (ncelet)         !    !     !                                                !
 
128
! iprfml           ! te ! <-- ! proprietes d'une famille                       !
 
129
! nfml  ,nprfml    !    !     !                                                !
 
130
! ipnfac           ! te ! <-- ! position du premier noeud de chaque            !
 
131
!   (nfac+1)       !    !     !  face interne dans nodfac (optionnel)          !
 
132
! nodfac           ! te ! <-- ! connectivite faces internes/noeuds             !
 
133
!   (lndfac)       !    !     !  (optionnel)                                   !
 
134
! ipnfbr           ! te ! <-- ! position du premier noeud de chaque            !
 
135
!  (nfabor+1)      !    !     !  face de bord dans nodfbr (optionnel)          !
 
136
! nodfbr           ! te ! <-- ! connectivite faces de bord/noeuds              !
 
137
!   (lndfbr  )     !    !     !  (optionnel)                                   !
 
138
! itepa            ! te ! <-- ! info particulaires (entiers)                   !
 
139
! (nbpmax,nivep    !    !     !   (cellule de la particule,...)                !
 
140
! idevel(nideve    ! te ! <-- ! tab entier complementaire developemt           !
 
141
! ituser(nituse    ! te ! <-- ! tab entier complementaire utilisateur          !
 
142
! ia(*)            ! tr ! --- ! macro tableau entier                           !
 
143
! xyzcen           ! tr ! <-- ! point associes aux volumes de control          !
 
144
! (ndim,ncelet     !    !     !                                                !
 
145
! surfac           ! tr ! <-- ! vecteur surface des faces internes             !
 
146
! (ndim,nfac)      !    !     !                                                !
 
147
! surfbo           ! tr ! <-- ! vecteur surface des faces de bord              !
 
148
! (ndim,nfabor)    !    !     !                                                !
 
149
! cdgfac           ! tr ! <-- ! centre de gravite des faces internes           !
 
150
! (ndim,nfac)      !    !     !                                                !
 
151
! cdgfbo           ! tr ! <-- ! centre de gravite des faces de bord            !
 
152
! (ndim,nfabor)    !    !     !                                                !
 
153
! xyznod           ! tr ! <-- ! coordonnes des noeuds                          !
 
154
! (ndim,nnod)      !    !     !                                                !
 
155
! volume(ncelet    ! tr ! <-- ! volume d'un des ncelet elements                !
 
156
! dt(ncelet)       ! tr ! <-- ! pas de temps                                   !
 
157
! rtp, rtpa        ! tr ! <-- ! variables de calcul au centre des              !
 
158
! (ncelet,*)       !    !     !    cellules (instant courant ou prec)          !
 
159
! propce           ! tr ! <-- ! proprietes physiques au centre des             !
 
160
! (ncelet,*)       !    !     !    cellules                                    !
 
161
! propfa           ! tr ! <-- ! proprietes physiques au centre des             !
 
162
!  (nfac,*)        !    !     !    faces internes                              !
 
163
! propfb           ! tr ! <-- ! proprietes physiques au centre des             !
 
164
!  (nfabor,*)      !    !     !    faces de bord                               !
 
165
! coefa, coefb     ! tr ! <-- ! conditions aux limites aux                     !
 
166
!  (nfabor,*)      !    !     !    faces de bord                               !
 
167
! ettp             ! tr ! <-- ! tableaux des variables liees                   !
 
168
!  (nbpmax,nvp)    !    !     !   aux particules etape courante                !
 
169
! ettpa            ! tr ! <-- ! tableaux des variables liees                   !
 
170
!  (nbpmax,nvp)    !    !     !   aux particules etape precedente              !
 
171
! tepa(nbpmax,     ! tr ! <-- ! caracteristiques des particules                !
 
172
!       nvep)      !    !     !  aux particules (poids, ...)                   !
 
173
! taup(nbpmax)     ! tr ! <-- ! temps caracteristique dynamique                !
 
174
! tlag(nbpmax)     ! tr ! <-- ! temps caracteristique fluide                   !
 
175
! tempct           ! tr ! <-- ! temps caracteristique thermique                !
 
176
!  (nbpmax,2)      !    !     !                                                !
 
177
! statis           ! tr ! <-- ! cumul pour les moyennes des                    !
 
178
!(ncelet,nvlsta    !    !     !   statistiques volumiques                      !
 
179
! stativ           ! tr ! <-- ! cumul pour les variances des                   !
 
180
!(ncelet,          !    !     !    statistiques volumiques                     !
 
181
!   nvlsta-1)      !    !     !                                                !
 
182
! w1..w3(ncelet    ! tr ! --- ! tableaux de travail                            !
 
183
! rdevel(nrdeve    ! tr ! <-- ! tab reel complementaire developemt             !
 
184
! rtuser(nrtuse    ! tr ! <-- ! tab reel complementaire utilisateur            !
 
185
! ra(*)            ! tr ! --- ! macro tableau reel                             !
 
186
!__________________!____!_____!________________________________________________!
 
187
 
 
188
!     TYPE : E (ENTIER), R (REEL), A (ALPHANUMERIQUE), T (TABLEAU)
 
189
!            L (LOGIQUE)   .. ET TYPES COMPOSES (EX : TR TABLEAU REEL)
 
190
!     MODE : <-- donnee, --> resultat, <-> Donnee modifiee
 
191
!            --- tableau de travail
 
192
 
 
193
!===============================================================================
 
194
 
 
195
implicit none
 
196
 
 
197
!===============================================================================
 
198
!     DONNEES EN COMMON
 
199
!===============================================================================
 
200
 
 
201
include "paramx.h"
 
202
include "numvar.h"
 
203
include "cstnum.h"
 
204
include "optcal.h"
 
205
include "pointe.h"
 
206
include "entsor.h"
 
207
include "lagpar.h"
 
208
include "lagran.h"
 
209
include "cstphy.h"
 
210
include "ppppar.h"
 
211
include "ppthch.h"
 
212
include "cpincl.h"
 
213
 
 
214
!===============================================================================
 
215
 
 
216
! Arguments
 
217
 
 
218
integer          idbia0 , idbra0
 
219
integer          ndim   , ncelet , ncel   , nfac   , nfabor
 
220
integer          nfml   , nprfml
 
221
integer          nnod   , lndfac , lndfbr , ncelbr
 
222
integer          nvar   , nscal  , nphas
 
223
integer          nbpmax , nvp    , nvp1   , nvep  , nivep
 
224
integer          ntersl , nvlsta , nvisbr
 
225
integer          nideve , nrdeve , nituse , nrtuse
 
226
integer          ifacel(2,nfac) , ifabor(nfabor)
 
227
integer          ifmfbr(nfabor) , ifmcel(ncelet)
 
228
integer          iprfml(nfml,nprfml)
 
229
integer          ipnfac(nfac+1) , nodfac(lndfac)
 
230
integer          ipnfbr(nfabor+1) , nodfbr(lndfbr)
 
231
integer          itepa(nbpmax,nivep)
 
232
integer          idevel(nideve), ituser(nituse)
 
233
integer          ia(*)
 
234
 
 
235
double precision xyzcen(ndim,ncelet)
 
236
double precision surfac(ndim,nfac) , surfbo(ndim,nfabor)
 
237
double precision cdgfac(ndim,nfac) , cdgfbo(ndim,nfabor)
 
238
double precision xyznod(ndim,nnod) , volume(ncelet)
 
239
double precision dt(ncelet) , rtp(ncelet,*) , rtpa(ncelet,*)
 
240
double precision propce(ncelet,*)
 
241
double precision propfa(nfac,*) , propfb(nfabor,*)
 
242
double precision coefa(nfabor,*) , coefb(nfabor,*)
 
243
double precision ettp(nbpmax,nvp) , ettpa(nbpmax,nvp)
 
244
double precision tepa(nbpmax,nvep)
 
245
double precision taup(nbpmax) , tlag(nbpmax,3) , tempct(nbpmax,2)
 
246
double precision statis(ncelet,nvlsta)
 
247
double precision stativ(ncelet,nvlsta-1)
 
248
double precision w1(ncelet), w2(ncelet), w3(ncelet)
 
249
double precision rdevel(nrdeve) , rtuser(nrtuse)
 
250
double precision ra(*)
 
251
 
 
252
! VARIABLES LOCALES
 
253
 
 
254
integer          idebia , idebra
 
255
integer          ifinia, ifinra
 
256
integer          npt ,  iel , iphas
 
257
 
 
258
integer          ivf , ivff , itabvr , iflu , icla
 
259
 
 
260
! VARIABLES LOCALES UTILISATEUR
 
261
 
 
262
integer          nxlist
 
263
parameter       (nxlist=100)
 
264
 
 
265
integer          iplan
 
266
integer          ii, ind, il
 
267
integer          inoeud, irang0, indic
 
268
integer          ist(6)
 
269
 
 
270
double precision zz(4), zzz(8), xlist(nxlist,8), xyzpt(3)
 
271
 
 
272
character        name(8)*4
 
273
 
 
274
double precision debm(4)
 
275
save             debm
 
276
 
 
277
!===============================================================================
 
278
 
 
279
 
 
280
! TEST_TO_REMOVE_FOR_USE_OF_SUBROUTINE_START
 
281
 
 
282
if(istala.eq.1 .and. iplas.ge.idstnt .and. nvlsts.gt.0) then
 
283
 
 
284
!     Si l'on passe ici, il faut que l'utilisateur complete
 
285
!       l'exemple ci-dessous et l'adapte...
 
286
 
 
287
  if(1.eq.1) then
 
288
    write(nfecra,9000)nvlsts
 
289
    call csexit (1)
 
290
  endif
 
291
 
 
292
 9000 format(                                                           &
 
293
'@                                                            ',/,&
 
294
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,&
 
295
'@                                                            ',/,&
 
296
'@ @@ ATTENTION : ARRET DANS LE MODULE LAGRANGIEN             ',/,&
 
297
'@    =========                                               ',/,&
 
298
'@     LE SOUS-PROGRAMME UTILISATEUR uslast DOIT ETRE COMPLETE',/,&
 
299
'@                                                            ',/,&
 
300
'@  Le calcul ne sera pas execute.                            ',/,&
 
301
'@                                                            ',/,&
 
302
'@  Des variables statistiques supplementaires ont ete        ',/,&
 
303
'@    demandees dans uslag1 (NVLSTS=',   I10,')               ',/,&
 
304
'@  Le sous-programme uslast doit etre complete pour preciser ',/,&
 
305
'@    le  calcul de leur cumul.                               ',/,&
 
306
'@                                                            ',/,&
 
307
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@',/,&
 
308
'@                                                            ',/)
 
309
 
 
310
else
 
311
 
 
312
!     On entre toujours dans ce sous programme en lagrangien,
 
313
!       si on ne souhaite rien y faire, on sort immediatement.
 
314
 
 
315
  return
 
316
 
 
317
endif
 
318
 
 
319
! TEST_TO_REMOVE_FOR_USE_OF_SUBROUTINE_END
 
320
 
 
321
 
 
322
!===============================================================================
 
323
! 0.  GESTION MEMOIRE
 
324
!===============================================================================
 
325
 
 
326
idebia = idbia0
 
327
idebra = idbra0
 
328
 
 
329
!===============================================================================
 
330
! 1. INITIALISATION
 
331
!===============================================================================
 
332
 
 
333
iphas = ilphas
 
334
 
 
335
!===============================================================================
 
336
! 2 - CALCUL DES STATISTIQUES PARTICULAIRES UTILISATEURS
 
337
!===============================================================================
 
338
 
 
339
!   D'une facon generale, dans cette routine on realise les cumuls
 
340
!   de la quantite dont on souhaite faire les statistiques.
 
341
!   La moyenne et la variance sont calculees dans la routine
 
342
!   USLAEN.F. Ce calcul est le plus souvent obtenu par division
 
343
!   des cumuls soit par le temps du cumul stationnaire contenu dans
 
344
!   la variable TSTAT, soit par le nombre de particules en poids
 
345
!   statistiques. Cette division est appliquee pour chaque ecriture
 
346
!   dans le listing et pour les sorties post-processing.
 
347
 
 
348
!   Cet exemple est desactive et doit etre adapte au cas traite
 
349
 
 
350
if (1.eq.0) then
 
351
 
 
352
 if(istala.eq.1 .and. iplas.ge.idstnt .and. nvlsts.gt.0) then
 
353
 
 
354
  do npt = 1,nbpart
 
355
 
 
356
    if( itepa(npt,jisor).gt.0 ) then
 
357
 
 
358
      iel = itepa(npt,jisor)
 
359
 
 
360
! -------------------------------------------------
 
361
! EXEMPLE 1 : Cumul pour la concentration massique
 
362
! -------------------------------------------------
 
363
 
 
364
      statis(iel,ilvu(1)) = statis(iel,ilvu(1))                   &
 
365
        + tepa(npt,jrpoi) *ettp(npt,jmp)
 
366
 
 
367
      stativ(iel,ilvu(1)) = stativ(iel,ilvu(1))                   &
 
368
        + tepa(npt,jrpoi) *ettp(npt,jmp) *ettp(npt,jmp)
 
369
 
 
370
    endif
 
371
 
 
372
  enddo
 
373
 
 
374
 endif
 
375
 
 
376
endif
 
377
 
 
378
!===============================================================================
 
379
! 3 - CALCUL UTILISATEUR DU DEBIT MASSIQUE DE PARTICULES SUR 4 PLANS
 
380
!===============================================================================
 
381
 
 
382
!   Cet exemple est desactive et doit etre adapte au cas traite
 
383
 
 
384
if (1.eq.0) then
 
385
 
 
386
  zz(1) = 0.1d0
 
387
  zz(2) = 0.15d0
 
388
  zz(3) = 0.20d0
 
389
  zz(4) = 0.25d0
 
390
 
 
391
!   Si on est en instationnaire, ou si le debut des stat stationnaires
 
392
!   n'est pas encore atteint, toutes les statistiques sont remises a
 
393
!   zero a chaque pas de temps avant d'entrer dans ce sous-programme.
 
394
 
 
395
  if(isttio.eq.0 .or. npstt.le.nstist) then
 
396
    do iplan = 1,4
 
397
      debm(iplan) = 0.d0
 
398
    enddo
 
399
  endif
 
400
 
 
401
  do iplan = 1,4
 
402
 
 
403
    do npt = 1,nbpart
 
404
 
 
405
      if(itepa(npt,jisor).gt.0) then
 
406
 
 
407
        iel = itepa(npt,jisor)
 
408
 
 
409
        if( ettp(npt,jxp).gt.zz(iplan) .and.                      &
 
410
            ettpa(npt,jxp).le.zz(iplan)      ) then
 
411
          debm(iplan) = debm(iplan) +tepa(npt,jrpoi)*ettp(npt,jmp)
 
412
        endif
 
413
 
 
414
      endif
 
415
 
 
416
    enddo
 
417
  enddo
 
418
 
 
419
  do iplan = 1,4
 
420
    write(nfecra,1001)iplan,debm(iplan)/tstat
 
421
  enddo
 
422
 
 
423
 1001   format(' Debit massique particulaire en Z(',I10,') : ',E14.5)
 
424
 
 
425
endif
 
426
 
 
427
 
 
428
!===============================================================================
 
429
! 4 - EXTRACTION DE STATISTIQUES VOLUMIQUES EN FIN DE CALCUL
 
430
!===============================================================================
 
431
 
 
432
!   Cet exemple est desactive et doit etre adapte au cas traite
 
433
 
 
434
if (1.eq.0) then
 
435
 
 
436
  if(ntcabs.eq.ntmabs) then
 
437
 
 
438
    zzz(1) = 0.005d0
 
439
    zzz(2) = 0.025d0
 
440
    zzz(3) = 0.050d0
 
441
    zzz(4) = 0.075d0
 
442
    zzz(5) = 0.100d0
 
443
    zzz(6) = 0.150d0
 
444
    zzz(7) = 0.200d0
 
445
    zzz(8) = 0.250d0
 
446
 
 
447
    NAME(1) = 'XB01'
 
448
    NAME(2) = 'XB05'
 
449
    NAME(3) = 'XB10'
 
450
    NAME(4) = 'XB15'
 
451
    NAME(5) = 'XB20'
 
452
    NAME(6) = 'XB30'
 
453
    NAME(7) = 'XB40'
 
454
    NAME(8) = 'XB50'
 
455
 
 
456
    ist(1) = ilvx
 
457
    ist(2) = ilvz
 
458
    ist(3) = ilfv
 
459
    ist(4) = ilpd
 
460
 
 
461
    npts = nxlist
 
462
 
 
463
    ifinia = idebia
 
464
    itabvr = idebra
 
465
    ifinra = itabvr + ncelet
 
466
    CALL RASIZE('USLAST',IFINRA)
 
467
    !==========
 
468
 
 
469
    do iplan = 1,8
 
470
 
 
471
!     Pour le fichier ci-dessous :
 
472
!       l'utilisateur verifiera qu'il n'a pas laisse ouverte l'unite
 
473
!       IMPUSR(1), dans un autre sous-programme utilisateur
 
474
      OPEN(FILE=NAME(IPLAN),UNIT=IMPUSR(1),FORM='formatted')
 
475
 
 
476
      xyzpt(1) = zzz(iplan)
 
477
 
 
478
      do ivf = 1,4
 
479
 
 
480
        ivff = ist(ivf)
 
481
        icla = 0
 
482
        iflu = 0
 
483
 
 
484
        call uslaen                                               &
 
485
        !==========
 
486
 ( ifinia , ifinra ,                                              &
 
487
   ndim   , ncelet , ncel   , nfac   , nfabor , nfml   , nprfml , &
 
488
   nnod   , lndfac , lndfbr , ncelbr ,                            &
 
489
   nvar   , nscal  , nphas  , nvlsta ,                            &
 
490
   nideve , nrdeve , nituse , nrtuse ,                            &
 
491
   ivff   , ivff   , ivff   , iflu   , ilpd   , icla   ,          &
 
492
   ifacel , ifabor , ifmfbr , ifmcel , iprfml ,                   &
 
493
   ipnfac , nodfac , ipnfbr , nodfbr ,                            &
 
494
   idevel , ituser , ia     ,                                     &
 
495
   xyzcen , surfac , surfbo , cdgfac , cdgfbo , xyznod , volume , &
 
496
   dt     , rtpa   , rtp    , propce , propfa , propfb ,          &
 
497
   coefa  , coefb  , statis , stativ , ra(itabvr) ,               &
 
498
   rdevel , rtuser , ra     )
 
499
 
 
500
        ind = 0
 
501
        do ii = 1, npts
 
502
 
 
503
          xyzpt(2) = 0.d0
 
504
          xyzpt(3) = float(ii-1)/float(npts-1)*150.d-3
 
505
 
 
506
          call findpt                                             &
 
507
          !==========
 
508
          (ncelet, ncel, xyzcen,                                  &
 
509
           xyzpt(1), xyzpt(2), xyzpt(3), inoeud, irang0)
 
510
 
 
511
          indic = ituser(inoeud)
 
512
          ituser(inoeud) = 1
 
513
          if (indic.eq.1) then
 
514
            ind = ind +1
 
515
            xlist(ind,1) = xyzcen(1,inoeud)
 
516
            xlist(ind,2) = xyzcen(3,inoeud) * (1.d3 / 5.d0)
 
517
            xlist(ind,ivf+2) = ra(itabvr+inoeud-1)
 
518
          endif
 
519
        enddo
 
520
      enddo
 
521
 
 
522
      do il = 1, ind
 
523
        WRITE (IMPUSR(1),'(8E13.5)') (XLIST(IL,II), II=1,6)
 
524
      enddo
 
525
 
 
526
      close(impusr(1))
 
527
 
 
528
    enddo
 
529
 
 
530
  endif
 
531
 
 
532
endif
 
533
 
 
534
 
 
535
 
 
536
!===============================================================================
 
537
 
 
538
!====
 
539
! FIN
 
540
!====
 
541
 
 
542
return
 
543
 
 
544
end