Download cli151.eso

Back to the list

   1 : C CLI151    SOURCE    CHAT      05/01/12    22:05:52     5004           
   2 :       SUBROUTINE CLI151(MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,ICHPSU,
   3 :      &     IROC,IVITC,IPC,IGAMC,ICHLIM,ICHRES,ICHRLI)
   4 : C************************************************************************
   5 : C
   6 : C PROJET            :  CASTEM 2000
   7 : C
   8 : C NOM               :  CLI151
   9 : C
  10 : C DESCRIPTION       :  Subroutine appellée par CLIM11
  11 : C
  12 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  13 : C      
  14 : C AUTEUR            :  A. BECCANTINI, DRN/DMT/SEMT/LTMF                        
  15 : C
  16 : C************************************************************************
  17 : C
  18 : C APPELES (Calcul)  :  
  19 : C
  20 : C************************************************************************
  21 : C
  22 : C HISTORIQUE (Anomalies et modifications éventuelles)
  23 : C
  24 : C HISTORIQUE :
  25 : C      
  26 : C************************************************************************
  27 : C
  28 :       IMPLICIT INTEGER(I-N)
  29 : -INC CCOPTIO
  30 : -INC SMLMOTS
  31 : -INC SMELEME
  32 :       POINTEUR MELEFC.MELEME
  33 : -INC SMLENTI
  34 :       POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  35 : -INC SMCHPOI
  36 :       POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL, MPRC.MPOVAL,
  37 :      &     MPVC.MPOVAL, MPPC.MPOVAL, MPGAMC.MPOVAL, MPLIM.MPOVAL, 
  38 :      &     MPRES.MPOVAL,  MPRLI.MPOVAL
  39 : C
  40 : C**** Variables de COOPTIO
  41 : C
  42 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  43 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  44 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  45 : C     &        ,IECHO,   IIMPI,  IOSPI
  46 : C     &        ,IDIM,    IFICLE, IPREFI     
  47 : C     &        ,MCOORD
  48 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  49 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  50 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
  51 : C     &        ,NUCROU, IPSAUV
  52 : C
  53 :       INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  54 :      &     ,IGAMC,ICHLIM,ICHRES,ICHRLI,ICEL,NFAC,IFAC
  55 :      &     ,NGF,NGC,NLF,NLC,NLCB
  56 :       REAL*8 VOLU,SURF,GAMC,CNX,CNY,CNZ,CTX,CTY,CTZ,USGM1
  57 :      &     ,CT2X,CT2Y,CT2Z,RC,PC,UXC,UYC,UZC,PF
  58 :      &     ,UNC,UTC,UT2C,CELL(1),FLUX2D(4),FLUX3D(5),CELLT
  59 :       CHARACTER*(8) TYPE
  60 : C
  61 : C
  62 : C**** KRIPAD pour la correspondance global/local
  63 : C
  63 :       CALL KRIPAD(MELEMC,MLEMC)
  64 : C     SEGINI MLEMC 
  64 :       CALL KRIPAD(MELECB,MLEMCB)
  65 : C     SEGINI MLEMCB
  65 :       CALL KRIPAD(MELEMF,MLEMF)
  66 : C     SEGINI MLEMF
  67 : C
  68 : C**** CHPOINTs de la table DOMAINE
  69 : C
  69 :       CALL LICHT(INORM,MPNORM,TYPE,ICEL)
  69 :       CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
  69 :       CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
  70 : C
  71 : C**** LICHT active les MPOVALs en *MOD
  72 : C
  73 : C     SEGACT MPNORM*MOD
  74 : C     SEGACT MPOVSU*MOD
  75 : C     SEGACT MPOVOL*MOD
  76 : C
  77 : C
  78 : C**** CHPOINTs des variables
  79 : C
  79 :       CALL LICHT(IROC,MPRC,TYPE,ICEL)
  79 :       CALL LICHT(IVITC,MPVC,TYPE,ICEL)
  79 :       CALL LICHT(IPC,MPPC,TYPE,ICEL)
  79 :       CALL LICHT(IGAMC,MPGAMC,TYPE,ICEL)
  79 :       CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
  79 :       CALL LICHT(ICHRES,MPRES,TYPE,ICEL)
  79 :       CALL LICHT(ICHRLI,MPRLI,TYPE,ICEL)
  80 : C
  81 : C     SEGACT *MOD
  82 : C     SEGACT *MOD
  83 : C     SEGACT *MOD
  84 : C     SEGACT *MOD
  85 : C     SEGACT *MOD
  86 : C     SEGACT *MOD
  87 : C     SEGACT *MOD
  88 : C
  89 : C
  90 : C**** Boucle sur le face pour le calcul des invariants de
  91 : C     Riemann et du flux
  92 : C
  93 :       SEGACT MELEFC
  94 :       NFAC=MELEFC.NUM(/2)
  95 :       UZC=0.0D0
  96 :       CNZ=0.0D0
  97 :       CTZ=0.0D0
  98 :       CT2X=0.0D0
  99 :       CT2Y=0.0D0
 100 :       CT2Z=0.0D0
 101 :       DO IFAC=1,NFAC,1
 102 :          NGF=MELEFC.NUM(1,IFAC)
 103 :          NGC=MELEFC.NUM(2,IFAC)
 104 :          NLF=MLEMF.LECT(NGF)
 105 :          NLC=MLEMC.LECT(NGC)
 106 :          NLCB=MLEMCB.LECT(NGF)
 107 :          VOLU=MPVOL.VPOCHA(NLC,1)
 108 :          SURF=MPSURF.VPOCHA(NLF,1)
 109 : C        In CASTEM les normales sont sortantes
 110 :          CNX=MPNORM.VPOCHA(NLF,1)
 111 :          CNY=MPNORM.VPOCHA(NLF,2)
 112 :          IF(IDIM.EQ.2)THEN
 113 :             CTX=-1.0D0*CNY
 114 :             CTY=CNX
 115 :          ELSE
 116 :             CNZ=MPNORM.VPOCHA(NLF,3)
 117 :             CTX=MPNORM.VPOCHA(NLF,4)
 118 :             CTY=MPNORM.VPOCHA(NLF,5)
 119 :             CTZ=MPNORM.VPOCHA(NLF,6)
 120 :             CT2X=MPNORM.VPOCHA(NLF,7)
 121 :             CT2Y=MPNORM.VPOCHA(NLF,8)
 122 :             CT2Z=MPNORM.VPOCHA(NLF,9)
 123 :          ENDIF
 124 :          GAMC=MPGAMC.VPOCHA(NLC,1)
 125 :          USGM1=GAMC-1.0D0
 126 :          USGM1=1.0D0/USGM1
 127 : C        Variables au centre
 128 :          RC=MPRC.VPOCHA(NLC,1)
 129 :          UXC=MPVC.VPOCHA(NLC,1)
 130 :          UYC=MPVC.VPOCHA(NLC,2)
 131 :          IF(IDIM.EQ.3)UZC=MPVC.VPOCHA(NLC,3)
 132 :          PC=MPPC.VPOCHA(NLC,1)
 133 : C        Variables à la face
 134 :          PF=MPLIM.VPOCHA(NLCB,1)
 135 : C
 136 : C******* On calcule UN, UT, UT2
 137 : C     
 138 :          UNC=(UXC*CNX)+(UYC*CNY)+(UZC*CNZ)
 139 :          UTC=(UXC*CTX)+(UYC*CTY)+(UZC*CTZ)
 140 :          UT2C=(UXC*CT2X)+(UYC*CT2Y)+(UZC*CT2Z)
 141 : C
 142 : C******* Densite, vitesse, pression sur le bord
 143 : C
 144 :          MPRLI.VPOCHA(NLCB,1)=RC
 145 :          MPRLI.VPOCHA(NLCB,2)=UXC
 146 :          MPRLI.VPOCHA(NLCB,3)=UYC
 147 :          IF(IDIM.EQ.3) MPRLI.VPOCHA(NLCB,4)=UZC
 148 :          MPRLI.VPOCHA(NLCB,IDIM+2)=PF
 149 : C
 150 : C******* Probleme de Riemann entre l'etat gauche
 151 : C        RC,UNC,UTC,UT2C,PC et l'etat droite
 152 : C        RC,UNC,UTC,UT2C,PF
 153 : C        On utilise AUSM+
 154 : C        Flux dans le repaire normale
 155 : C
 156 :          IF(IDIM.EQ.2)THEN
 156 :             CALL FAUSMP(0,
 157 :      &           GAMC,RC,PC,UNC,UTC,
 158 :      &           GAMC,RC,PF,UNC,UTC,
 159 :      &           CELL,CELL,
 160 :      &           FLUX2D,
 161 :      &           CELLT)
 162 : C
 163 : C******* Residuum (son SPG a le meme ordre que MELEFC)
 164 : C
 165 :             MPRES.VPOCHA(IFAC,1)=-1*FLUX2D(1)*SURF/VOLU
 166 :             MPRES.VPOCHA(IFAC,2)=-1*((FLUX2D(2)*CNX)+(FLUX2D(3)*CTX))
 167 :      &           *SURF/VOLU 
 168 :             MPRES.VPOCHA(IFAC,3)=-1*((FLUX2D(2)*CNY)+(FLUX2D(3)*CTY))
 169 :      &           *SURF/VOLU
 170 :             MPRES.VPOCHA(IFAC,4)=-1*FLUX2D(4)*SURF/VOLU
 171 :          ELSE
 171 :             CALL FAUSM3(0,
 172 :      &           GAMC,RC,PC,UNC,UTC,UT2C,
 173 :      &           GAMC,RC,PF,UNC,UTC,UT2C,
 174 :      &           CELL,CELL,
 175 :      &           FLUX3D,
 176 :      &           CELLT)
 177 : C
 178 : C******* Residuum (son SPG a le meme ordre que MELEFC)
 179 : C
 180 :             MPRES.VPOCHA(IFAC,1)=-1*FLUX3D(1)*SURF/VOLU
 181 :             MPRES.VPOCHA(IFAC,2)=-1*((FLUX3D(2)*CNX)+(FLUX3D(3)*CTX)+
 182 :      &           (FLUX3D(4)*CT2X))*SURF/VOLU 
 183 :             MPRES.VPOCHA(IFAC,3)=-1*((FLUX3D(2)*CNY)+(FLUX3D(3)*CTY)+
 184 :      &           (FLUX3D(4)*CT2Z))*SURF/VOLU 
 185 :             MPRES.VPOCHA(IFAC,4)=-1*((FLUX3D(2)*CNZ)+(FLUX3D(3)*CTZ)+
 186 :      &           (FLUX3D(4)*CT2Z))*SURF/VOLU 
 187 :             MPRES.VPOCHA(IFAC,5)=-1*FLUX3D(5)*SURF/VOLU
 188 :          ENDIF
 189 :       ENDDO
 190 : C
 191 :       SEGDES MELEFC
 192 : C      
 193 :       SEGSUP MLEMC
 194 :       SEGSUP MLEMCB
 195 :       SEGSUP MLEMF
 196 : C
 197 :       SEGDES MPNORM
 198 :       SEGDES MPVOL
 199 :       SEGDES MPSURF
 200 :       SEGDES MPRC
 201 :       SEGDES MPPC
 202 :       SEGDES MPVC
 203 :       SEGDES MPGAMC
 204 :       SEGDES MPLIM
 205 :       SEGDES MPRES
 206 :       SEGDES MPRLI
 207 : C
 208 :  9999 CONTINUE
 209 :       RETURN
 210 :       END
 211 : 
 212 : 
 213 : 
 214 : 
 215 :  
 216 :  
 217 :  
 218 :  

© Cast3M 2003 - All rights reserved.
Disclaimer