1 : C PRIJAC SOURCE CHAT 05/01/13 02:26:47 5004 2 : SUBROUTINE PRIJAC 3 : C************************************************************************ 4 : C 5 : C PROJET : CASTEM 2000 6 : C 7 : C NOM : PRIJAC 8 : C 9 : C DESCRIPTION : Subroutine appellée par PRIMIT 10 : C 11 : C Modelisation 2D/3D des equations d'Euler 12 : C 13 : C Calcul du jacobien dCONS/dPRIM 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 21 : C APPELES (Calcul) : PRIJA1, PRIJA2 22 : C 23 : C************************************************************************ 24 : C 25 : C*** SYNTAXE 26 : C 27 : C Discrétisation en VF "cell-centered" des équations d'Euler pour 28 : C un gaz parfait mono-constituent polytropique 29 : C 30 : C RMAT1 = 'PRIM' 'CONSPRIM' MAIL1 LMOT1 LMOT2 31 : C CHPO1 CHPO2 CHPO3 CHPO4 ; 32 : C 33 : C ENTREES 34 : C 35 : C LMOT1 : objet de type LISTMOTS 36 : C Noms de composantes des variable duales de RMAT1. 37 : C Il contient dans l'ordre suivant: le noms de la densité, 38 : C du momentum, de l'énergie totale par unité de volume 39 : C 40 : C LMOT2 : objet de type LISTMOTS 41 : C Noms de composantes des variable primales de RMAT1. 42 : C Il contient dans l'ordre suivant: le noms de la densité, 43 : C de la vitesse, de la pression. 44 : C 45 : C MAIL1 : SPG des CHPOINTS 46 : C 47 : C CHPO1 : CHPOINT contenant la masse volumique 48 : C (une seule composante, 'SCAL'). 49 : C 50 : C CHPO2 : CHPOINT contenant la vitesse 51 : C (deux/trois composantes 52 : C 'UX', 'UY', 'UZ') 53 : C 54 : C CHPO3 : CHPOINT contenant la pression du gaz 55 : C (une seule composante, 56 : C 'SCAL'). 57 : C 58 : C CHPO4 : CHPOINT contenant le "gamma" du gaz 59 : C (une seule composante, 60 : C 'SCAL'). 61 : C 62 : C SORTIES 63 : C 64 : C RMAT1 : objet de type MATRIK 65 : C (SPG = TAB1 . 'CENTRE') 66 : C 67 : C************************************************************************ 68 : C 69 : C HISTORIQUE (Anomalies et modifications éventuelles) 70 : C 71 : C HISTORIQUE : 72 : C 73 : C************************************************************************ 74 : C 75 : IMPLICIT INTEGER(I-N) 76 : -INC CCOPTIO 77 : -INC SMLMOTS 78 : -INC SMCHPOI 79 : -INC SMELEME 80 : POINTEUR MLMVIT.MLMOTS 81 : C 82 : C**** Variables de COOPTIO 83 : C 84 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR 85 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ 86 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES 87 : C & ,IECHO, IIMPI, IOSPI 88 : C & ,IDIM, IFICLE, IPREFI 89 : C & ,MCOORD 90 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE 91 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU 92 : C & ,NORINC,NORVAL,NORIND,NORVAD 93 : C & ,NUCROU, IPSAUV 94 : C 95 : INTEGER IRET, INDIC, NBCOMP, NESP, JGN, JGM 96 : & ,MELEMC 97 : & ,IJACO, ILIINC, ILIINP, NC 98 : & ,IRN, IVN, IPN, IGAMN 99 : C 100 : CHARACTER*8 TYPE 101 : CHARACTER*4 MOT 102 : CHARACTER*(40) MESERR 103 : C 104 : C********************* 105 : C**** Le SPG ********* 106 : C********************* 107 : C 108 : TYPE='MAILLAGE' 108 : CALL LIROBJ(TYPE,MELEMC,1,IRET) 109 : IF(IERR .NE. 0)GOTO 9999 110 : C 111 : NESP=0 112 : C 113 : C**** La list des inconnues duales (variables conservatives) 114 : C 115 : TYPE='LISTMOTS' 115 : CALL LIROBJ(TYPE,ILIINC,1,IRET) 116 : IF(IERR .NE. 0) GOTO 9999 117 : MLMOTS = ILIINC 118 : SEGACT MLMOTS 119 : NC = MLMOTS.MOTS(/2) 120 : SEGDES MLMOTS 121 : IF(NC .NE. (IDIM+2+NESP))THEN 122 : MOTERR(1:40) = 'LISTINCO = ???' 123 : WRITE(IOIMP,*) MOTERR 124 : C 125 : C******* Message d'erreur standard 126 : C 21 2 127 : C Données incompatibles 128 : C 128 : CALL ERREUR(21) 129 : GOTO 9999 130 : ENDIF 131 : C 132 : C**** La list des inconnues primales (variables primitives) 133 : C 134 : TYPE='LISTMOTS' 134 : CALL LIROBJ(TYPE,ILIINP,1,IRET) 135 : IF(IERR .NE. 0) GOTO 9999 136 : MLMOTS = ILIINP 137 : SEGACT MLMOTS 138 : NC = MLMOTS.MOTS(/2) 139 : SEGDES MLMOTS 140 : IF(NC .NE. (IDIM+2+NESP))THEN 141 : MOTERR(1:40) = 'LISTINCO = ???' 142 : WRITE(IOIMP,*) MOTERR 143 : C 144 : C******* Message d'erreur standard 145 : C 21 2 146 : C Données incompatibles 147 : C 147 : CALL ERREUR(21) 148 : GOTO 9999 149 : ENDIF 150 : C 151 : C******* La densité au centre 152 : C 153 : TYPE = 'CHPOINT ' 153 : CALL LIROBJ(TYPE,IRN,1,IRET) 154 : IF(IERR .NE. 0) GOTO 9999 155 : C 156 : C**** Control du CHPOINT: QUEPOI 157 : C 158 : C INDIC = 1 -> on impose le pointeur du support geometrique (ICEN) 159 : C N.B. Le CHPOINT peut changer de structure pour 160 : C avoir SPG = ICEN!!!! 161 : C INDIC = 0 -> on ne fait que verifier le support geometrique 162 : C (ICEN). Si le SPG sont differents INDIC = -4 en sortie 163 : C 164 : C NBCOMP > 0 -> numero des composantes 165 : C 166 : C MOT = ' ' obligatoire s'on connais pas les noms des composantes 167 : C 168 : INDIC = 1 169 : NBCOMP = 1 170 : MOT = 'SCAL' 170 : CALL QUEPOI(IRN, MELEMC, INDIC, NBCOMP, MOT) 171 : IF(IERR .NE. 0) GOTO 9999 172 : C 173 : C******* La vitesse au centre 174 : C 175 : TYPE = 'CHPOINT ' 175 : CALL LIROBJ(TYPE,IVN,1,IRET) 176 : IF(IERR .NE. 0) GOTO 9999 177 : JGN = 4 178 : JGM = IDIM 179 : SEGINI MLMVIT 180 : MLMVIT.MOTS(1) = 'UX ' 181 : MLMVIT.MOTS(2) = 'UY ' 182 : IF(IDIM .EQ. 3) MLMVIT.MOTS(3) = 'UZ ' 182 : CALL QUEPO1(IVN, MELEMC, MLMVIT) 183 : SEGSUP MLMVIT 184 : IF(IERR .NE. 0) GOTO 9999 185 : C 186 : C******* La pression au centre 187 : C 188 : TYPE = 'CHPOINT ' 188 : CALL LIROBJ(TYPE,IPN,1,IRET) 189 : IF(IERR .NE. 0) GOTO 9999 190 : INDIC = 1 191 : NBCOMP = 1 192 : MOT = 'SCAL' 192 : CALL QUEPOI(IPN, MELEMC, INDIC, NBCOMP, MOT) 193 : IF(IERR .NE. 0) GOTO 9999 194 : C 195 : C******* Gamma au centre 196 : C 197 : TYPE = 'CHPOINT ' 197 : CALL LIROBJ(TYPE,IGAMN,1,IRET) 198 : IF(IERR .NE. 0) GOTO 9999 199 : INDIC = 1 200 : NBCOMP = 1 201 : MOT = 'SCAL' 201 : CALL QUEPOI(IGAMN, MELEMC, INDIC, NBCOMP, MOT) 202 : IF(IERR .NE. 0) GOTO 9999 203 : C 204 : C******* Calcul du jacobien 205 : C 206 : IF(IDIM .EQ. 2)THEN 206 : CALL PRIJA1(MELEMC,ILIINC,ILIINP,IRN,IVN,IPN,IGAMN,IJACO) 207 : IF(IERR .NE. 0) GOTO 9999 208 : ELSE 208 : CALL PRIJA2(MELEMC,ILIINC,ILIINP,IRN,IVN,IPN,IGAMN,IJACO) 209 : IF(IERR .NE. 0) GOTO 9999 210 : ENDIF 211 : C 212 : C**** Ecriture des resultats 213 : C 214 : TYPE='MATRIK ' 214 : CALL ECROBJ(TYPE,IJACO) 215 : 9999 CONTINUE 216 : RETURN 217 : END 218 : 219 : 220 :
© Cast3M 2003 - All rights reserved.
Disclaimer