Download cli282.eso

Back to the list

   1 : C CLI282    SOURCE    MAGN      09/07/30    21:16:17     6458           
   2 :       SUBROUTINE CLI282(NSP,MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM,
   3 :      &     ICHPVO,ICHPSU,LRECP,LRECV,
   4 :      &     IROC,IVITC,IPC,IYC,ICHLIM,ILIINC,ILIINP,IJAC,IJACO)
   5 : C************************************************************************
   6 : C
   7 : C PROJET            :  CASTEM 2000
   8 : C
   9 : C NOM               :  CLI282
  10 : C
  11 : C DESCRIPTION       :  Subroutine appellée par CLIM22
  12 : C                      OPTION: 'INOU' -- Jacobian 
  13 : C
  14 : C LANGAGE           :  FORTRAN 77 + ESOPE 2000 (avec estensions CISI)
  15 : C      
  16 : C AUTEUR            :  S. Kudriakov, DEN/DM2S/SFME/LTMF                    
  17 : C
  18 : C************************************************************************
  19 : C
  20 : C APPELES (Calcul)  :  
  21 : C
  22 : C************************************************************************
  23 : C
  24 : C HISTORIQUE (Anomalies et modifications éventuelles)
  25 : C
  26 : C HISTORIQUE :
  27 : C      
  28 : C************************************************************************
  29 : C
  30 : C----------------------------------------------------
  31 : C**** Variables de COOPTIO
  32 : C----------------------------------------------------
  33 : c      INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
  34 : c     &        ,IOTER,   IOLEC,  IOIMP, IOCAR,  IOACQ
  35 : c     &        ,IOPER,   IOSGB,  IOGRA, IOSAU,  IORES
  36 : c     &        ,IECHO,   IIMPI,  IOSPI
  37 : c     &        ,IDIM,    IFICLE, IPREFI     
  38 : c     &        ,MCOORD 
  39 : c     &        ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
  40 : c     &        ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU
  41 : c     &        ,NORINC,NORVAL,NORIND,NORVAD
  42 : c     &        ,NUCROU, IPSAUV
  43 : C
  44 :       IMPLICIT INTEGER(I-N)
  45 :       INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC
  46 :      &     ,IGAMC,ICHLIM,ICEL,NFAC,IFAC,MELRES,IJACO
  47 :      &     ,NGF,NGC,NLF,NLC,NLCB
  48 :      &     ,ILIINC,ILIINP,IJAC,II,JJ,K
  49 :      &     ,MP, NBEL, NBME, NBSOUS, NKID, NKMT, NMATRI, NP, NRIGE
  50 :      &     ,NSP,I, IYC,J, LRECP,LRECV,KV
  51 :       REAL*8 VOLU,SURF,RC,PC,UXC,UYC,GAMC,CNX,CNY,CTX,CTY
  52 :      &     ,PSRF,COEF
  53 :      &     ,BR1,BOT,TOP,DUNDUY,GAMF,UNC
  54 :      &     ,COEF5,DPSRUN,DUXDUN,DRDUN,DUYDUN,DUNDUX,DPDUN
  55 :      &     ,GM1,USGM1,RF,UNF,UTF,UXF,UYF,HTF,PF,SF,ECIN
  56 :      &     ,TVECT(2),NVECT(2),WVEC_L(4),WVEC_R(4)
  57 :       CHARACTER*(8) TYPE
  58 : -INC CCOPTIO
  59 : -INC SMLMOTS
  60 : -INC SMELEME
  61 :       POINTEUR MELEFC.MELEME
  62 : -INC SMLENTI
  63 :       POINTEUR MLEMC.MLENTI, MLEMCB.MLENTI,MLEMF.MLENTI
  64 : -INC SMCHPOI
  65 :       POINTEUR MPNORM.MPOVAL, MPVOL.MPOVAL, MPSURF.MPOVAL, MPRC.MPOVAL,
  66 :      &     MPVC.MPOVAL, MPPC.MPOVAL, MPLIM.MPOVAL, MPYC.MPOVAL
  67 : -INC SMMATRIK
  68 :       POINTEUR CELL.IZAFM
  69 : C-------------------------------------------------------
  70 : -INC SMLREEL
  71 :       POINTEUR MLRECP.MLREEL, MLRECV.MLREEL
  72 : C-------------------------------------------------------
  73 : C*********  Les Jacobians ******************************  
  74 : C-------------------------------------------------------
  75 :       SEGMENT JACEL
  76 :          REAL*8 JAC(3+NSP,3+NSP)
  77 :       ENDSEGMENT
  78 :       POINTEUR JLL.JACEL, WL.JACEL, JRR.JACEL, JTT.JACEL, JT2.JACEL,
  79 :      &         JFL.JACEL, JFR.JACEL, JR.JACEL, JPL.JACEL, JTL.JACEL  
  80 : C-------------------------------------------------------------
  81 : C******* Les fractionines massiques **************************
  82 : C-------------------------------------------------------------
  83 :        SEGMENT FRAMAS
  84 :          REAL*8 YET(NSP)
  85 :       ENDSEGMENT
  86 :       POINTEUR YC.FRAMAS, YF.FRAMAS 
  87 : C-------------------------------------------------------
  88 : C**********  Les CP's and CV's   ***********************
  89 : C-------------------------------------------------------
  90 :       SEGMENT GCONST
  91 :          REAL*8 GC(NSP)
  92 :       ENDSEGMENT
  93 :       POINTEUR CP.GCONST, CV.GCONST 
  94 : C-------------------------------------------------------------
  95 : C**********  Segments for the vectors  ***********************
  96 : C-------------------------------------------------------------
  97 :        SEGMENT VECEL
  98 :          REAL*8 VV(NSP)
  99 :        ENDSEGMENT
 100 :        POINTEUR DGDYC.VECEL
 101 : C--------------------------------------------------
 102 :       SEGINI JTT
 103 :       SEGINI JTL
 104 :       SEGINI JLL
 105 :       SEGINI JPL
 106 :       SEGINI JRR     
 107 :       SEGINI JFL
 108 :       SEGINI JFR
 109 :       SEGINI WL
 110 :       SEGINI JR
 111 :       SEGINI JT2 
 112 : C----------------------------------------------------
 113 : C**** KRIPAD pour la correspondance global/local
 114 : C----------------------------------------------------
 114 :       CALL KRIPAD(MELEMC,MLEMC)
 114 :       CALL KRIPAD(MELECB,MLEMCB)
 114 :       CALL KRIPAD(MELEMF,MLEMF)
 115 : C----------------------------------------------------
 116 : C**** CHPOINTs de la table DOMAINE
 117 : C----------------------------------------------------
 117 :       CALL LICHT(INORM,MPNORM,TYPE,ICEL)
 117 :       CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL)
 117 :       CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL)
 118 : C----------------------------------------------------
 119 : C**** CHPOINTs des variables
 120 : C----------------------------------------------------
 120 :       CALL LICHT(IROC,MPRC,TYPE,ICEL)
 120 :       CALL LICHT(IVITC,MPVC,TYPE,ICEL)
 120 :       CALL LICHT(IPC,MPPC,TYPE,ICEL)
 120 :       CALL LICHT(IYC,MPYC,TYPE,ICEL)
 120 :       CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL)
 121 : C--------------------------------------------------------
 122 : C**** Boucle sur le face pour le calcul des invariants de
 123 : C     Riemann et du flux
 124 : C--------------------------------------------------------
 125 :       SEGACT MELEFC
 126 :       NFAC=MELEFC.NUM(/2)
 127 : C---------------------------------
 128 : C**** Objet MATRIK
 129 : C---------------------------------
 130 :       NRIGE = 7
 131 :       NMATRI = 1
 132 :       NKID = 9
 133 :       NKMT = 7
 134 : C---------------------------------
 135 :       SEGINI MATRIK
 136 :       IJACO = MATRIK
 137 :       MATRIK.IRIGEL(1,1) = MELRES
 138 :       MATRIK.IRIGEL(2,1) = MELRES
 139 : C---------------------------------
 140 : C**** Matrice non symetrique
 141 : C---------------------------------
 142 :       MATRIK.IRIGEL(7,1) = 2
 143 : C---------------------------------
 144 :       NBME = (3+NSP)*(3+NSP)
 145 :       NBSOUS = 1
 146 :       SEGINI IMATRI
 147 :       IF(IJAC.EQ.1)THEN
 148 :          MLMOTS=ILIINC
 149 :       ELSEIF(IJAC.EQ.2)THEN
 150 :          MLMOTS=ILIINP
 151 :       ENDIF
 152 :       SEGACT MLMOTS
 153 :       MATRIK.IRIGEL(4,1) = IMATRI
 154 : C-------------------------------------------
 155 :       DO 1 J=1,(NSP+3)
 156 :         KV=(J-1)*(3+NSP)
 157 :         IMATRI.LISPRI(KV+1) = MLMOTS.MOTS(1)
 158 :         IMATRI.LISPRI(KV+2) = MLMOTS.MOTS(2)
 159 :         IMATRI.LISPRI(KV+3) = MLMOTS.MOTS(3)
 160 :         IMATRI.LISPRI(KV+4) = MLMOTS.MOTS(4)
 161 :         DO 2 I=1,(NSP-1)       
 162 :           IMATRI.LISPRI(KV+4+I) = MLMOTS.MOTS(4+I)
 163 :  2      CONTINUE
 164 :  1    CONTINUE
 165 : C-----------------------------------------------
 166 :       SEGDES MLMOTS
 167 :       MLMOTS=ILIINC
 168 :       SEGACT MLMOTS
 169 : C-----------------------------------------------
 170 :       DO 3 J=1,(NSP+3)
 171 :         KV=(J-1)*(3+NSP)
 172 :         IMATRI.LISDUA(KV+1) = MLMOTS.MOTS(j)
 173 :         IMATRI.LISDUA(KV+2) = MLMOTS.MOTS(j)
 174 :         IMATRI.LISDUA(KV+3) = MLMOTS.MOTS(j)
 175 :         IMATRI.LISDUA(KV+4) = MLMOTS.MOTS(j)
 176 :         DO 4 I=1,(NSP-1)       
 177 :           IMATRI.LISDUA(KV+4+I) = MLMOTS.MOTS(j)
 178 :  4     CONTINUE
 179 :  3    CONTINUE
 180 : C-----------------------------------------------
 181 : C-----------------------------------------------
 182 :       SEGDES MLMOTS
 183 :       NBEL = NFAC
 184 :       NBSOUS = 1
 185 :       NP = 1
 186 :       MP = 1
 187 : C-----------------------------------------------------------
 188 : C-----------------------------------------------------------
 189 :       DO 5 I=1,NBME
 190 :         SEGINI CELL 
 191 :         IMATRI.LIZAFM(1,I) = CELL 
 192 :  5    CONTINUE  
 193 : C---------------------------------
 194 : C---------------------------------
 195 : C**** Fin definition MATRIK
 196 : C---------------------------------
 197 :       DO IFAC=1,NFAC,1
 198 :          NGF=MELEFC.NUM(1,IFAC)
 199 :          NGC=MELEFC.NUM(2,IFAC)
 200 :          NLF=MLEMF.LECT(NGF)
 201 :          NLC=MLEMC.LECT(NGC)
 202 :          NLCB=MLEMCB.LECT(NGF)
 203 :          VOLU=MPVOL.VPOCHA(NLC,1)
 204 :          SURF=MPSURF.VPOCHA(NLF,1)
 205 : C        In CASTEM les normales sont sortantes
 206 :          CNX=MPNORM.VPOCHA(NLF,1)
 207 :          CNY=MPNORM.VPOCHA(NLF,2)
 208 :          CTX=-1.0D0*CNY
 209 :          CTY=CNX
 210 : C----------------------------------------------
 211 :          SEGINI CP, CV    
 212 :          MLRECP = LRECP
 213 :          MLRECV = LRECV
 214 :          SEGACT MLRECP, MLRECV      
 215 :          DO 10 I=1,(NSP-1)
 216 :            CP.GC(I)=MLRECP.PROG(I)
 217 :            CV.GC(I)=MLRECV.PROG(I)
 218 :  10      CONTINUE
 219 :          CP.GC(NSP)=MLRECP.PROG(NSP)
 220 :          CV.GC(NSP)=MLRECV.PROG(NSP)
 221 : C---------------------------------
 222 : C        Variables au centre
 223 : C---------------------------------
 224 :          RC=MPRC.VPOCHA(NLC,1)
 225 :          PC=MPPC.VPOCHA(NLC,1)
 226 :          UXC=MPVC.VPOCHA(NLC,1)
 227 :          UYC=MPVC.VPOCHA(NLC,2)
 228 :          SEGINI YC
 229 :          SEGACT MPYC
 230 :          DO 100 I=1,(NSP-1)
 231 :            YC.YET(I)=MPYC.VPOCHA(NLC,I)
 232 :  100     CONTINUE
 233 : C---------------------------------
 234 : C        Variables à la face
 235 : C---------------------------------
 236 :          SEGACT MPLIM 
 237 :          HTF=MPLIM.VPOCHA(NLCB,1)
 238 :          SF=MPLIM.VPOCHA(NLCB,2)
 239 :          SEGINI YF
 240 :          DO 101 I=1,(NSP-1)
 241 :            YF.YET(I)=MPLIM.VPOCHA(NLCB,2+I)
 242 :  101     CONTINUE 
 243 :          PF=MPLIM.VPOCHA(NLCB,NSP+2)
 244 : c-------------------------------------------------------------
 245 : c  Computing GAMMA at the face 
 246 : c-------------------------------------------------------------
 247 :          top=0.0D0
 248 :          bot=0.0D0
 249 :          do 102  i=1,(nsp-1)
 250 :           top=top+yf.yet(i)*(cp.gc(i)-cp.gc(nsp))
 251 :           bot=bot+yf.yet(i)*(cv.gc(i)-cv.gc(nsp))
 252 :  102     continue  
 253 :          top=cp.gc(nsp)+top
 254 :          bot=cv.gc(nsp)+bot
 255 :          GAMF=top/bot
 256 :          GM1=GAMF-1.0D0
 257 :          USGM1=1.0D0/GM1
 258 : c-------------------------------------------------------------
 259 : c  Computing GAMMA at the cell-centre 
 260 : c-------------------------------------------------------------
 261 :          top=0.0D0
 262 :          bot=0.0D0
 263 :          do 103  i=1,(nsp-1)
 264 :           top=top+yc.yet(i)*(cp.gc(i)-cp.gc(nsp))
 265 :           bot=bot+yc.yet(i)*(cv.gc(i)-cv.gc(nsp))
 266 :  103     continue  
 267 :          top=cp.gc(nsp)+top
 268 :          bot=cv.gc(nsp)+bot
 269 :          GAMC=top/bot
 270 : C-------------------------------------------------------------
 271 :          SEGINI DGDYC
 272 :          do 41 i=1,(nsp-1)
 273 :            dgdyc.vv(i)=(cp.gc(i)-cp.gc(nsp)-
 274 :      &       GAMC*(cv.gc(i)-cv.gc(nsp)))/bot
 275 :  41    continue
 276 : c-------------------------------------------------------------
 277 : c  matrix wl(i,j) represents the derivative of the i-component
 278 : c  of the vector of primitive variables of the left state with
 279 : c  respect to the j-component of the vector of the conservative
 280 : c  variables of the left state.
 281 : c
 282 : c  Here: (rho, ux, uy, p, Y_1,...,Y_(nsp-1)) - 
 283 : c                               vector of primitive variables;
 284 : c  (rho, rho ux, rho uy, rho e, rho Y_1,..., rho Y_(nsp-1)) - 
 285 : c                            vector of conservative variables.  
 286 : c-------------------------------------------------------------
 287 :        wl.jac(1,1)=1.0d0
 288 :        wl.jac(1,2)=0.0d0
 289 :        wl.jac(1,3)=0.0d0
 290 :        wl.jac(1,4)=0.0d0
 291 :        do 83 i=1,(nsp-1)
 292 :          wl.jac(1,4+i)=0.0d0
 293 :  83    continue  
 294 : c------------------------------
 295 :        wl.jac(2,1)=-UXC/RC
 296 :        wl.jac(2,2)=1.0d0/RC
 297 :        wl.jac(2,3)=0.0d0
 298 :        wl.jac(2,4)=0.0d0
 299 :        do 84 i=1,(nsp-1)
 300 :          wl.jac(2,4+i)=0.0d0
 301 :  84    continue  
 302 : c------------------------------
 303 :        wl.jac(3,1)=-UYC/RC
 304 :        wl.jac(3,2)=0.0d0
 305 :        wl.jac(3,3)=1.0d0/RC
 306 :        wl.jac(3,4)=0.0d0
 307 :        do 85 i=1,(nsp-1)
 308 :          wl.jac(3,4+i)=0.0d0
 309 :  85    continue   
 310 : c------------------------------
 311 :        br1=0.0d0
 312 :        do 86 i=1,(nsp-1)
 313 :          br1=br1+dgdyc.vv(i)*yc.yet(i)
 314 :  86    continue  
 315 :        br1=br1*PC/(RC*(GAMC-1.0D0))
 316 :        wl.jac(4,1)=(GAMC-1.0D0)*(UXC*UXC+UYC*UYC)/2.0d0-br1 
 317 :        wl.jac(4,2)=-UXC*(GAMC-1.0D0)
 318 :        wl.jac(4,3)=-UYC*(GAMC-1.0D0)
 319 :        wl.jac(4,4)=(GAMC-1.0D0)
 320 :        do 87 i=1,(nsp-1)
 321 :          wl.jac(4,4+i)=dgdyc.vv(i)*PC/(RC*(GAMC-1.0D0))
 322 :  87    continue  
 323 : c------------------------------
 324 :        do 88 i=1,(nsp-1)
 325 :         do 89 j=1,4
 326 :           wl.jac(4+i,j)=0.0d0
 327 :           if(j.eq.1) wl.jac(4+i,j)=-yc.yet(i)/RC
 328 :  89     continue  
 329 : c------------   
 330 :         do 890 j=5,(4+nsp-1)       
 331 :           wl.jac(4+i,j)=0.0d0
 332 :           if(4+i.eq.j)  then 
 333 :             wl.jac(4+i,j)=1.0d0/RC
 334 :           endif 
 335 :  890    continue   
 336 :  88    continue
 337 : c------------------------------------------------        
 338 :        UNC=(UXC*CNX)+(UYC*CNY)
 339 :        IF(UNC .LT. 0.0D0) THEN
 340 : c       write(*,*) 'impl_insiiiiii', UNC, NLCB
 341 : C-----------------------------------------
 342 : C   Option 'INSU' - inlet BC
 343 : C-----------------------------------------
 344 :          CNX=-1.0D0*CNX
 345 :          CNY=-1.0D0*CNY
 346 :          CTX=-1.0D0*CNY
 347 :          CTY=CNX
 348 :          UNC=(UXC*CNX)+(UYC*CNY)
 349 :          UNF=UNC
 350 :          UTF=0.0D0
 351 :          UXF=UNF*CNX+UTF*CTX
 352 :          UYF=UNF*CNY+UTF*CTY
 353 : C------------------------------------------------
 354 : C******* Densite, vitesse, pression sur le bord
 355 : C------------------------------------------------
 356 :          ECIN=0.5D0*((UXF*UXF)+(UYF*UYF))
 357 :          PSRF=(GM1/GAMF)*(HTF-ECIN)
 358 :          RF=PSRF/SF
 359 :          RF=RF**(1.0D0/GM1)
 360 :          PF=SF*(RF**GAMF)
 361 : C------------------------------
 362 : C******* Derivatives w.r.t. PC
 363 : C------------------------------
 364 :          DPSRUN=-1*(GM1/GAMF)*UNC
 365 :          DRDUN=USGM1*RF/PSRF*DPSRUN
 366 :          DPDUN=GAMF*PSRF*DRDUN
 367 :          DUXDUN=CNX
 368 :          DUYDUN=CNY
 369 : C-------------------------------
 370 :          DUNDUX=CNX
 371 :          DUNDUY=CNY
 372 : C--------------------------------------------------------------
 373 : C------------------------------
 374 : C******* Derivatives
 375 : C------------------------------
 376 :         wvec_l(1)=RF
 377 :         wvec_l(2)=UXF
 378 :         wvec_l(3)=UYF
 379 :         wvec_l(4)=PF
 380 : C--------------------------
 381 :         wvec_r(1)=RC
 382 :         wvec_r(2)=UXC
 383 :         wvec_r(3)=UYC
 384 :         wvec_r(4)=PC
 385 : C--------------------------
 386 :         nvect(1)=CNX
 387 :         nvect(2)=CNY
 388 :         tvect(1)=CTX
 389 :         tvect(2)=CTY
 389 :         call copms2(nsp,jfl,jfr,wvec_l,wvec_r,nvect,tvect,
 390 :      &                 yf,mpyc,lrecp,lrecv,nlc)
 391 : C--------------------------------------------------------------
 392 :         COEF=SURF/VOLU
 393 :         JLL=JFL
 394 :         JRR=JFR 
 395 :         SEGACT JLL
 396 :         SEGACT JRR
 397 : C-------------------------------------------------------------
 398 : C   Taking in to account the dependance of the variables 
 399 : C   at the face on the variables at the centre (UNC)
 400 : C-------------------------------------------------------------
 401 :        DO 105 I=1,(3+NSP)
 402 :        DO 1050 J=1,(3+NSP)
 403 :         IF(J .EQ. 2) THEN
 404 :           COEF5=(JLL.JAC(I,1)*DRDUN)+(JLL.JAC(I,2)*DUXDUN)+
 405 :      &        (JLL.JAC(I,3)*DUYDUN)+(JLL.JAC(I,4)*DPDUN)
 406 :           JR.JAC(I,J)=(COEF5*DUNDUX+JRR.JAC(I,J))*COEF
 407 :         ELSEIF(J .EQ. 3) THEN
 408 :           COEF5=(JLL.JAC(I,1)*DRDUN)+(JLL.JAC(I,2)*DUXDUN)+
 409 :      &        (JLL.JAC(I,3)*DUYDUN)+(JLL.JAC(I,4)*DPDUN) 
 410 :           JR.JAC(I,J)=(COEF5*DUNDUY+JRR.JAC(I,J))*COEF
 411 :         ELSE
 412 :           JR.JAC(I,J)=JRR.JAC(I,J)*COEF 
 413 :         ENDIF
 414 :  1050  CONTINUE 
 415 :  105   CONTINUE
 416 : C------------------------------------------------------------- 
 417 :        do 114 i=1,(3+nsp)
 418 :         do 115 j=1,(3+nsp)
 419 :          jt2.jac(i,j)=0.0d0
 420 :          do 116 k=1,(3+nsp) 
 421 :           jt2.jac(i,j)=jt2.jac(i,j)+
 422 :      &      jr.jac(i,k)*wl.jac(k,j)/COEF
 423 :  116     continue 
 424 :  115    continue 
 425 :  114  continue
 426 : C----------------------------------------------------------
 427 : C******* Jacobian with respect to conservative variables
 428 : C----------------------------------------------------------------
 429 :          IF(IJAC.EQ.1)THEN
 430 :            DO 9 II = 1,(3+NSP)
 431 :               DO 15 JJ = 1,(3+NSP)
 432 :                 KV = (II-1)*(3+NSP)
 433 : C----------------------------------
 434 :                 CELL = IMATRI.LIZAFM(1,KV+JJ)
 435 :                 CELL.AM(IFAC,1,1) = JT2.JAC(II,JJ)*COEF 
 436 :  15           CONTINUE
 437 :  9         CONTINUE  
 438 :          ELSEIF(IJAC.EQ.2)THEN
 439 :            DO 20 II = 1,(3+NSP)
 440 :               DO 25 JJ = 1,(3+NSP)
 441 :                 KV = (II-1)*(3+NSP)
 442 : C----------------------------------
 443 :                 CELL = IMATRI.LIZAFM(1,KV+JJ)
 444 :                 CELL.AM(IFAC,1,1) = JR.JAC(II,JJ) 
 445 :  25           CONTINUE
 446 :  20         CONTINUE
 447 :          ENDIF
 448 : c--------------------------------------------------       
 449 :       ELSE
 450 : C---------------------------------------------
 451 : C    Option --- 'OUTP'  - outlet BC
 452 : C--------------------------------------------- 
 453 : C------------------------------
 454 : C******* Derivatives
 455 : C------------------------------
 456 :         wvec_l(1)=RC
 457 :         wvec_l(2)=UXC
 458 :         wvec_l(3)=UYC
 459 :         wvec_l(4)=PC
 460 : C--------------------------
 461 :         wvec_r(1)=RC
 462 :         wvec_r(2)=UXC
 463 :         wvec_r(3)=UYC
 464 :         wvec_r(4)=PF
 465 : C--------------------------
 466 :         nvect(1)=CNX
 467 :         nvect(2)=CNY
 468 :         tvect(1)=CTX
 469 :         tvect(2)=CTY
 469 :         call copmsp(nsp,jpl,jll,wvec_l,wvec_r,nvect,tvect,
 470 :      &                   mpyc,lrecp,lrecv,nlc,nlc) 
 471 : C----------------------------------------
 472 :          COEF=-SURF/VOLU
 473 : C----------------------------------------
 474 :          JTT=JLL
 475 :          JTL=JPL 
 476 :          SEGACT JTT
 477 :          SEGACT JTL       
 478 : C----------------------------------------------------------------
 479 : C******* Jacobian with respect to conservative variables
 480 : C----------------------------------------------------------------
 481 :          IF(IJAC.EQ.1)THEN
 482 :            DO 99 II = 1,(3+NSP)
 483 :               DO 155 JJ = 1,(3+NSP)
 484 :                 KV = (II-1)*(3+NSP)
 485 : C----------------------------------
 486 :                 CELL = IMATRI.LIZAFM(1,KV+JJ)
 487 :                 CELL.AM(IFAC,1,1) = JTT.JAC(II,JJ)*COEF 
 488 :  155          CONTINUE
 489 :  99        CONTINUE  
 490 :          ELSEIF(IJAC.EQ.2)THEN
 491 :            DO 200 II = 1,(3+NSP)
 492 :               DO 255 JJ = 1,(3+NSP)
 493 :                 KV = (II-1)*(3+NSP)
 494 : C----------------------------------
 495 :                 CELL = IMATRI.LIZAFM(1,KV+JJ)
 496 :                 CELL.AM(IFAC,1,1) = JTL.JAC(II,JJ)*COEF
 497 :  255          CONTINUE
 498 :  200        CONTINUE
 499 :          ENDIF
 500 : C---------------------------------------------------------------
 501 :         ENDIF
 502 : C----------------------------------------------------------------
 503 :       ENDDO
 504 : C
 505 :       SEGDES MELEFC
 506 : C      
 507 :       SEGDES MLEMC
 508 :       SEGDES MLEMCB
 509 :       SEGDES MLEMF
 510 : C
 511 :       SEGDES MPNORM
 512 :       SEGDES MPVOL
 513 :       SEGDES MPSURF
 514 :       SEGDES MPRC
 515 :       SEGDES MPPC
 516 :       SEGDES MPVC
 517 :       SEGDES MPYC
 518 :       SEGDES MPLIM
 519 :       SEGDES YC
 520 :       SEGDES YF
 521 :       SEGDES CP
 522 :       SEGDES CV
 523 :       SEGDES JLL
 524 :       SEGDES JRR
 525 :       SEGDES JTT
 526 :       SEGDES JTL
 527 :       SEGDES JFL
 528 :       SEGDES JFR
 529 :       SEGDES JR 
 530 :       SEGDES WL
 531 :       SEGDES  DGDYC
 532 :       SEGDES MATRIK
 533 :       DO 80 II=1,NBME
 534 :        CELL = IMATRI.LIZAFM(1,II)
 535 :        SEGDES CELL
 536 :  80   CONTINUE   
 537 :       SEGDES IMATRI
 538 : C---------------------------------------------
 539 :  9999 CONTINUE
 540 :       RETURN
 541 :       END
 542 : 
 543 : 
 544 : 
 545 : 
 546 :  
 547 :  
 548 :  
 549 :  
 550 :  
 551 :  
 552 :  

© Cast3M 2003 - All rights reserved.
Disclaimer