~ubuntu-branches/ubuntu/precise/code-saturne/precise

« back to all changes in this revision

Viewing changes to src/base/optcal.f90

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2011-11-24 00:00:08 UTC
  • mfrom: (6.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20111124000008-2vo99e38267942q5
Tags: 2.1.0-3
Install a missing file

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
!-------------------------------------------------------------------------------
 
2
 
 
3
! This file is part of Code_Saturne, a general-purpose CFD tool.
 
4
!
 
5
! Copyright (C) 1998-2011 EDF S.A.
 
6
!
 
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
 
10
! version.
 
11
!
 
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
 
15
! details.
 
16
!
 
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.
 
20
 
 
21
!-------------------------------------------------------------------------------
 
22
 
 
23
! Module for calculation options
 
24
 
 
25
module optcal
 
26
 
 
27
  !=============================================================================
 
28
 
 
29
  use paramx
 
30
 
 
31
  !=============================================================================
 
32
 
 
33
  ! Definition des equations
 
34
  !   istat
 
35
  !     = 1 prise en compte du terme instationnaire
 
36
  !     = 0 prise en compte du terme instationnaire
 
37
  !   iconv
 
38
  !     = 1 prise en compte de la convection
 
39
  !     = 0 non prise en compte de la convection
 
40
  !   idiff
 
41
  !     = 1 prise en compte de la diffusion (moleculaire et turbulente)
 
42
  !     = 0 non prise en compte de la diffusion (moleculaire et turbulente)
 
43
  !   idifft : si idiff = 1
 
44
  !     = 1 prise en compte de la diffusion turbulente
 
45
  !     = 0 non prise en compte de la diffusion turbulente
 
46
 
 
47
  integer, save :: istat(nvarmx), iconv(nvarmx), idiff(nvarmx), idifft(nvarmx)
 
48
 
 
49
  ! Proprietes physiques rho et viscl constantes ou variables
 
50
  !    =1 variable, =0 constant
 
51
  !     sert lors des lectures de fichier suite pour eviter d'ecraser
 
52
  !     la valeur fournie par la valeur de l'ancien calcul.
 
53
  integer, save :: irovar, ivivar
 
54
 
 
55
  ! Schema en temps
 
56
 
 
57
  !  ischtp : indicateur de schema en temps
 
58
  !     = 2 : ordre 2
 
59
  !     = 1 : standard
 
60
  !  istmpf : indicateur de schema flux de masse
 
61
  !     = 2 theta schema avec theta > 0 (= 0.5 : ordre 2)
 
62
  !     = 0 theta schema avec theta = 0 (explicite)
 
63
  !     = 1 schema standard v1.0
 
64
  !  nterup : nombre d'iteration sur navier-stokes pour couplage vitesse/
 
65
  !           pression
 
66
  !  isno2t : indicateur d'extrapolation de termes sources Navier Stokes
 
67
  !           pour le schema en temps
 
68
  !  isto2t : indicateur d'extrapolation de termes sources des grandeurs
 
69
  !           turbulentes pour le schema en temps
 
70
  !  isso2t : indicateur d'extrapolation de termes sources des scalaires
 
71
  !           pour le theta schema en temps
 
72
  !  iroext : indicateur d'extrapolation de la masse volumique
 
73
  !           pour le schema en temps
 
74
  !  iviext : indicateur d'extrapolation de la viscosite totale
 
75
  !           pour le schema en temps
 
76
  !  ivsext : indicateur d'extrapolation de la diffusivite scalaire
 
77
 
 
78
  !  initvi : =1 si viscosite totale relue dans un suite
 
79
 
 
80
  !  initro : =1 si masse volumique relue dans un suite
 
81
 
 
82
  !  icpext : indicateur d'extrapolation de la masse volumique
 
83
  !           pour le schema en temps
 
84
 
 
85
  !  initcp : =1 si  chaleur specifique relue dans un suite
 
86
  !  initvs : =1 si  diffusivite scalaire relue dans un suite
 
87
 
 
88
  !  thetav : ponderation entre les pas de temps n et n+1 pour les
 
89
  !           variable principales
 
90
  !     = 1 : schema Euler implicite
 
91
  !     =1/2: schema centre en temps
 
92
 
 
93
  !  thetsn : schema en temps pour les termes sources de Navier Stokes
 
94
  !     = 0 : viscosite secondaire explicite
 
95
  !     =1/2: viscosite secondaire extrapolee en n+1/2
 
96
  !     = 1 : viscosite secondaire extrapolee en n+1
 
97
  !  thetst : schema en temps pour les termes sources des grandeurs turbulentes
 
98
  !     = 0 : viscosite secondaire explicite
 
99
  !     =1/2: viscosite secondaire extrapolee en n+1/2
 
100
  !     = 1 : viscosite secondaire extrapolee en n+1
 
101
  !  thetss : schema en temps pour les termes sources des scalaires
 
102
  !     = 0 : viscosite secondaire explicite
 
103
  !     =1/2: viscosite secondaire extrapolee en n+1/2
 
104
  !     = 1 : viscosite secondaire extrapolee en n+1
 
105
  !  thetfl : schema en temps pour le flux de masse
 
106
  !     = 0 : flux de masse explicite
 
107
  !     =1/2: flux de masse extrapole en n+1/2
 
108
  !     = 1 : flux de masse extrapole en n+1
 
109
  !  thetvi : schema en temps pour la viscosite totale
 
110
  !     = 0 : viscosite totale explicite
 
111
  !     =1/2: viscosite totale extrapolee en n+1/2
 
112
  !     = 1 : viscosite totale extrapolee en n+1
 
113
  !  thetro : schema en temps pour la masse volumique
 
114
  !     = 0 : masse volumique totale explicite
 
115
  !     =1/2: masse volumique totale extrapolee en n+1/2
 
116
  !     = 1 : masse volumique extrapolee en n+1
 
117
  !  thetcp : schema en temps pour la masse volumique
 
118
  !     = 0 : chaleur specifique totale explicite
 
119
  !     =1/2: chaleur specifique totale extrapolee en n+1/2
 
120
  !     = 1 : chaleur specifique extrapolee en n+1
 
121
  !  epsup  : tests de convergence du systeme vitesse/pression quand ce
 
122
  !           dernier est resolu par sous-iterations (point fixe)
 
123
  !  xnrmu  : norme de u(k+1) - u(k)
 
124
  !  xnrmu0 : norme de u(0)
 
125
 
 
126
  integer, save ::          nterup,                         &
 
127
                            ischtp, istmpf,                 &
 
128
                            isno2t, isto2t, isso2t(nscamx), &
 
129
                            iroext,                         &
 
130
                            iviext, icpext, ivsext(nscamx), &
 
131
                            initro, initvi,                 &
 
132
                            initcp, initvs(nscamx)
 
133
  double precision, save :: thetav(nvarmx), thetsn, thetst, &
 
134
                            thetss(nscamx),                 &
 
135
                            thetfl, thetro, thetvi,         &
 
136
                            thetcp, thetvs(nscamx), epsup , &
 
137
                            xnrmu0, xnrmu
 
138
 
 
139
  ! Schema convectif
 
140
 
 
141
  !  blencv : 100*(1-blencv) est le pourcentage d'upwind
 
142
  !     = 1 : pas d'upwind en dehors du test de pente
 
143
  !     = 0 : upwind
 
144
  !  ischcv : schema convectif centre ou second order
 
145
  !     = 1 : centre
 
146
  !     = 0 : second order
 
147
  !  isstpc : indicateur sans ou avec test de pente
 
148
  !     = 1 : sans test de pente
 
149
  !     = 0 : avec test de pente
 
150
 
 
151
  integer, save ::          ischcv(nvarmx), isstpc(nvarmx)
 
152
  double precision, save :: blencv(nvarmx)
 
153
 
 
154
  ! Reconstruction des gradients et des seconds membres
 
155
  !   imrgra : methode de recontruction des gradients
 
156
  !     = 0  : recontruction 97
 
157
  !     = 1  : moindres carres 99
 
158
  !     = 2  : moindres carres support etendu complet
 
159
  !     = 3  : moindres carres avec selection du support etendu
 
160
  !     = 4  : reconstruction 97 avec initialisation moindres carres
 
161
  !   anomax : angle de non orthogonalite des faces en radian au dela duquel
 
162
  !            on retient dans le support etendu des cellules voisines
 
163
  !            de la face les cellules dont un noeud est sur la face
 
164
  !   nswrgr : nombre de sweeps de reconstruction des gradients 97
 
165
  !   nswrsm : nombre de sweeps de reconstruction des seconds membres
 
166
  !   epsrgr : precision pour la   reconstruction des gradients 97
 
167
  !   epsrsm : precision pour la   reconstruction des seconds membres
 
168
  !   imligr : limitation des gradients
 
169
  !     < 0  : pas de limitation des gradients
 
170
  !     = 0  : premier ordre
 
171
  !     = 1  : second ordre
 
172
  !   climgr : facteur de limitation (>=1, =1 : forte limitation)
 
173
  !   ircflu : reconstruction des flux aux faces
 
174
  !     = 0  : non
 
175
  !     = 1  : oui
 
176
  !   extrag : extrapolation des gradients au bord (0 <= extrag <= 1)
 
177
  !     = 0  : non
 
178
  !     = 1  : oui
 
179
 
 
180
  integer, save ::          imrgra, nswrgr(nvarmx), nswrsm(nvarmx),   &
 
181
                            imligr(nvarmx)        , ircflu(nvarmx)
 
182
 
 
183
  double precision, save :: anomax ,                                  &
 
184
                            epsrgr(nvarmx), epsrsm(nvarmx),           &
 
185
                            climgr(nvarmx), extrag(nvarmx)
 
186
 
 
187
  ! Solveurs iteratifs
 
188
  !   nitmax : nombre d'iterations max
 
189
  !   epsilo : precision relative cherchee
 
190
  !   iresol
 
191
  !     =-1 : calcule automatiquement (0 si iconv=0, 1 sinon)
 
192
  !     = 0 : gradient conjugue
 
193
  !     = 1 : Jacobi
 
194
  !     = 2 : bi-CGSTAB
 
195
  !    et on ajoute ipol*1000 ou ipol est le degre du polynome de
 
196
  !       preconditionnement de Neumann
 
197
  !     en pratique, il semble que ce preconditonnement ne soit pas efficace
 
198
  !        on gagne 10% cpu sur un cas, on perd 3% sur un autre avec ipol=1
 
199
  !        on perd avec ipol=2
 
200
  !        ces valeurs ont ete obtenues sur de petits cas.
 
201
  !   idircl : decalage de la diagonale de la matrice s'il n'y a pas de Dirichlet
 
202
  !     = 0 : non
 
203
  !     = 1 : oui
 
204
  !     le code calcule automatiquement pour chaque variable ndircl, nombre de
 
205
  !        CL de Dirichlet, et en deduit s'il doit decaler ou pas la diagonale
 
206
 
 
207
  integer, save ::          nitmax(nvarmx),iresol(nvarmx),idircl(nvarmx),   &
 
208
                            ndircl(nvarmx)
 
209
 
 
210
  double precision, save :: epsilo(nvarmx)
 
211
 
 
212
  ! Multigrille
 
213
  !   imgr
 
214
  !     = 0 pas de multigrille
 
215
  !     = 1        multigrille algebrique
 
216
  !   ncymax : nombre max de cycles
 
217
  !   nitmgf : nombre d'iter sur maillage fin
 
218
  !   rlxp1  :
 
219
 
 
220
  integer, save ::          imgr(nvarmx), ncymax(nvarmx), nitmgf(nvarmx)
 
221
  double precision, save :: rlxp1
 
222
 
 
223
  ! Gestion du calcul
 
224
  !   isuite : suite de calcul
 
225
  !     = 0 pour sfs
 
226
  !     = 1 pour suite de calcul
 
227
  !   iscold : correspondance nouveaux-anciens scalaires
 
228
  !   iecaux : ecriture du suite auxiliaire
 
229
  !   ileaux : lecture  du suite auxiliaire
 
230
  !   isuit1 : suite du module thermique 1D en paroi
 
231
  !   isuict : suite du module aerorefrigerant
 
232
  !   isuivo : suite de la methode des vortex
 
233
 
 
234
  integer, save :: isuite , ileaux, iecaux, iscold(nscamx),        &
 
235
                   isuit1 , isuict, isuivo
 
236
 
 
237
  ! Gestion des pas de temps
 
238
  !   ntpabs : pas de temps precedent absolu
 
239
  !   ntcabs : pas de temps courant   absolu
 
240
  !   ntmabs : pas de temps max       absolu
 
241
  !   ttpabs :        temps precedent absolu
 
242
  !   ttcabs :        temps courant   absolu
 
243
  !   ttmabs :        temps max       absolu
 
244
  !   inpdt0 : indicateur "zero pas de temps"
 
245
 
 
246
  !   ntmabs = numero absolu du dernier pas de temps desire
 
247
  !            si on a deja fait 10 pas de temps
 
248
  !              et qu'on veut en faire 10 autres,
 
249
  !              il faut affecter 10 + 10 = 20 a ntmabs
 
250
  !   ntpabs = numero relu dans le fichier suite
 
251
  !   ntcabs = incremente au debut du pas de temps
 
252
  !              et donc initialise a ntpabs
 
253
  !   inpdt0 = 1 pour ne faire aucun pas de temps (0 sinon)
 
254
  !              pour les calculs non suite :
 
255
  !                on saute uniquement les resolutions (Navier-Stokes,
 
256
  !                  turbulence, scalaires...)
 
257
  !              pour les calculs suite :
 
258
  !                on saute les resolutions (navier-stokes,
 
259
  !                  turbulence, scalaires...) et le calcul des proprietes
 
260
  !                  physiques, les conditions aux limites (les grandeurs
 
261
  !                  sont lues dans le fichier suite)
 
262
 
 
263
  integer, save ::          ntpabs, ntcabs, ntmabs, inpdt0
 
264
  double precision, save :: ttpabs, ttcabs
 
265
 
 
266
  ! Option pas de temps
 
267
  !   idtvar : pas de temps variable
 
268
  !     = -1 : algorithme stationnaire
 
269
  !     =  0 : pas de temps constant
 
270
  !     =  1 : pas de temps uniforme en espace et variable en temps
 
271
  !     =  2 : pas de temps variable en espace et variable en temps
 
272
  !   iptlro : limitation du pas de temps liee aux effets de densite
 
273
  !     = 0 : non
 
274
  !     = 1 : oui
 
275
  !   coumax : nombre de Courant         maximum        (idtvar non nul)
 
276
  !   foumax : nombre de         Fourier maximum        (idtvar non nul)
 
277
  !   varrdt : variation relative permise de dt         (idtvar non nul)
 
278
  !   dtmin, dtmax : valeur limite min et max de dt     (idtvar non nul)
 
279
  !       prendre pour dtmax = max (ld/ud, sqrt(lt/(gdelta rho/rho)), ...)
 
280
  !   cdtvar : coef multiplicatif pour le pas de temps de chaque variable
 
281
  !         pour u,v,w,p il est inutilise
 
282
  !         pour k,e    on prend la meme valeur : celle de k
 
283
  !         pour Rij, e on prend la meme valeur : celle de r11
 
284
  !   relaxv : relaxation des variables (1 pas de relax)
 
285
  !   relxst : coefficient de relaxation de base stationnaire
 
286
 
 
287
  integer, save ::          idtvar,iptlro
 
288
  double precision, save :: dtref,coumax,foumax,                  &
 
289
                            dtmin,dtmax ,varrdt,cdtvar(nvarmx),   &
 
290
                            relaxv(nvarmx), relxst
 
291
 
 
292
  ! turbulence
 
293
  !  iturb
 
294
  !    = 0  pas de turbulence
 
295
  !    = 10 longueur de melange
 
296
  !    = 20, 21 k-epsilon
 
297
  !         * 20 modele standard
 
298
  !         * 21 modele a production lineaire
 
299
  !    = 30, 31 Rij-epsilon
 
300
  !         * 30 modele standard (LRR)
 
301
  !         * 31 modele ssg
 
302
  !    = 40, 41, 42 les
 
303
  !         * 40 modele de Smagorinsky constant
 
304
  !         * 41 modele de Smagorinsky dynamique "classique"
 
305
  !         * 42 modele de Smagorinsky dynamique de "Piomelli et Liu"
 
306
  !    = 50 v2f phi-model
 
307
  !    = 60 k-omega sst
 
308
  !  itytur
 
309
  !    = int(iturb/10) pour distinguer rapidement les classes de modeles
 
310
  !  ideuch
 
311
  !    = 0 une echelle       (deux echelles = faux)
 
312
  !    = 1 deux echelles     (deux echelles = vrai)
 
313
  !    = 2 deux echelles limitation de yplus a ypluli (scalable wall function)
 
314
  !  ilogpo
 
315
  !    = 0 une echelle  avec loi en puissance
 
316
  !    = 1 une echelles avec loi log
 
317
  !  iclkep
 
318
  !    = 0 clipping en valeur absolue de k et epsilon
 
319
  !    = 1 clipping couple k-epsilon base sur des relations physiques
 
320
  !  igrhok
 
321
  !    = 1     prise en compte de 2/3 rho grad k dans navier stokes
 
322
  !    = 0 non prise en compte de 2/3 rho grad k dans navier stokes
 
323
  !  igrake
 
324
  !    = 1 gravite dans k-epsilon
 
325
  !    = 0 sinon
 
326
  !  igrari
 
327
  !    = 1 gravite dans Rij-epsilon
 
328
  !    = 0 sinon
 
329
  !  iscalt numero du scalaire qui tient lieu de temperature
 
330
  !    donc variable isca(iscalt)
 
331
  !  ikecou
 
332
  !    = 1 k-epsilon couple en increments
 
333
  !    = 0 sinon
 
334
  !  irijnu
 
335
  !         = 1 viscosite dans la matrice en increments de vitesse (Rij)
 
336
  !         = 0 sinon
 
337
  !  irijrb
 
338
  !         = 1 traitement precis de Rij au bord, voir condli      (Rij)
 
339
  !         = 0 sinon
 
340
  !  idifre
 
341
  !         = 1 traitement complet de la diagonale du tenseur de
 
342
  !             diffusion de Rij et epsilon (Rij)
 
343
  !         = 0 traitement simplifie
 
344
  !  iclsyr
 
345
  !         = 1 implicitation partielle de Rij dans les cl de symetrie
 
346
  !         = 0 pas d'implicitation
 
347
  !  iclptr
 
348
  !         = 1 implicitation partielle de Rij et epsilon dans les cl
 
349
  !             de paroi turbulente
 
350
  !         = 0 pas d'implicitation
 
351
  !  idries : amortissement de type Van Driest a la paroi
 
352
  !         = 0 sans amortissement
 
353
  !         = 1 avec amortissement
 
354
  !  ivrtex : utilisation de la methode des vortex
 
355
  !         = 0 sans methode des vortex
 
356
  !         = 1 avec methode des vortex
 
357
 
 
358
  integer, save :: iturb , itytur,                 &
 
359
                   ideuch, ilogpo, iclkep, &
 
360
                   igrhok, igrake,                 &
 
361
                   iscalt, ikecou,                 &
 
362
                   irijnu, irijrb, irijec, &
 
363
                   igrari, idifre, iclsyr, &
 
364
                   iclptr, idries, ivrtex
 
365
 
 
366
  ! ivisse prise en compte de -2/3 grad(mu div(u)) + div(mu (grad_t(u)))
 
367
 
 
368
  integer, save :: ivisse
 
369
 
 
370
  ! Stokes
 
371
  !   irevmc
 
372
  !     = 2 pour reconstruction des vitesses de type rt0
 
373
  !     = 1 pour reconstruction des vitesses avec gradient de l'increment
 
374
  !           de pression par moindres carres
 
375
  !     = 0 sinon
 
376
  !   iprco
 
377
  !     = 0 pour calcul sans pression continuite
 
378
  !     = 1 pour calcul avec pression continuite
 
379
  !   arak proportion d'Arakawa (1 pour Arakawa complet)
 
380
  !   relaxv relaxation des variables (1 pas de relax)
 
381
  !   rnormp normalisation pour la convergence de resolp
 
382
 
 
383
  integer, save ::          irevmc, iprco , irnpnw
 
384
  double precision, save :: rnormp, arak
 
385
 
 
386
  !   ivelco
 
387
  !     = 1 resolution couplee des composantes de vitesse
 
388
  !     = 0 resolution decouplee des composantes de vitesse (Standard)
 
389
 
 
390
  integer, save :: ivelco
 
391
 
 
392
  ! ipucou algorithme couplage instationnaire vitesse/pression
 
393
 
 
394
  integer, save :: ipucou
 
395
 
 
396
  ! iccvfg calcul a champ de vitesse fige
 
397
 
 
398
  integer, save :: iccvfg
 
399
 
 
400
  ! Calcul de la viscosite
 
401
 
 
402
  integer, save :: imvisf
 
403
 
 
404
  ! Type des conditions limites et index min et max
 
405
  !                 des sous listes defaces de bord
 
406
 
 
407
  integer, save :: idebty(ntypmx), ifinty(ntypmx)
 
408
 
 
409
  !  itrbrb = 1 traitement precis de la temperature au bord, voir condli
 
410
  !             (utilise pour couplage syrthes)
 
411
  !         = 0 sinon
 
412
  !  icpsyr = 1 si scalaire couple a syrthes
 
413
  !    donc pour le moment vaut 1 pour iscalt uniquement
 
414
 
 
415
  integer, save :: itbrrb, icpsyr(nscamx)
 
416
 
 
417
  !   Prise en compte de l'equilibre entre le gradient de pression
 
418
  !        et les termes sources de gravite et de perte de charge
 
419
 
 
420
  !     iphydr = 0 algorithme sans prise en compte de l'equilibre
 
421
  !            = 1 algorithme avec prise en compte de l'equilibre
 
422
  !     icalhy = 0 pas de calcul de la pression hydrostatique pour les
 
423
  !                dirichlets de pression en sortie
 
424
  !            = 1        calcul de la pression hydrostatique pour les
 
425
  !                Dirichlets de pression en sortie
 
426
 
 
427
  integer, save :: iphydr, icalhy
 
428
 
 
429
  !   Calcul des estimateurs
 
430
 
 
431
  integer, save :: iescal(nestmx)
 
432
 
 
433
  !   Calcul des moyennes temporelles (calcul des moments)
 
434
 
 
435
  !  nbmomt : nombre de moyennes demandees
 
436
  !  nbdtcm : nombre de tableaux ncel pour le temps cumule
 
437
  !  ntdmom : numero du pas de temps initial pour le calcul du moment
 
438
  !  imoold : numero de l'ancien moment correspondant en cas de suite
 
439
  !  icmome : pointeur pour les moments (donne un numero de propriete)
 
440
  !           s'utilise ainsi propce(iel,ipproc(icmome(imom)))
 
441
  !  idtmom : numero du temps cumule associe aux moments
 
442
  !           ce numero va de 1 a n pour les temps cumules non uniformes
 
443
  !                     et de -1 a -p pour les temps cumules uniformes
 
444
  !           s'utilise ainsi :
 
445
  !              si idtmom(imom) > 0 propce(iel,ipropc(icdtmo(idtmom(imom))))
 
446
  !              si idtmom(imom) < 0 dtcmom(-idtmom(imom))
 
447
  !  idfmom : numero des variables composant le moment idfmom(jj,imom)
 
448
  !  idgmom : degre du moment
 
449
  !  icdtmo : numero de propriete du temps cumule (voir idtmom)
 
450
  !  ippmom : repere pour le post si on doit diviser la variable
 
451
  !           par un temps cumule (voir memtri et usvpst)
 
452
  !  dtcmom : valeur du pas de temps cumule quand il est uniforme (voir idtmom).
 
453
 
 
454
  integer, save ::          nbmomt, nbdtcm,                                 &
 
455
                            ntdmom(nbmomx), imoold(nbmomx),                 &
 
456
                            icmome(nbmomx), idtmom(nbmomx),                 &
 
457
                            idfmom(ndgmox,nbmomx),          idgmom(nbmomx), &
 
458
                            icdtmo(nbmomx), ippmom(nvppmx)
 
459
  double precision, save :: dtcmom(nbmomx)
 
460
 
 
461
  ! Indicateur pertes de charge global (ie somme sur les processeurs
 
462
  !   de ncepdc)
 
463
 
 
464
  integer, save :: ncpdct
 
465
 
 
466
  ! Indicateur module thermique 1d global (ie somme sur les processeurs
 
467
  !   de nfpt1d)
 
468
 
 
469
  integer, save :: nfpt1t
 
470
 
 
471
  ! Indicateur termes sources de masse global (ie somme sur les processeurs
 
472
  !   de ncetsm)
 
473
 
 
474
  integer, save :: nctsmt
 
475
 
 
476
  ! Indicateur de passage dans l'initialisation des
 
477
  !                       variables par l'utilisateur
 
478
  !          iusini = 1 passage dans usiniv ou ppiniv
 
479
  !                   0 pas de passage (ni iusini ni ppiniv)
 
480
  !          iuscfp = 1 passage dans uscfpv
 
481
  !                   0 pas de passage
 
482
 
 
483
  integer, save :: iusini, iuscfp
 
484
 
 
485
  ! Parametres numeriques pour le calcul de la distance a la paroi
 
486
 
 
487
  ! ineedy : = 1 distance a la paroi est necessaire pour le calcul
 
488
  !          = 0 distance a la paroi n'est pas necessaire
 
489
  ! imajdy : = 1 distance a la paroi a ete mise a jour
 
490
  !          = 0 distance a la paroi n'a pas ete mise a jour
 
491
  ! icdpar : = 1 calcul standard (et relecture en suite de calcul)
 
492
  !          = 2 calcul ancien   (et relecture en suite de calcul)
 
493
  !          =-1 forcer le recalcul en suite (par calcul standard)
 
494
  !          =-2 forcer le recalcul en suite (par calcul ancien)
 
495
  ! nitmay : nombre max d'iterations pour les resolutions iteratives
 
496
  ! nswrsy : nombre de sweep pour reconstruction des s.m.
 
497
  ! nswrgy : nombre de sweep pour reconstruction des gradients
 
498
  ! imligy : methode de limitation du gradient
 
499
  ! ircfly : indicateur pour reconstruction des flux
 
500
  ! ischcy : indicateur du schema en espace
 
501
  ! isstpy : indicateur pour test de pente
 
502
  ! imgrpy : multigrille
 
503
  ! iwarny : niveau d'impression
 
504
  ! ntcmxy : nombre max d'iteration pour la convection de y
 
505
 
 
506
  integer, save :: ineedy, imajdy, icdpar,    &
 
507
                   nitmay, nswrsy, nswrgy,    &
 
508
                   imligy, ircfly, ischcy,    &
 
509
                   isstpy, imgrpy, iwarny,    &
 
510
                   ntcmxy
 
511
 
 
512
  ! blency : 1 - proportion d'upwind
 
513
  ! epsily : precision pour resolution iterative
 
514
  ! epsrsy : precision pour la reconstruction du second membre
 
515
  ! epsrgy : precision pour la reconstruction des gradients
 
516
  ! climgy : coef gradient*distance/ecart
 
517
  ! extray : coef d'extrapolation des gradients
 
518
  ! coumxy : valeur max   du courant pour equation convection
 
519
  ! epscvy : precision pour convergence equation convection stationnaire
 
520
  ! yplmxy : valeur max   de yplus au dessus de laquelle l'amortissement de
 
521
  !          Van Driest est sans effet et donc pour laquelle un calcul de
 
522
  !          yplus moins precis est suffisant
 
523
 
 
524
  double precision, save :: blency, epsily, epsrsy,    &
 
525
                            epsrgy, climgy, extray,    &
 
526
                            coumxy, epscvy, yplmxy
 
527
 
 
528
  ! Parametres numeriques pour le calcul des efforts aux bords
 
529
 
 
530
  ! ineedf : = 1 on calcule les efforts aux parois
 
531
  !          = 0 on ne calcule pas les efforts aux parois
 
532
 
 
533
  integer, save :: ineedf
 
534
 
 
535
  !=============================================================================
 
536
 
 
537
end module optcal