Download cl281t.eso

Back to the list

   1 : C CL281T    SOURCE    CHAT      05/01/12    22:04:15     5004           
   2 :       SUBROUTINE CL281T(NSP,MELEMF,MELEMC,MELECB,MELEFC,INORM,ICHPVO,
   3 :      &     ICHPSU,LRECP,LRECV,ICHLIM,ICHRES,ICHRLI)
   4 : C************************************************************************
   5 : C
   6 : C PROJET            :  CASTEM 2000
   7 : C
   8 : C NOM               :  CL281T
   9 : C
  10 : C DESCRIPTION       :  Subroutine appellée par CLIM22
  11 : C                       calcul de RESIDU et CLIM at the board
  12 : C                       OPTION: 'INSS' 2D with turbulence (k-\eps)
  13 : C                        "supersonic inlet"
  14 : C
  15 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  16 : C      
  17 : C AUTEUR            :  S.Kudriakov, DEN/DM2S/SFME/LTMF                        
  18 : C
  19 : C************************************************************************
  20 : C ENTREES :   NSP (type ENTIER) : full number of species  
  21 : C                                 ('ESPEULE' + 1) ;
  22 : C             MELEMF (type MELEME) : maillage des faces des
  23 : C                                             éléments. 
  24 : C             MELEMC (type MELEME) : maillage des centres des
  25 : C                                             éléments.
  26 : C             MELECB (type MELEME) : maillage des centres des éléments
  27 : C                                    de la frontière  
  28 : C             MELEFC (type MELEME) : connectivités face-(centre
  29 : C                                             gauche, centre droit).
  30 : C             INORM  (type MCHPOI) : normales at the faces
  31 : C             ICHPVO (type MCHPOI) : volumes of the cells             
  32 : C             ICHPSU (type MCHPOI) : surfaces of the cell-interfaces
  33 : C             LRECP  (type MLREEL) : list of CP's of the species
  34 : C             LRECV  (type MLREEL) : list of CV's of the species
  35 : C             ICHLIM (type MCHPOI) : boundary conditions at the centers
  36 : C                                    of the boundary
  37 : C-----------------------------------------------------
  38 : C SORTIES:    ICHRES (type MCHPOI) : the contribution to the residuum
  39 : C                                    due to the boundary conditions        
  40 : C                                    given at the centres of the cells
  41 : C                                    next to the boundary
  42 : C             ICHRLI (type MCHPOI) : the values at the boundary faces
  43 : C                                    found by the procedure.             
  44 : C
  45 : C APPELES (Calcul)  :  
  46 : C
  47 : C************************************************************************
  48 : C
  49 : C HISTORIQUE (Anomalies et modifications éventuelles)
  50 : C
  51 : C HISTORIQUE :
  52 : C      
  53 : C************************************************************************
  54 : C
  55 :       IMPLICIT INTEGER(I-N)
  56 : -INC CCOPTIO
  57 : -INC SMLMOTS
  58 : -INC SMELEME
  59 :       POINTEUR MELEFC.MELEME, MELEMF.MELEME,MELEMC.MELEME,MELECB.MELEME
  60 : -INC SMLENTI
  61 :       POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  62 : -INC SMCHPOI
  63 :       POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL,
  64 :      &     MPLIM.MPOVAL, MPRES.MPOVAL, MPRLI.MPOVAL
  65 : C----------------------------------------
  66 : C**** Variables de COOPTIO
  67 : C----------------------------------------
  68 : C      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  69 : C     &        ,IOTER,   IOLEC,  IOIMP,     IOCAR,  IOACQ
  70 : C     &        ,IOPER,   IOSGB,  IOGRA,     IOSAU,  IORES
  71 : C     &        ,IECHO,   IIMPI,  IOSPI
  72 : C     &        ,IDIM,    IFICLE, IPREFI     
  73 : C     &        ,MCOORD
  74 : C     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  75 : C     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  76 : C     &        ,NORINC,NORVAL,NORIND,NORVAD
  77 : C     &        ,NUCROU, IPSAUV
  78 : C
  79 :       INTEGER INORM,ICHPVO,ICHPSU
  80 :      &     ,ICHLIM,ICHRES,ICHRLI,ICEL,NFAC,IFAC
  81 :      &     ,NGF,NGC,NLF,NLC,NLCB,LRECP,LRECV,I,NSP
  82 :       REAL*8 VOLU,SURF,CNX,CNY,CNZ,CTX,CTY,CTZ
  83 :      &     ,CT2X,CT2Y,CT2Z,RF,PF,UXF,UYF,UZF,TOP,BOT
  84 :      &     ,UNF,UTF,UT2F,GAMF
  85 :      &     ,UT,UT2,UN,RHO,P,UX,UY,UZ
  86 :      &     ,KAF,EPSF  
  87 :       CHARACTER*(8) TYPE
  88 : C------------------------------------------------------------
  89 : -INC SMLREEL
  90 :        POINTEUR MLRECP.MLREEL, MLRECV.MLREEL      
  91 : C-------------------------------------------------------
  92 : C**********  Les CP's and CV's   ***********************
  93 : C-------------------------------------------------------
  94 :       SEGMENT GCONST
  95 :          REAL*8 GC(NSP)
  96 :       ENDSEGMENT
  97 :       POINTEUR CP.GCONST, CV.GCONST 
  98 : C-------------------------------------------------------------
  99 : C******* Les fractionines massiques **************************
 100 : C-------------------------------------------------------------
 101 :       SEGMENT FRAMAS
 102 :          REAL*8 YET(NSP)
 103 :       ENDSEGMENT
 104 :       POINTEUR YF.FRAMAS
 105 : C------------------------------------------------------
 106 : C**** KRIPAD pour la correspondance global/local
 107 : C------------------------------------------------------
 107 :       CALL KRIPAD(MELEMC,MLEMC)
 107 :       CALL KRIPAD(MELECB,MLEMCB)
 107 :       CALL KRIPAD(MELEMF,MLEMF)
 108 : C------------------------------------------------------
 109 : C**** CHPOINTs de la table DOMAINE
 110 : C------------------------------------------------------
 110 :       CALL LICHT(INORM,MPNORM,TYPE,ICEL)
 110 :       CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
 110 :       CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
 111 : C------------------------------------------------------
 112 : C**** CHPOINTs des variables
 113 : C------------------------------------------------------
 113 :       CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
 113 :       CALL LICHT(ICHRES,MPRES,TYPE,ICEL)
 113 :       CALL LICHT(ICHRLI,MPRLI,TYPE,ICEL)
 114 : C---------------------------------------------------------
 115 : C**** Boucle sur le face pour le calcul des invariants de
 116 : C     Riemann et du flux
 117 : C---------------------------------------------------------
 118 :       SEGACT MELEFC
 119 :       NFAC=MELEFC.NUM(/2)
 120 :       UZF=0.0D0
 121 :       CNZ=0.0D0
 122 :       CTZ=0.0D0
 123 :       CT2X=0.0D0
 124 :       CT2Y=0.0D0
 125 :       CT2Z=0.0D0
 126 :       DO 1 IFAC=1,NFAC,1
 127 :          NGF=MELEFC.NUM(1,IFAC)
 128 :          NGC=MELEFC.NUM(2,IFAC)
 129 :          NLF=MLEMF.LECT(NGF)
 130 :          NLC=MLEMC.LECT(NGC)
 131 :          NLCB=MLEMCB.LECT(NGF)
 132 :          VOLU=MPVOL.VPOCHA(NLC,1)
 133 :          SURF=MPSURF.VPOCHA(NLF,1)
 134 : C----------------------------------------------
 135 : C        In CASTEM les normales sont sortantes
 136 : C----------------------------------------------
 137 :          CNX=-1*MPNORM.VPOCHA(NLF,1)
 138 :          CNY=-1*MPNORM.VPOCHA(NLF,2)
 139 :          IF(IDIM.EQ.2)THEN
 140 :             CTX=-1.0D0*CNY
 141 :             CTY=CNX
 142 :          ELSE
 143 :             CNZ=-1*MPNORM.VPOCHA(NLF,3)
 144 :             CTX=-1*MPNORM.VPOCHA(NLF,4)
 145 :             CTY=-1*MPNORM.VPOCHA(NLF,5)
 146 :             CTZ=-1*MPNORM.VPOCHA(NLF,6)
 147 :             CT2X=-1*MPNORM.VPOCHA(NLF,7)
 148 :             CT2Y=-1*MPNORM.VPOCHA(NLF,8)
 149 :             CT2Z=-1*MPNORM.VPOCHA(NLF,9)
 150 :          ENDIF
 151 : C----------------------------------------
 152 :        SEGINI CP, CV    
 153 :        MLRECP = LRECP
 154 :        MLRECV = LRECV
 155 :        SEGACT MLRECP, MLRECV      
 156 :        DO 10 I=1,(NSP-1)
 157 :            CP.GC(I)=MLRECP.PROG(I)
 158 :            CV.GC(I)=MLRECV.PROG(I)
 159 :  10    CONTINUE
 160 :        CP.GC(NSP)=MLRECP.PROG(NSP)
 161 :        CV.GC(NSP)=MLRECV.PROG(NSP)
 162 : C----------------------------
 163 : C        Variables à la face
 164 : C----------------------------
 165 :          RF=MPLIM.VPOCHA(NLCB,1)
 166 :          UXF=MPLIM.VPOCHA(NLCB,2)
 167 :          UYF=MPLIM.VPOCHA(NLCB,3)
 168 :          IF(IDIM.EQ.3)UZF=MPLIM.VPOCHA(NLCB,4)
 169 :          PF=MPLIM.VPOCHA(NLCB,IDIM+2)
 170 :          SEGINI YF
 171 :          DO 101 I=1,(NSP-1)
 172 :            YF.YET(I)=MPLIM.VPOCHA(NLCB,IDIM+2+I)
 173 :  101     CONTINUE 
 174 :          KAF=MPLIM.VPOCHA(NLCB,IDIM+NSP+2)
 175 :          EPSF=MPLIM.VPOCHA(NLCB,IDIM+NSP+3)
 176 : c-------------------------------------------------------------
 177 : c  Computing GAMMA at the face-center 
 178 : c-------------------------------------------------------------
 179 :          top=0.0D0
 180 :          bot=0.0D0
 181 :          do 103  i=1,(nsp-1)
 182 :           top=top+yf.yet(i)*(cp.gc(i)-cp.gc(nsp))
 183 :           bot=bot+yf.yet(i)*(cv.gc(i)-cv.gc(nsp))
 184 :  103     continue  
 185 :          top=cp.gc(nsp)+top
 186 :          bot=cv.gc(nsp)+bot
 187 :          GAMF=top/bot 
 188 : C---------------------------------------
 189 : C******* On calcule UN, UT, UT2, ASON, S 
 190 : C---------------------------------------     
 191 :          UNF=(UXF*CNX)+(UYF*CNY)+(UZF*CNZ)
 192 :          UTF=(UXF*CTX)+(UYF*CTY)+(UZF*CTZ)
 193 :          UT2F=(UXF*CT2X)+(UYF*CT2Y)+(UZF*CT2Z)
 194 : C-----------------------------------------------
 195 : C******* Densite, vitesse, pression sur le bord
 196 : C-----------------------------------------------
 197 :          UN = UNF 
 198 :          UT=UTF
 199 :          UT2=UT2F
 200 :          RHO = RF
 201 :          P = PF 
 202 :          UX=(UN*CNX)+(UT*CTX)+(UT2*CT2X)
 203 :          UY=(UN*CNY)+(UT*CTY)+(UT2*CT2Y)
 204 :          UZ=(UN*CNZ)+(UT*CTZ)+(UT2*CT2Z)
 205 : C----------------------------------------
 206 :          MPRLI.VPOCHA(NLCB,1)=RHO
 207 :          MPRLI.VPOCHA(NLCB,2)=UX
 208 :          MPRLI.VPOCHA(NLCB,3)=UY
 209 :          IF(IDIM.EQ.3) MPRLI.VPOCHA(NLCB,4)=UZ
 210 :          MPRLI.VPOCHA(NLCB,IDIM+2)=P
 211 :          do 104  i=1,(nsp-1)
 212 :            MPRLI.VPOCHA(NLCB,IDIM+2+I)=YF.YET(I) 
 213 :  104     continue 
 214 :          MPRLI.VPOCHA(NLCB,IDIM+NSP+2)=KAF
 215 :          MPRLI.VPOCHA(NLCB,IDIM+NSP+3)=EPSF
 216 : C-------------------------------------------------------
 217 : C******* Residuum (son SPG a le meme ordre que MELEFC)
 218 : C-------------------------------------------------------
 219 :          MPRES.VPOCHA(IFAC,1)=RHO*UN*SURF/VOLU
 220 :          MPRES.VPOCHA(IFAC,2)=(RHO*UN*UX+(P*CNX))*SURF/VOLU
 221 :          MPRES.VPOCHA(IFAC,3)=(RHO*UN*UY+(P*CNY))*SURF/VOLU
 222 :          IF(IDIM.EQ.3) 
 223 :      &        MPRES.VPOCHA(IFAC,4)=(RHO*UN*UZ+(P*CNZ))*SURF/VOLU
 224 :          MPRES.VPOCHA(IFAC,IDIM+2)=((UN*GAMF*P/(GAMF-1.0D0)) + 
 225 :      &        (0.5D0*RHO*UN*(UN*UN+UT*UT+UT2*UT2)))*SURF/VOLU
 226 :          do 105  i=1,(nsp-1)
 227 :            MPRES.VPOCHA(IFAC,IDIM+2+I)=RHO*YF.YET(I)*UN*SURF/VOLU 
 228 :  105     continue 
 229 :          MPRES.VPOCHA(IFAC,IDIM+NSP+2)=RHO*KAF*UN*SURF/VOLU
 230 :          MPRES.VPOCHA(IFAC,IDIM+NSP+3)=RHO*EPSF*UN*SURF/VOLU
 231 :  1      CONTINUE
 232 : C
 233 :       SEGDES MELEFC
 234 : C      
 235 :       SEGDES MLEMC
 236 :       SEGDES MLEMCB
 237 :       SEGDES MLEMF
 238 : C
 239 :       SEGDES MPNORM
 240 :       SEGDES MPVOL
 241 :       SEGDES MPSURF
 242 :       SEGDES MPLIM
 243 :       SEGDES MPRES
 244 :       SEGDES MPRLI
 245 :       SEGDES MLRECP
 246 :       SEGDES MLRECV
 247 :       SEGDES YF 
 248 : C
 249 :  9999 CONTINUE
 250 :       RETURN
 251 :       END
 252 : 
 253 : 
 254 : 
 255 : 
 256 :  
 257 :  
 258 :  
 259 :  
 260 :  
 261 :  
 262 :  

© Cast3M 2003 - All rights reserved.
Disclaimer