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