Download prijac.eso

Back to the list

   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