Download prija2.eso

Back to the list

   1 : C PRIJA2    SOURCE    MAGN      09/07/30    21:20:29     6458           
   2 :       SUBROUTINE PRIJA2(MELEMC,MLMCON,MLMPRI,IRN,IVN,IPN,IGAMN,IJACO)
   3 : C
   4 : C************************************************************************
   5 : C
   6 : C PROJET            :  CASTEM 2000
   7 : C
   8 : C NOM               :  PRIJA2
   9 : C
  10 : C DESCRIPTION       :  Voir PRIJA1
  10 : C                      Cas deux dimensions, gaz "calorically perfect"
  11 : C     
  12 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  13 : C      
  14 : C AUTEUR            :  A. BECCANTINI, DM2S/SFME/LTMF
  15 : C
  16 : C************************************************************************
  17 : C
  18 : C ENTREES
  19 : C
  20 : C     MELEMC   : SPG des CHPOINTs
  21 : C
  22 : C     MLMPRI : liste des inconnues primitives (P,v,T)
  23 : C
  24 : C     MLMCON : liste des inconnues conservatives (rho, rhov, rhoet)
  25 : C
  26 : C     IRN    : CHPOINT CENTRE  contenant la densité
  27 : C
  28 : C     IVN    : CHPOINT CENTRE  contenant la vitesse
  29 : C
  30 : C     IPN    : CHPOINT CENTRE  contenant la pression
  31 : C
  32 : C     IGAM   : CHPOINT CENTRE  contenant le gamma
  33 : C
  34 : C SORTIES
  35 : C
  36 : C     IJACO  : pointeur de la MATRIK jacobienne
  37 : C
  38 : C************************************************************************
  39 : C
  40 : C HISTORIQUE (Anomalies et modifications éventuelles)
  41 : C
  42 : C HISTORIQUE : crée le 29.05.02
  43 : C      
  44 : C************************************************************************
  45 : C
  46 : C
  47 : C N.B.: On suppose qu'on a déjà controllé RO, P > 0
  48 : C                                         GAMMA \in (1,3)
  49 : C       Si non il faut le faire!!!
  50 : C
  51 : C************************************************************************
  52 : C               
  53 : C
  54 : C**** Variables de COOPTIO
  55 : C
  56 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  57 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  58 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  59 : C     &        ,IECHO,   IIMPI,  IOSPI
  60 : C     &        ,IDIM
  61 : C     &        ,MCOORD      
  62 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  63 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  64 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
  65 : C     &        ,NUCROU, IPSAUV, IFICLE, IPREFI     
  66 : C
  67 :       IMPLICIT INTEGER(I-N)
  68 :       INTEGER  IRN, IVN, IPN, IGAMN, IJACO, IGEOM, ICEN
  69 :      &       , MP, NP,  NBEL, NBME, NBSOUS
  70 :      &       , NRIGE, NMATRI, NKID, NKMT
  71 : C
  72 :       REAL*8 RHO,UX, UY, UZ, GAMMA
  73 :       CHARACTER*8 TYPE
  74 : C
  75 : C**** LES INCLUDES
  76 : C
  77 : -INC CCOPTIO
  78 : -INC SMCHPOI
  79 : -INC SMMATRIK
  80 : -INC SMELEME
  81 : -INC SMLMOTS
  82 : -INC SMLENTI
  83 :       POINTEUR MPVN.MPOVAL, MPRN.MPOVAL, MPGAM.MPOVAL
  84 :       POINTEUR MELEMC.MELEME
  85 :       POINTEUR RR.IZAFM, RUX.IZAFM, RUY.IZAFM, RUZ.IZAFM, RP.IZAFM,
  86 :      &         UXR.IZAFM, UXUX.IZAFM, UXUY.IZAFM, UXUZ.IZAFM, 
  87 :      &         UXP.IZAFM,
  88 :      &         UYR.IZAFM, UYUX.IZAFM, UYUY.IZAFM, UYUZ.IZAFM, 
  89 :      &         UYP.IZAFM,
  90 :      &         UZR.IZAFM, UZUX.IZAFM, UZUY.IZAFM, UZUZ.IZAFM, 
  91 :      &         UZP.IZAFM,
  92 :      &         RETR.IZAFM, RETUX.IZAFM, RETUY.IZAFM, RETUZ.IZAFM, 
  93 :      &         RETP.IZAFM
  94 :       POINTEUR MLMPRI.MLMOTS, MLMCON.MLMOTS
  95 : C
  95 :       CALL LICHT(IVN,MPVN,TYPE,IGEOM)
  95 :       CALL LICHT(IRN,MPRN,TYPE,IGEOM)
  95 :       CALL LICHT(IGAMN,MPGAM,TYPE,IGEOM)
  96 : C
  97 : C     SEGACT MPVN*MOD
  98 : C     SEGACT MPPN*MOD
  99 : C     SEGACT MPRN*MOD
 100 : C
 101 : C**** Maillage des inconnues primales = Maillage des inconnues primales
 102 : C     = MELEMC
 103 : C
 104 : C      
 105 :       NRIGE = 7
 106 :       NMATRI = 1
 107 :       NKID = 9
 108 :       NKMT = 7
 109 : C
 110 :       SEGINI MATRIK
 111 :       IJACO = MATRIK
 112 :       MATRIK.IRIGEL(1,1) = MELEMC
 113 :       MATRIK.IRIGEL(2,1) = MELEMC
 114 : C
 115 : C**** Matrice non symetrique
 116 : C
 117 :       MATRIK.IRIGEL(7,1) = 2
 118 : C
 119 :       NBME = 25
 120 :       NBSOUS = 1
 121 :       SEGINI IMATRI
 122 :       MATRIK.IRIGEL(4,1) = IMATRI
 123 : C
 124 :       SEGACT MLMPRI
 125 : C-----------------------------------------------
 126 :       IMATRI.LISPRI(1) = MLMPRI.MOTS(1)
 127 :       IMATRI.LISPRI(2) = MLMPRI.MOTS(2)
 128 :       IMATRI.LISPRI(3) = MLMPRI.MOTS(3)
 129 :       IMATRI.LISPRI(4) = MLMPRI.MOTS(4)
 130 :       IMATRI.LISPRI(5) = MLMPRI.MOTS(5)
 131 : C-----------------------------------------------
 132 :       IMATRI.LISPRI(6) = MLMPRI.MOTS(1)
 133 :       IMATRI.LISPRI(7) = MLMPRI.MOTS(2)
 134 :       IMATRI.LISPRI(8) = MLMPRI.MOTS(3)
 135 :       IMATRI.LISPRI(9) = MLMPRI.MOTS(4)
 136 :       IMATRI.LISPRI(10) = MLMPRI.MOTS(5)
 137 : C-----------------------------------------------
 138 :       IMATRI.LISPRI(11) = MLMPRI.MOTS(1)
 139 :       IMATRI.LISPRI(12) = MLMPRI.MOTS(2)
 140 :       IMATRI.LISPRI(13) = MLMPRI.MOTS(3)
 141 :       IMATRI.LISPRI(14) = MLMPRI.MOTS(4)
 142 :       IMATRI.LISPRI(15) = MLMPRI.MOTS(5)
 143 : C-----------------------------------------------
 144 :       IMATRI.LISPRI(16) = MLMPRI.MOTS(1)
 145 :       IMATRI.LISPRI(17) = MLMPRI.MOTS(2)
 146 :       IMATRI.LISPRI(18) = MLMPRI.MOTS(3)
 147 :       IMATRI.LISPRI(19) = MLMPRI.MOTS(4)
 148 :       IMATRI.LISPRI(20) = MLMPRI.MOTS(5)
 149 : C-----------------------------------------------
 150 :       IMATRI.LISPRI(21) = MLMPRI.MOTS(1)
 151 :       IMATRI.LISPRI(22) = MLMPRI.MOTS(2)
 152 :       IMATRI.LISPRI(23) = MLMPRI.MOTS(3)
 153 :       IMATRI.LISPRI(24) = MLMPRI.MOTS(4)
 154 :       IMATRI.LISPRI(25) = MLMPRI.MOTS(5)
 155 : C-----------------------------------------------
 156 :       SEGDES MLMPRI
 157 : C
 158 :       SEGACT MLMCON
 159 : C-----------------------------------------------
 160 :       IMATRI.LISDUA(1) = MLMCON.MOTS(1)
 161 :       IMATRI.LISDUA(2) = MLMCON.MOTS(1)
 162 :       IMATRI.LISDUA(3) = MLMCON.MOTS(1)
 163 :       IMATRI.LISDUA(4) = MLMCON.MOTS(1)
 164 :       IMATRI.LISDUA(5) = MLMCON.MOTS(1)
 165 : C-----------------------------------------------
 166 :       IMATRI.LISDUA(6) = MLMCON.MOTS(2)
 167 :       IMATRI.LISDUA(7) = MLMCON.MOTS(2)
 168 :       IMATRI.LISDUA(8) = MLMCON.MOTS(2)
 169 :       IMATRI.LISDUA(9) = MLMCON.MOTS(2)
 170 :       IMATRI.LISDUA(10) = MLMCON.MOTS(2)
 171 : C-----------------------------------------------
 172 :       IMATRI.LISDUA(11) = MLMCON.MOTS(3)
 173 :       IMATRI.LISDUA(12) = MLMCON.MOTS(3)
 174 :       IMATRI.LISDUA(13) = MLMCON.MOTS(3)
 175 :       IMATRI.LISDUA(14) = MLMCON.MOTS(3)
 176 :       IMATRI.LISDUA(15) = MLMCON.MOTS(3)
 177 : C-----------------------------------------------
 178 :       IMATRI.LISDUA(16) = MLMCON.MOTS(4)
 179 :       IMATRI.LISDUA(17) = MLMCON.MOTS(4)
 180 :       IMATRI.LISDUA(18) = MLMCON.MOTS(4)
 181 :       IMATRI.LISDUA(19) = MLMCON.MOTS(4)
 182 :       IMATRI.LISDUA(20) = MLMCON.MOTS(4)
 183 : C-----------------------------------------------
 184 :       IMATRI.LISDUA(21) = MLMCON.MOTS(5)
 185 :       IMATRI.LISDUA(22) = MLMCON.MOTS(5)
 186 :       IMATRI.LISDUA(23) = MLMCON.MOTS(5)
 187 :       IMATRI.LISDUA(24) = MLMCON.MOTS(5)
 188 :       IMATRI.LISDUA(25) = MLMCON.MOTS(5)
 189 : C----------------------------------------------- 
 190 :       SEGDES MLMCON
 191 : C
 192 :       SEGACT MELEMC
 193 :       NBEL = MELEMC.NUM(/2)
 194 :       SEGDES MELEMC
 195 :       NBSOUS = 1
 196 :       NP = 1
 197 :       MP = 1
 198 :       SEGINI   RR  , RUX , RUY , RUZ, RP ,
 199 :      &         UXR , UXUX , UXUY , UXUZ, UXP ,
 200 :      &         UYR , UYUX , UYUY , UYUZ, UYP ,
 201 :      &         UZR , UZUX , UZUY , UZUZ, UZP ,
 202 :      &         RETR , RETUX , RETUY , RETUZ, RETP 
 203 : C
 204 : C**** Duale = IMATRI.LISDUA(1) = 'RN'
 205 : C     Primale = IMATRI.LISPRI(4) = 'P'
 206 : C     -> IMATRI.LIZAFM(1,4) = RP
 207 : C
 208 : C-----------------------------------------------
 209 :       IMATRI.LIZAFM(1,1) = RR
 210 :       IMATRI.LIZAFM(1,2) = RUX
 211 :       IMATRI.LIZAFM(1,3) = RUY
 212 :       IMATRI.LIZAFM(1,4) = RUZ
 213 :       IMATRI.LIZAFM(1,5) = RP
 214 : C-----------------------------------------------
 215 :       IMATRI.LIZAFM(1,6) = UXR
 216 :       IMATRI.LIZAFM(1,7) = UXUX
 217 :       IMATRI.LIZAFM(1,8) = UXUY
 218 :       IMATRI.LIZAFM(1,9) = UXUZ
 219 :       IMATRI.LIZAFM(1,10) = UXP
 220 : C-----------------------------------------------
 221 :       IMATRI.LIZAFM(1,11) = UYR
 222 :       IMATRI.LIZAFM(1,12) = UYUX
 223 :       IMATRI.LIZAFM(1,13) = UYUY
 224 :       IMATRI.LIZAFM(1,14) = UYUZ
 225 :       IMATRI.LIZAFM(1,15) = UYP
 226 : C------------------------------------------------ 
 227 :       IMATRI.LIZAFM(1,16) = UZR
 228 :       IMATRI.LIZAFM(1,17) = UZUX
 229 :       IMATRI.LIZAFM(1,18) = UZUY
 230 :       IMATRI.LIZAFM(1,19) = UZUZ
 231 :       IMATRI.LIZAFM(1,20) = UZP
 232 : C-----------------------------------------------
 233 :       IMATRI.LIZAFM(1,21) = RETR
 234 :       IMATRI.LIZAFM(1,22) = RETUX
 235 :       IMATRI.LIZAFM(1,23) = RETUY
 236 :       IMATRI.LIZAFM(1,24) = RETUZ
 237 :       IMATRI.LIZAFM(1,25) = RETP
 238 : C-----------------------------------------------
 239 : C
 240 :       DO ICEN = 1, NBEL, 1
 241 :          RHO=MPRN.VPOCHA(ICEN,1)
 242 :          UX=MPVN.VPOCHA(ICEN,1)
 243 :          UY=MPVN.VPOCHA(ICEN,2)
 244 :          UZ=MPVN.VPOCHA(ICEN,3)
 245 :          GAMMA=MPGAM.VPOCHA(ICEN,1)
 246 : C     
 247 : C********AB.AM(IFAC,IPRIM,IDUAL)
 248 : C        A = nom de l'inconnu duale (Ro,rUX,rUY,RET)
 249 : C        B = nom de l'inconnu primale (Ro,UX,UY,P)
 250 : C
 251 : C******* Dual RN
 252 : C
 253 :          RR.AM(ICEN,1,1)  = 1.0D0
 254 :          RUX.AM(ICEN,1,1) = 0.0D0
 255 :          RUY.AM(ICEN,1,1) = 0.0D0
 256 :          RUZ.AM(ICEN,1,1) = 0.0D0
 257 :          RP.AM(ICEN,1,1)  = 0.0D0
 258 : C
 259 : C******* Dual RUXN
 260 : C
 261 :          UXR.AM(ICEN,1,1) = UX
 262 :          UXUX.AM(ICEN,1,1) = RHO
 263 :          UXUY.AM(ICEN,1,1) = 0.0D0
 264 :          UXUZ.AM(ICEN,1,1) = 0.0D0
 265 :          UXP.AM(ICEN,1,1) = 0.0D0
 266 : C
 267 : C******* Dual RUYN
 268 : C
 269 :          UYR.AM(ICEN,1,1) = UY
 270 :          UYUX.AM(ICEN,1,1) = 0.0D0
 271 :          UYUY.AM(ICEN,1,1) = RHO
 272 :          UYUZ.AM(ICEN,1,1) = 0.0D0
 273 :          UYP.AM(ICEN,1,1) = 0.0D0
 274 : C
 275 : C******* Dual RUZN
 276 : C
 277 :          UZR.AM(ICEN,1,1) = UZ
 278 :          UZUX.AM(ICEN,1,1) = 0.0D0
 279 :          UZUY.AM(ICEN,1,1) = 0.0D0
 280 :          UZUZ.AM(ICEN,1,1) = RHO
 281 :          UZP.AM(ICEN,1,1) = 0.0D0
 282 : C
 283 : C********Dual RETN 
 284 : C
 285 :          RETR.AM(ICEN,1,1) = 0.5D0*((UX*UX)+(UY*UY)+(UZ*UZ))
 286 :          RETUX.AM(ICEN,1,1) = RHO*UX
 287 :          RETUY.AM(ICEN,1,1) = RHO*UY
 288 :          RETUZ.AM(ICEN,1,1) = RHO*UZ
 289 :          RETP.AM(ICEN,1,1) = 1.0D0/(GAMMA - 1.0D0)
 290 : C
 291 :       ENDDO
 292 : C
 293 :       SEGDES MPVN
 294 :       SEGDES MPRN
 295 :       SEGDES MPGAM
 296 : C
 297 :       SEGDES MATRIK
 298 :       SEGDES IMATRI
 299 : C
 300 :       SEGINI   RR  , RUX , RUY , RUZ, RP ,
 301 :      &         UXR , UXUX , UXUY , UXUZ, UXP ,
 302 :      &         UYR , UYUX , UYUY , UYUZ, UYP ,
 303 :      &         UZR , UZUX , UZUY , UZUZ, UZP ,
 304 :      &         RETR , RETUX , RETUY , RETUZ, RETP 
 305 : C
 306 :       RETURN
 307 :       END
 308 :  
 309 :  
 310 :  
 311 :  
 312 :  
 313 :  

© Cast3M 2003 - All rights reserved.
Disclaimer