1 : C PRIJA1 SOURCE MAGN 09/07/30 21:20:27 6458 2 : SUBROUTINE PRIJA1(MELEMC,MLMCON,MLMPRI,IRN,IVN,IPN,IGAMN,IJACO) 3 : C 4 : C************************************************************************ 5 : C 6 : C PROJET : CASTEM 2000 7 : C 8 : C NOM : PRIJA1 9 : C 10 : C DESCRIPTION : Voir PRIJAC 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, 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, RP.IZAFM, 86 : & RUXR.IZAFM, RUXUX.IZAFM, RUXUY.IZAFM, RUXP.IZAFM, 87 : & RUYR.IZAFM, RUYUX.IZAFM, RUYUY.IZAFM, RUYP.IZAFM, 88 : & RETR.IZAFM, RETUX.IZAFM, RETUY.IZAFM, RETP.IZAFM 89 : POINTEUR MLMPRI.MLMOTS, MLMCON.MLMOTS 90 : C 90 : CALL LICHT(IVN,MPVN,TYPE,IGEOM) 90 : CALL LICHT(IRN,MPRN,TYPE,IGEOM) 90 : CALL LICHT(IGAMN,MPGAM,TYPE,IGEOM) 91 : C 92 : C SEGACT MPVN*MOD 93 : C SEGACT MPPN*MOD 94 : C SEGACT MPRN*MOD 95 : C 96 : C**** Maillage des inconnues primales = Maillage des inconnues primales 97 : C = MELEMC 98 : C 99 : C 100 : NRIGE = 7 101 : NMATRI = 1 102 : NKID = 9 103 : NKMT = 7 104 : C 105 : SEGINI MATRIK 106 : IJACO = MATRIK 107 : MATRIK.IRIGEL(1,1) = MELEMC 108 : MATRIK.IRIGEL(2,1) = MELEMC 109 : C 110 : C**** Matrice non symetrique 111 : C 112 : MATRIK.IRIGEL(7,1) = 2 113 : C 114 : NBME = 16 115 : NBSOUS = 1 116 : SEGINI IMATRI 117 : MATRIK.IRIGEL(4,1) = IMATRI 118 : C 119 : SEGACT MLMPRI 120 : IMATRI.LISPRI(1) = MLMPRI.MOTS(1) 121 : IMATRI.LISPRI(2) = MLMPRI.MOTS(2) 122 : IMATRI.LISPRI(3) = MLMPRI.MOTS(3) 123 : IMATRI.LISPRI(4) = MLMPRI.MOTS(4) 124 : IMATRI.LISPRI(5) = MLMPRI.MOTS(1) 125 : IMATRI.LISPRI(6) = MLMPRI.MOTS(2) 126 : IMATRI.LISPRI(7) = MLMPRI.MOTS(3) 127 : IMATRI.LISPRI(8) = MLMPRI.MOTS(4) 128 : IMATRI.LISPRI(9) = MLMPRI.MOTS(1) 129 : IMATRI.LISPRI(10) = MLMPRI.MOTS(2) 130 : IMATRI.LISPRI(11) = MLMPRI.MOTS(3) 131 : IMATRI.LISPRI(12) = MLMPRI.MOTS(4) 132 : IMATRI.LISPRI(13) = MLMPRI.MOTS(1) 133 : IMATRI.LISPRI(14) = MLMPRI.MOTS(2) 134 : IMATRI.LISPRI(15) = MLMPRI.MOTS(3) 135 : IMATRI.LISPRI(16) = MLMPRI.MOTS(4) 136 : SEGDES MLMPRI 137 : C 138 : SEGACT MLMCON 139 : IMATRI.LISDUA(1) = MLMCON.MOTS(1) 140 : IMATRI.LISDUA(2) = MLMCON.MOTS(1) 141 : IMATRI.LISDUA(3) = MLMCON.MOTS(1) 142 : IMATRI.LISDUA(4) = MLMCON.MOTS(1) 143 : IMATRI.LISDUA(5) = MLMCON.MOTS(2) 144 : IMATRI.LISDUA(6) = MLMCON.MOTS(2) 145 : IMATRI.LISDUA(7) = MLMCON.MOTS(2) 146 : IMATRI.LISDUA(8) = MLMCON.MOTS(2) 147 : IMATRI.LISDUA(9) = MLMCON.MOTS(3) 148 : IMATRI.LISDUA(10) = MLMCON.MOTS(3) 149 : IMATRI.LISDUA(11) = MLMCON.MOTS(3) 150 : IMATRI.LISDUA(12) = MLMCON.MOTS(3) 151 : IMATRI.LISDUA(13) = MLMCON.MOTS(4) 152 : IMATRI.LISDUA(14) = MLMCON.MOTS(4) 153 : IMATRI.LISDUA(15) = MLMCON.MOTS(4) 154 : IMATRI.LISDUA(16) = MLMCON.MOTS(4) 155 : SEGDES MLMCON 156 : C 157 : SEGACT MELEMC 158 : NBEL = MELEMC.NUM(/2) 159 : SEGDES MELEMC 160 : NBSOUS = 1 161 : NP = 1 162 : MP = 1 163 : SEGINI RR , RUX , RUY , RP , 164 : & RUXR , RUXUX , RUXUY , RUXP , 165 : & RUYR , RUYUX , RUYUY , RUYP , 166 : & RETR , RETUX , RETUY , RETP 167 : C 168 : C**** Duale = IMATRI.LISDUA(1) = 'RN' 169 : C Primale = IMATRI.LISPRI(4) = 'P' 170 : C -> IMATRI.LIZAFM(1,4) = RP 171 : C 172 : IMATRI.LIZAFM(1,1) = RR 173 : IMATRI.LIZAFM(1,2) = RUX 174 : IMATRI.LIZAFM(1,3) = RUY 175 : IMATRI.LIZAFM(1,4) = RP 176 : IMATRI.LIZAFM(1,5) = RUXR 177 : IMATRI.LIZAFM(1,6) = RUXUX 178 : IMATRI.LIZAFM(1,7) = RUXUY 179 : IMATRI.LIZAFM(1,8) = RUXP 180 : IMATRI.LIZAFM(1,9) = RUYR 181 : IMATRI.LIZAFM(1,10) = RUYUX 182 : IMATRI.LIZAFM(1,11) = RUYUY 183 : IMATRI.LIZAFM(1,12) = RUYP 184 : IMATRI.LIZAFM(1,13) = RETR 185 : IMATRI.LIZAFM(1,14) = RETUX 186 : IMATRI.LIZAFM(1,15) = RETUY 187 : IMATRI.LIZAFM(1,16) = RETP 188 : C 189 : DO ICEN = 1, NBEL, 1 190 : RHO=MPRN.VPOCHA(ICEN,1) 191 : UX=MPVN.VPOCHA(ICEN,1) 192 : UY=MPVN.VPOCHA(ICEN,2) 193 : GAMMA=MPGAM.VPOCHA(ICEN,1) 194 : C 195 : C********AB.AM(IFAC,IPRIM,IDUAL) 196 : C A = nom de l'inconnu duale (Ro,rUX,rUY,RET) 197 : C B = nom de l'inconnu primale (Ro,UX,UY,P) 198 : C 199 : C******* Dual RN 200 : C 201 : RR.AM(ICEN,1,1) = 1.0D0 202 : RUX.AM(ICEN,1,1) = 0.0D0 203 : RUY.AM(ICEN,1,1) = 0.0D0 204 : RP.AM(ICEN,1,1) = 0.0D0 205 : C 206 : C******* Dual RUXN 207 : C 208 : RUXR.AM(ICEN,1,1) = UX 209 : RUXUX.AM(ICEN,1,1) = RHO 210 : RUXUY.AM(ICEN,1,1) = 0.0D0 211 : RUXP.AM(ICEN,1,1) = 0.0D0 212 : C 213 : C******* Dual RUYN 214 : C 215 : RUYR.AM(ICEN,1,1) = UY 216 : RUYUX.AM(ICEN,1,1) = 0.0D0 217 : RUYUY.AM(ICEN,1,1) = RHO 218 : RUYP.AM(ICEN,1,1) = 0.0D0 219 : C 220 : C********Dual RETN 221 : C 222 : RETR.AM(ICEN,1,1) = 0.5D0*((UX*UX)+(UY*UY)) 223 : RETUX.AM(ICEN,1,1) = RHO*UX 224 : RETUY.AM(ICEN,1,1) = RHO*UY 225 : RETP.AM(ICEN,1,1) = 1.0D0/(GAMMA - 1.0D0) 226 : C 227 : ENDDO 228 : C 229 : SEGDES MPVN 230 : SEGDES MPRN 231 : SEGDES MPGAM 232 : C 233 : SEGDES MATRIK 234 : SEGDES IMATRI 235 : C 236 : SEGDES RR , RUX , RUY , RP , 237 : & RUXR , RUXUX , RUXUY , RUXP , 238 : & RUYR , RUYUX , RUYUY , RUYP , 239 : & RETR , RETUX , RETUY , RETP 240 : C 241 : RETURN 242 : END 243 : 244 : 245 : 246 : 247 : 248 :
© Cast3M 2003 - All rights reserved.
Disclaimer