Download kon13.eso

Back to the list

   1 : C KON13     SOURCE    CHAT      06/08/24    21:47:46     5529           
   2 :       SUBROUTINE KON13
   3 : C************************************************************************
   4 : C
   5 : C PROJET            :  CASTEM 2000
   6 : C
   7 : C NOM               :  KON13
   8 : C
   9 : C DESCRIPTION       :  Subroutine appellée par KON1
  10 : C
  11 : C                      Modelisation 2D/3D des equations d'Euler
  12 : C                      Calcul du jacobien (2eme ordre)
  13 : C                      Option non documentée dans la notice!!!
  14 : C     
  15 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16 : C      
  17 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/LTMF                        
  18 : C
  19 : C************************************************************************
  20 : C
  20 : C APPELES (Calcul)  :  KONJA5 (calcul du jacobien, gaz "calorically
  21 : C                              perfect", monoespece, 2D, 2eme ordre,
  22 : C                              AUSMplus, VLH)
  23 : C
  24 : C************************************************************************
  25 : C
  26 : C*** SYNTAXE
  27 : C
  28 : C  Discrétisation en VF "cell-centered" des équations d'Euler pour
  29 : C  un gaz parfait mono-constituent polytropique
  30 : C  Inconnues: densité, quantité de mouvement, énergie totale par
  31 : C  unité de volumes (variables conservatives)
  32 : C  Calcul du jacobien 2eme ordre en espace
  33 : C  Cas 2D
  34 : C
  35 : C  RMAT1 = 'KONV' 'VF' 'PERFMONO' 'JACOCON2' LMOT1 
  36 : C          MOD1 MOT1 
  37 : C          MCHAM1 MCHAM2 MCHAM3 MCHAM4
  38 : C          (MAILIM) CHPO1 CHPO2 CHPO3 CHPO5
  39 : C          CHPO6  CHPO7  CHPO8  CHPO9  CHPO10 CHPO11 
  40 : C          MCHAM5 MCHAM6 MCHAM7 CHPO12 ;
  41 : C
  42 : C  ENTREES 
  43 : C
  44 : C  MOT1   : objet de type MOT
  45 : C           'VLH'       : jacobien du residu pour la methode VLH 
  46 : C           'AUSMPLUS'  : jacobien du residu pour la methode AUSM+ 
  47 : C
  48 : C  LMOT1  : objet de type LISTMOTS
  49 : C           Noms de composantes des variable primales et duales de RMAT1.
  50 : C           Il contient dans l'ordre suivant: le noms de la densité,
  51 : C           du momentum, de l'énergie totale par unité de volume
  52 : C
  53 : C MOD1    : objet modele de type Navier_Stokes
  54 : C
  55 : C MCHAM1  : MCHAML contenant la masse volumique, qui a comme 
  56 : C           SPG (support géométrique) l'indice 'FACEL' de 
  57 : C           MOD1 (une composante, 'SCAL')
  58 : C
  59 : C MCHAM2  : MCHAML  contenant la vitesse  et les cosinus 
  60 : C           directeurs du repère locale (n,t) dans le repère 
  61 : C           global (x,y) (dans le cas 2D 6 composantes:
  62 : C           * 'UN' = vitesse normale  (SPG =(DOMA MOD1 'FACEL'))
  63 : C           * 'UT' = vitesse tangentielle  (SPG =(DOMA MOD1 'FACEL'))
  64 : C           * 'NX' = n.x (SPG = 'FACE')
  65 : C           * 'NY' = n.y (SPG = 'FACE')
  66 : C           * 'TX' = t.x (SPG = 'FACE')
  67 : C           * 'TY' = t.y (SPG = 'FACE')).
  68 : C
  69 : C MCHAM3  : MCHAML (SPG =(DOMA MOD1 'FACEL')) contenant la pression du
  70 : C           gaz (une  seule composante, 'SCAL').
  71 : C
  72 : C MCHAM4  : MCHAML (SPG =(DOMA MOD1 'FACEL')) contenant le "gamma" du 
  73 : C           gaz (une seule composante, 'SCAL').
  74 : C (MAILIM): MAIILAGE de POI1 ou on ne veut pas calculer le FLUX convective
  75 : C
  76 : C  CHPO1   : CHPOINT contenant la masse volumique
  77 : C           (SPG =(DOMA MOD1 'CENTRE'), une seule composante, 
  78 : C            'SCAL').
  79 : C
  80 : C  CHPO2   : CHPOINT contenant la vitesse
  81 : C           (SPG =(DOMA MOD1 'CENTRE'), deux/trois composantes
  82 : C            'UX', 'UY', 'UZ')
  83 : C
  84 : C  CHPO3   : CHPOINT contenant la pression du gaz
  85 : C           (SPG =(DOMA MOD1 'CENTRE'), une seule composante, 
  86 : C            'SCAL').
  87 : C
  88 : C  CHPO5   : CHPOINT contenant le "gamma" du gaz
  89 : C           (SPG =(DOMA MOD1 'CENTRE'), une seule composante, 
  90 : C            'SCAL').
  91 : C
  92 : C  CHPO6   : CHPOINT contenant le gradient de la densité
  93 : C           CHPO1 (voir operatéur PENT)
  94 : C
  95 : C  CHPO7   : CHPOINT contenant le gradient de la vitesse 
  96 : C           CHPO2 (voir operatéur PENT)
  97 : C
  98 : C  CHPO8   : CHPOINT contenant le gradient de la pression
  99 : C           CHPO3 (voir operatéur PENT)
 100 : C
 101 : C  CHPO9   : CHPOINT contenant le limiteur de la densité
 102 : C           CHPO1 (voir operatéur PENT)
 103 : C
 104 : C  CHPO10  : CHPOINT contenant le limiteur de la vitesse 
 105 : C           CHPO2 (voir operatéur PENT)
 106 : C
 107 : C  CHPO11  : CHPOINT contenant le limiteur de la pression
 108 : C           CHPO3 (voir operatéur PENT)
 109 : C
 110 : C  MCHAM5  : CHAMELEM contenant le coefficient pour le calcul
 111 : C           du gradient de la densité
 112 : C           CHPO1 (voir operatéur PENT)
 113 : C
 114 : C  MCHAM6  : CHAMELEM contenant le coefficient pour le calcul
 115 : C           du gradient de la vitesse
 116 : C           CHPO2 (voir operatéur PENT)
 117 : C
 118 : C  MCHAM7  : CHAMELEM contenant le coefficient pour le calcul
 119 : C           du gradient de la pression
 120 : C           CHPO3 (voir operatéur PENT)
 121 : C
 122 : C  CHPO12  : CHPOINT contenant la condition limite sur la vitesse 
 123 : C            aux bords 
 124 : C
 125 : C SORTIES
 126 : C
 127 : C
 128 : C RMAT1   : objet de type MATRIK
 129 : C           (SPG =(DOMA MOD1 'CENTRE'))
 130 : C           (inconnues primales = inconnues duales = LMOT1)
 131 : C***********************************************************************
 132 : C
 133 : C************************************************************************
 134 : C
 135 : C HISTORIQUE (Anomalies et modifications éventuelles)
 136 : C
 137 : C HISTORIQUE :
 138 : C      
 139 : C************************************************************************
 140 : C
 141 :       IMPLICIT INTEGER(I-N)
 142 : -INC CCOPTIO
 143 : -INC SMLMOTS
 144 : -INC SMCHPOI
 145 : -INC SMELEME
 146 :       POINTEUR MLMVIT.MLMOTS
 147 : C
 148 : C**** Variables de COOPTIO
 149 : C
 150 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
 151 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
 152 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
 153 : C     &        ,IECHO,   IIMPI,  IOSPI
 154 : C     &        ,IDIM,    IFICLE, IPREFI     
 155 : C     &        ,MCOORD
 156 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
 157 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
 158 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
 159 : C     &        ,NUCROU, IPSAUV
 160 : C
 161 :       INTEGER NBJAC, IRET, INDIC, NBCOMP, NESP, NC, JGN, JGM
 162 :      &     ,IIMPL, IIMPL2, IJACO
 163 :      &     ,IDOMA, MELEMC, MELEMF, MELEFE, MELTFA, ICHPSU, ICHPDI
 164 :      &     ,ICHPVO, INORM
 165 :      &     ,IROF, IVITF, IPF, IGAMF, ILIINC
 166 :      &     ,IFLIM, ICACCA, MELLIM
 167 :      &     ,IRN, IVN, IPN, IGAMN
 168 :      &     ,IGRN, IGVN, IGPN, IGLRN, IGLVN, IGLPN, ICRN, ICVN, ICPN
 169 :      &     ,IVLIM, INEFMD, ICOND
 170 : C
 171 :       PARAMETER (NBJAC=2)
 172 :       CHARACTER*8 TYPE, LJACO(NBJAC)
 173 :       CHARACTER*4 MOT
 174 : C      
 175 :       DATA LJACO/'VLH     ','AUSMPLUS'/
 176 : C     
 176 :       CALL LIRMOT(LJACO,NBJAC,IIMPL,1)
 177 :       IF(IERR .NE. 0)GOTO 9999
 178 : C
 179 : C**********************************
 180 : C**** Lecture de l'objet MODELE ***
 181 : C**********************************
 182 : C
 183 :       ICOND = 1
 183 :       CALL QUETYP(TYPE,ICOND,IRET)
 184 : 
 185 :       IF(IRET.EQ.0.AND.TYPE.NE.'MMODEL')THEN
 186 :         WRITE(6,*)' On attend un objet MMODEL'
 187 :         RETURN
 188 :       ENDIF
 188 :       CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET)
 189 :       IF(IERR.NE.0)GOTO 9999
 189 :       CALL LEKMOD(MMODEL,IDOMA,INEFMD)
 190 :       IF(IERR.NE.0)GOTO 9999
 191 : C
 192 : C**** Centre, FACE, FACEL, ELTFA
 193 : C
 193 :       CALL LEKTAB(IDOMA,'CENTRE',MELEMC)
 194 :       IF(IERR .NE. 0) GOTO 9999
 195 : C
 195 :       CALL LEKTAB(IDOMA,'FACE',MELEMF)
 196 :       IF(IERR .NE. 0) GOTO 9999
 197 : C      
 197 :       CALL LEKTAB(IDOMA,'FACEL',MELEFE)
 198 :       IF(IERR .NE. 0) GOTO 9999
 199 : C
 199 :       CALL LEKTAB(IDOMA,'ELTFA',MELTFA)
 200 :       IF(IERR .NE. 0) GOTO 9999
 201 : C
 202 : C**** Lecture du CHPOINT contenant les surfaces des faces.
 203 : C
 203 :       CALL LEKTAB(IDOMA,'XXSURFAC',ICHPSU)
 204 :       IF(IERR .NE. 0) GOTO 9999
 205 :       INDIC = 1
 206 :       NBCOMP = 1
 207 :       MOT = 'SCAL'
 207 :       CALL QUEPOI(ICHPSU, MELEMF, INDIC, NBCOMP, MOT)
 208 :       IF(IERR .NE. 0) GOTO 9999
 209 : C  
 210 : C**** Lecture du CHPOINT contenant les diametres minimums.
 211 : C
 211 :       CALL LEKTAB(IDOMA,'XXDIEMIN',ICHPDI)
 212 :       IF(IERR .NE. 0) GOTO 9999
 213 :       INDIC = 1
 214 :       NBCOMP = 1
 215 :       MOT = 'SCAL'
 215 :       CALL QUEPOI(ICHPDI, MELEMC, INDIC, NBCOMP, MOT)
 216 :       IF(IERR .NE. 0) GOTO 9999
 217 : 
 218 : C     
 219 : C**** Lecture du CHPOINT contenant les volumes
 220 : C
 220 :       CALL LEKTAB(IDOMA,'XXVOLUM',ICHPVO)
 221 :       IF(IERR .NE. 0) GOTO 9999
 222 :       INDIC = 1
 223 :       NBCOMP = 1
 224 :       MOT = 'SCAL'
 224 :       CALL QUEPOI(ICHPVO, MELEMC, INDIC, NBCOMP, MOT)
 225 :       IF(IERR .NE. 0) GOTO 9999
 226 : C
 227 : C**** Les normales aux faces
 228 : C
 229 :       IF(IDIM .EQ. 2)THEN
 230 : C        Que les normales
 230 :          CALL LEKTAB(IDOMA,'XXNORMAF',INORM)
 231 :          IF(IERR .NE. 0) GOTO 9999
 232 :          JGN = 4
 233 :          JGM = 2
 234 :          SEGINI MLMVIT
 235 :          MLMVIT.MOTS(1) = 'UX  '
 236 :          MLMVIT.MOTS(2) = 'UY  '
 236 :          CALL QUEPO1(INORM, MELEMF, MLMVIT)
 237 :          SEGSUP MLMVIT
 238 :          IF(IERR .NE. 0) GOTO 9999
 239 :       ELSE
 240 : C        Les normales et les tangentes
 241 :          TYPE = ' '
 241 :          CALL ACMO(IDOMA,'MATROT',TYPE,INORM)
 242 :          IF (TYPE .NE. 'CHPOINT ') THEN
 242 :             CALL MATRAN(IDOMA,INORM)
 243 :             IF(IERR .NE. 0) GOTO 9999
 244 :          ENDIF
 245 :          JGN = 4
 246 :          JGM = 9
 247 :          SEGINI MLMVIT
 248 :          MLMVIT.MOTS(1) = 'UX  '
 249 :          MLMVIT.MOTS(2) = 'UY  '
 250 :          MLMVIT.MOTS(3) = 'UZ  '
 251 :          MLMVIT.MOTS(4) = 'RX  '
 252 :          MLMVIT.MOTS(5) = 'RY  '
 253 :          MLMVIT.MOTS(6) = 'RZ  '
 254 :          MLMVIT.MOTS(7) = 'MX  '
 255 :          MLMVIT.MOTS(8) = 'MY  '
 256 :          MLMVIT.MOTS(9) = 'MZ  '
 256 :          CALL QUEPO1(INORM, MELEMF, MLMVIT)
 257 :          SEGSUP MLMVIT
 258 :       ENDIF
 259 : C
 260 : C********************************
 261 : C**** Fin table domaine *********
 262 : C********************************
 263 : C
 264 : C
 265 : C**** On va lire les pointeurs des MCHAMLs
 266 : C     Lecture du MCHAML 'FACEL' densité
 267 : C
 268 :       TYPE='MCHAML  '
 268 :       CALL  LIROBJ(TYPE,IROF,1,IRET)
 269 :       IF(IERR.NE.0) GOTO 9999
 270 : C
 271 : C**** Lecture du MCHAML 'FACEL' vitesse
 272 : C   
 273 :       TYPE='MCHAML  '
 273 :       CALL  LIROBJ(TYPE,IVITF,1,IRET)
 274 :       IF(IERR .NE. 0) GOTO 9999
 275 : C
 276 : C**** Lecture du MCHAML 'FACEL' contenant la pression
 277 : C    
 278 :       TYPE='MCHAML  '
 278 :       CALL  LIROBJ(TYPE,IPF,1,IRET)
 279 :       IF(IERR .NE. 0) GOTO 9999
 280 : C     
 281 : C**** Lecture du MCHAML 'FACEL' contenant les gamma
 282 : C
 283 :       TYPE='MCHAML  '
 283 :       CALL  LIROBJ(TYPE,IGAMF,1,IRET)
 284 :       IF(IERR .NE. 0) GOTO 9999
 285 : C     
 286 : C**** La list des inconnues
 287 : C
 288 :       NESP=0
 289 :       TYPE='LISTMOTS'
 289 :       CALL LIROBJ(TYPE,ILIINC,1,IRET)
 290 :       IF(IERR .NE. 0) GOTO 9999
 291 :       MLMOTS = ILIINC
 292 :       SEGACT MLMOTS
 293 :       NC = MLMOTS.MOTS(/2)
 294 :       SEGDES MLMOTS
 295 :       IF(NC .NE. (IDIM+2+NESP))THEN
 296 :          MOTERR(1:40) = 'LISTINCO = ???'
 297 :          WRITE(IOIMP,*) MOTERR
 298 : C
 299 : C******* Message d'erreur standard
 300 : C        21 2
 301 : C        Données incompatibles
 302 : C
 302 :          CALL ERREUR(21)
 303 :          GOTO 9999
 304 :       ENDIF
 305 : C
 306 : C**** Boundary condition
 307 : C
 308 :       IRET=0
 309 :       TYPE='MAILLAGE'
 309 :       CALL LIROBJ(TYPE,IFLIM,0,IRET)
 310 :       IF(IERR.NE.0)GOTO 9999
 311 :       IF(IRET .EQ. 0)THEN
 312 :          MELLIM = 0
 313 :       ELSE
 314 :          MELEME=IFLIM
 315 :          SEGACT MELEME
 316 :          ICACCA=MELEME.NUM(/2)
 317 :          IF(ICACCA .EQ. 0)THEN
 318 :             MELLIM = 0
 319 :          ELSE
 320 :             MELLIM = IFLIM
 321 :          ENDIF
 322 :          SEGDES MELEME
 323 :       ENDIF
 324 : C
 325 : C******* La densité au centre
 326 : C
 327 :       TYPE = 'CHPOINT '
 327 :       CALL LIROBJ(TYPE,IRN,1,IRET)
 328 :       IF(IERR .NE. 0) GOTO 9999
 329 : C
 330 : C**** Control du CHPOINT: QUEPOI
 331 : C
 332 : C     INDIC = 1   -> on impose le pointeur du support geometrique (ICEN)
 333 : C                   N.B. Le CHPOINT peut changer de structure pour
 334 : C                        avoir SPG = ICEN!!!!      
 335 : C     INDIC = 0   -> on ne fait que verifier le support geometrique
 336 : C                   (ICEN). Si le SPG sont differents INDIC = -4 en sortie       
 337 : C
 338 : C     NBCOMP > 0 -> numero des composantes      
 339 : C
 340 : C     MOT  = ' ' obligatoire s'on connais pas les noms des composantes
 341 : C
 342 :       INDIC = 1
 343 :       NBCOMP = 1
 344 :       MOT = 'SCAL'
 344 :       CALL QUEPOI(IRN, MELEMC, INDIC, NBCOMP, MOT)
 345 :       IF(IERR .NE. 0) GOTO 9999
 346 : C
 347 : C******* La vitesse au centre
 348 : C
 349 :       TYPE = 'CHPOINT '
 349 :       CALL LIROBJ(TYPE,IVN,1,IRET)
 350 :       IF(IERR .NE. 0) GOTO 9999
 351 :       JGN = 4
 352 :       JGM = IDIM
 353 :       SEGINI MLMVIT
 354 :       MLMVIT.MOTS(1) = 'UX  '
 355 :       MLMVIT.MOTS(2) = 'UY  '
 356 :       IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ  '
 356 :       CALL QUEPO1(IVN, MELEMC, MLMVIT)
 357 :       SEGSUP MLMVIT
 358 :       IF(IERR .NE. 0) GOTO 9999
 359 : C
 360 : C******* La pression au centre
 361 : C
 362 :       TYPE = 'CHPOINT '
 362 :       CALL LIROBJ(TYPE,IPN,1,IRET)
 363 :       IF(IERR .NE. 0) GOTO 9999
 364 :       INDIC = 1
 365 :       NBCOMP = 1
 366 :       MOT = 'SCAL'
 366 :       CALL QUEPOI(IPN, MELEMC, INDIC, NBCOMP, MOT)
 367 :       IF(IERR .NE. 0) GOTO 9999
 368 : C
 369 : C******* Gamma au centre
 370 : C
 371 :       TYPE = 'CHPOINT '
 371 :       CALL LIROBJ(TYPE,IGAMN,1,IRET)
 372 :       IF(IERR .NE. 0) GOTO 9999
 373 :       INDIC = 1
 374 :       NBCOMP = 1
 375 :       MOT = 'SCAL'
 375 :       CALL QUEPOI(IGAMN, MELEMC, INDIC, NBCOMP, MOT)
 376 :       IF(IERR .NE. 0) GOTO 9999
 377 : C
 378 : C
 379 : C********** Gradient of density
 380 : C
 381 :       TYPE = 'CHPOINT '
 381 :       CALL LIROBJ(TYPE,IGRN,1,IRET)
 382 :       IF(IERR .NE. 0) GOTO 9999
 383 :       JGN = 4
 384 :       JGM = IDIM
 385 :       SEGINI MLMVIT
 386 :       MLMVIT.MOTS(1) = 'P1DX'
 387 :       MLMVIT.MOTS(2) = 'P1DY'
 388 :       IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'P1DZ'
 388 :       CALL QUEPO1(IGRN, MELEMC, MLMVIT)
 389 :       SEGSUP MLMVIT
 390 :       IF(IERR .NE. 0) GOTO 9999
 391 : C
 392 : C********** Gradient of speed
 393 : C
 394 :       TYPE = 'CHPOINT '
 394 :       CALL LIROBJ(TYPE,IGVN,1,IRET)
 395 :       IF(IERR .NE. 0) GOTO 9999
 396 :       JGN = 4
 397 :       JGM = IDIM*IDIM
 398 :       SEGINI MLMVIT
 399 :       MLMVIT.MOTS(1) = 'P1DX'
 400 :       MLMVIT.MOTS(2) = 'P1DY'
 401 :       MLMVIT.MOTS(3) = 'P2DX'
 402 :       MLMVIT.MOTS(4) = 'P2DY'
 403 :       IF(IDIM .EQ. 3)THEN
 404 :          MLMVIT.MOTS(1) = 'P1DX'
 405 :          MLMVIT.MOTS(2) = 'P1DY'
 406 :          MLMVIT.MOTS(3) = 'P1DZ'
 407 :          MLMVIT.MOTS(4) = 'P2DX'
 408 :          MLMVIT.MOTS(5) = 'P2DY'
 409 :          MLMVIT.MOTS(6) = 'P2DZ'
 410 :          MLMVIT.MOTS(7) = 'P3DX'
 411 :          MLMVIT.MOTS(8) = 'P3DY'
 412 :          MLMVIT.MOTS(9) = 'P3DZ'
 413 :       ENDIF
 413 :       CALL QUEPO1(IGVN, MELEMC, MLMVIT)
 414 :       SEGSUP MLMVIT
 415 :       IF(IERR .NE. 0) GOTO 9999
 416 : C
 417 : C********** Gradient of pressure
 418 : C
 419 :       TYPE = 'CHPOINT '
 419 :       CALL LIROBJ(TYPE,IGPN,1,IRET)
 420 :       IF(IERR .NE. 0) GOTO 9999
 421 :       JGN = 4
 422 :       JGM = IDIM
 423 :       SEGINI MLMVIT
 424 :       MLMVIT.MOTS(1) = 'P1DX'
 425 :       MLMVIT.MOTS(2) = 'P1DY'
 426 :       IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'P1DZ'
 426 :       CALL QUEPO1(IGPN, MELEMC, MLMVIT)
 427 :       SEGSUP MLMVIT
 428 :       IF(IERR .NE. 0) GOTO 9999
 429 : C
 430 : C********** Limiter of density gradient
 431 : C
 432 :       TYPE = 'CHPOINT '
 432 :       CALL LIROBJ(TYPE,IGLRN,1,IRET)
 433 :       IF(IERR .NE. 0) GOTO 9999
 434 :       INDIC = 1
 435 :       NBCOMP = 1
 436 :       MOT = 'P1  '
 436 :       CALL QUEPOI(IGLRN, MELEMC, INDIC, NBCOMP, MOT)
 437 :       IF(IERR .NE. 0) GOTO 9999
 438 : C     
 439 : C********** Limiter of velocity gradient
 440 : C
 441 :       TYPE = 'CHPOINT '
 441 :       CALL LIROBJ(TYPE,IGLVN,1,IRET)
 442 :       IF(IERR .NE. 0) GOTO 9999
 443 :       JGN = 4
 444 :       JGM = IDIM
 445 :       SEGINI MLMVIT
 446 :       MLMVIT.MOTS(1) = 'P1  '
 447 :       MLMVIT.MOTS(2) = 'P2  '
 448 :       IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'P3  '
 448 :       CALL QUEPO1(IGLVN, MELEMC, MLMVIT)
 449 :       SEGSUP MLMVIT
 450 :       IF(IERR .NE. 0) GOTO 9999
 451 : C
 452 : C********** Limiter of pressure gradient
 453 : C
 454 :       TYPE = 'CHPOINT '
 454 :       CALL LIROBJ(TYPE,IGLPN,1,IRET)
 455 :       IF(IERR .NE. 0) GOTO 9999
 456 :       INDIC = 1
 457 :       NBCOMP = 1
 458 :       MOT = 'P1  '
 458 :       CALL QUEPOI(IGLPN, MELEMC, INDIC, NBCOMP, MOT)
 459 :       IF(IERR .NE. 0) GOTO 9999
 460 : C     
 461 : C********** On va lire les pointeurs des MCHAMLs pour 
 462 : C           le calcul du gradient
 463 : C
 464 : C           Densité
 465 : C
 466 :       TYPE='MCHAML  '
 466 :       CALL  LIROBJ(TYPE,ICRN,1,IRET)
 467 :       IF(IERR.NE.0) GOTO 9999
 468 : C
 469 : C********** Vitesse
 470 : C   
 471 :       TYPE='MCHAML  '
 471 :       CALL  LIROBJ(TYPE,ICVN,1,IRET)
 472 :       IF(IERR .NE. 0) GOTO 9999
 473 : C
 474 : C********** Pression
 475 : C    
 476 :       TYPE='MCHAML  '
 476 :       CALL  LIROBJ(TYPE,ICPN,1,IRET)
 477 :       IF(IERR .NE. 0) GOTO 9999
 478 : C
 479 : C********** On va lire le chpoin limite pour la vitesse
 480 : C
 481 :       TYPE='CHPOINT '
 481 :       CALL LIROBJ(TYPE,IVLIM,1,IRET)
 482 :       IF(IERR .NE. 0) GOTO 9999
 483 : C********** CHPOINT vide?
 484 :       MCHPOI = IVLIM
 485 :       SEGACT MCHPOI
 486 :       ICACCA = MCHPOI.IPCHP(/1)
 487 :       SEGDES MCHPOI
 488 :       IF(ICACCA .EQ. 0)THEN
 489 :          IVLIM=0
 490 :       ELSE
 491 :          JGN = 4
 492 :          JGM = IDIM
 493 :          SEGINI MLMVIT
 494 :          MLMVIT.MOTS(1) = 'UX  '
 495 :          MLMVIT.MOTS(2) = 'UY  '
 496 :          IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ  '
 497 :          ICACCA=0
 497 :          CALL QUEPO1(IVLIM, ICACCA, MLMVIT)
 498 :          IF(IERR .NE. 0) GOTO 9999
 499 :          SEGSUP MLMVIT
 500 :       ENDIF
 501 : C
 502 : C******* Calcul du jacobien
 503 : C
 504 :       IF(IDIM .EQ. 2)THEN
 505 : C        IIMPL = 4 VLH
 506 : C        IIMPL = 5 AUSM+
 507 :          IIMPL2 = IIMPL+3
 507 :          CALL KONJA5(IIMPL2,ILIINC,IROF,IPF,IVITF,IGAMF,
 508 :      &        IRN,IPN,IVN,IGAMN,
 509 :      &        ICHPVO,ICHPSU, INORM, MELEMC, MELEFE, MELEMF, MELTFA
 510 :      &        ,IGRN, IGVN, IGPN,IGLRN, IGLVN, IGLPN,ICRN, ICVN,
 511 :      &        ICPN, IVLIM, MELLIM, IJACO)
 512 :          IF(IERR .NE. 0) GOTO 9999
 513 :       ELSE
 514 : C              Tentative d'utilisation d'une option non implémentée
 514 :          CALL ERREUR(251)
 515 :          GOTO 9999
 516 :       ENDIF
 517 : C
 518 :       TYPE='MATRIK '
 518 :       CALL ECROBJ(TYPE,IJACO)
 519 :  9999 CONTINUE
 520 :       RETURN
 521 :       END
 522 : 
 523 : 
 524 : 
 525 : 
 526 :  
 527 :  
 528 :  
 529 :  
 530 :  
 531 :  

© Cast3M 2003 - All rights reserved.
Disclaimer