1 : C CLI113 SOURCE MAGN 09/07/30 21:15:35 6458 2 : SUBROUTINE CLI113(MELEMF,MELEMC,MELECB,MELEFC,MELRES,INORM,ICHPVO, 3 : & ICHPSU,IROC,IVITC,IPC,IGAMC,ICHLIM,ILIINC,ILIINP,IJAC,IJACO) 4 : C************************************************************************ 5 : C 6 : C PROJET : CASTEM 2000 7 : C 8 : C NOM : CLI113 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 : -INC SMMATRIK 39 : POINTEUR RR.IZAFM, RUX.IZAFM, RUY.IZAFM, RRET.IZAFM, 40 : & UXR.IZAFM, UXUX.IZAFM, UXUY.IZAFM, UXRET.IZAFM, 41 : & UYR.IZAFM, UYUX.IZAFM, UYUY.IZAFM, UYRET.IZAFM, 42 : & RETR.IZAFM, RETUX.IZAFM, RETUY.IZAFM, RETRET.IZAFM, 43 : & RUZ.IZAFM, UXUZ.IZAFM, UYUZ.IZAFM, RETUZ.IZAFM, 44 : & UZR.IZAFM, UZUX.IZAFM, UZUY.IZAFM, UZRET.IZAFM, 45 : & UZUZ.IZAFM 46 : C 47 : C**** Variables de COOPTIO 48 : C 49 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR 50 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ 51 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES 52 : C & ,IECHO, IIMPI, IOSPI 53 : C & ,IDIM, IFICLE, IPREFI 54 : C & ,MCOORD 55 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE 56 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU 57 : C & ,NORINC,NORVAL,NORIND,NORVAD 58 : C & ,NUCROU, IPSAUV 59 : C 60 : INTEGER MELEMF,MELEMC,MELECB,INORM,ICHPVO,ICHPSU, IROC,IVITC,IPC 61 : & ,IGAMC,ICHLIM,ICEL,NFAC,IFAC,MELRES,IJACO 62 : & ,NGF,NGC,NLF,NLC,NLCB 63 : & ,ILIINC,ILIINP,IJAC 64 : & ,MP, NBEL, NBME, NBSOUS, NKID, NKMT, NMATRI, NP, NRIGE 65 : REAL*8 VOLU,SURF,RC,PC,UXC,UYC,GAMC,CNX,CNY,CTX,CTY 66 : & ,CNZ,CTZ,CT1X,CT1Y,CT1Z,UZC,UZF,UT1F,UT1,UZ 67 : & ,DUZDG1,DFMZG1,DG1DUZ,DROUZ,DUXUZ,DUYUZ,DPUZ 68 : & ,DUZRO,DUZUX,DUZUY,DUZUZ,DUZP 69 : & ,RF,PF,UXF,UYF 70 : & ,UNC,UNF,UTF,SF,ASONC,ASONF,ASON 71 : * & ,UTC,SC 72 : & ,GM1,USGM1,DSGM1,G1,G3,ASON2,S,UT,UN,RHO,P,UX,UY 73 : & ,DUNDG1,DASDG1,DRHDG1,DPDG1,DUXDG1,DUYDG1 74 : * & ,CELL,EPS,CACCA 75 : & ,DFRDG1,DFMXG1,DFMYG1,DFEDG1 76 : & ,DG1DR,DG1DP,DG1DUX,DG1DUY,COEF 77 : & ,DRORO,DROUX,DROUY,DROP 78 : & ,DUXRO,DUXUX,DUXUY,DUXP 79 : & ,DUYRO,DUYUX,DUYUY,DUYP 80 : & ,DPRO,DPUX,DPUY,DPP 81 : & ,COEF1,COEF2,COEF3,COEF4 82 : CHARACTER*(8) TYPE 83 : C 84 : C 85 : C**** KRIPAD pour la correspondance global/local 86 : C 86 : CALL KRIPAD(MELEMC,MLEMC) 87 : C SEGINI MLEMC 87 : CALL KRIPAD(MELECB,MLEMCB) 88 : C SEGINI MLEMCB 88 : CALL KRIPAD(MELEMF,MLEMF) 89 : C SEGINI MLEMF 90 : C 91 : C**** CHPOINTs de la table DOMAINE 92 : C 92 : CALL LICHT(INORM,MPNORM,TYPE,ICEL) 92 : CALL LICHT(ICHPVO,MPVOL,TYPE,ICEL) 92 : CALL LICHT(ICHPSU,MPSURF,TYPE,ICEL) 93 : C 94 : C**** LICHT active les MPOVALs en *MOD 95 : C 96 : C SEGACT MPNORM*MOD 97 : C SEGACT MPOVSU*MOD 98 : C SEGACT MPOVOL*MOD 99 : C 100 : C 101 : C**** CHPOINTs des variables 102 : C 102 : CALL LICHT(IROC,MPRC,TYPE,ICEL) 102 : CALL LICHT(IVITC,MPVC,TYPE,ICEL) 102 : CALL LICHT(IPC,MPPC,TYPE,ICEL) 102 : CALL LICHT(IGAMC,MPGAMC,TYPE,ICEL) 102 : CALL LICHT(ICHLIM,MPLIM,TYPE,ICEL) 103 : C 104 : C SEGACT *MOD 105 : C SEGACT *MOD 106 : C SEGACT *MOD 107 : C SEGACT *MOD 108 : C SEGACT *MOD 109 : C 110 : C 111 : C**** Boucle sur le face pour le calcul des invariants de 112 : C Riemann et du flux 113 : C 114 : SEGACT MELEFC 115 : NFAC=MELEFC.NUM(/2) 116 : C 117 : C**** Objet MATRIK 118 : C 119 : NRIGE = 7 120 : NMATRI = 1 121 : NKID = 9 122 : NKMT = 7 123 : C 124 : SEGINI MATRIK 125 : IJACO = MATRIK 126 : MATRIK.IRIGEL(1,1) = MELRES 127 : MATRIK.IRIGEL(2,1) = MELRES 128 : C 129 : C**** Matrice non symetrique 130 : C 131 : MATRIK.IRIGEL(7,1) = 2 132 : C 133 : NBME = 25 134 : NBSOUS = 1 135 : SEGINI IMATRI 136 : IF(IJAC.EQ.1)THEN 137 : MLMOTS=ILIINC 138 : ELSEIF(IJAC.EQ.2)THEN 139 : MLMOTS=ILIINP 140 : ENDIF 141 : SEGACT MLMOTS 142 : MATRIK.IRIGEL(4,1) = IMATRI 143 : C 144 : IMATRI.LISPRI(1) = MLMOTS.MOTS(1) 145 : IMATRI.LISPRI(2) = MLMOTS.MOTS(2) 146 : IMATRI.LISPRI(3) = MLMOTS.MOTS(3) 147 : IMATRI.LISPRI(4) = MLMOTS.MOTS(4) 148 : IMATRI.LISPRI(5) = MLMOTS.MOTS(5) 149 : C 150 : IMATRI.LISPRI(6) = MLMOTS.MOTS(1) 151 : IMATRI.LISPRI(7) = MLMOTS.MOTS(2) 152 : IMATRI.LISPRI(8) = MLMOTS.MOTS(3) 153 : IMATRI.LISPRI(9) = MLMOTS.MOTS(4) 154 : IMATRI.LISPRI(10) = MLMOTS.MOTS(5) 155 : C 156 : IMATRI.LISPRI(11) = MLMOTS.MOTS(1) 157 : IMATRI.LISPRI(12) = MLMOTS.MOTS(2) 158 : IMATRI.LISPRI(13) = MLMOTS.MOTS(3) 159 : IMATRI.LISPRI(14) = MLMOTS.MOTS(4) 160 : IMATRI.LISPRI(15) = MLMOTS.MOTS(5) 161 : C 162 : IMATRI.LISPRI(16) = MLMOTS.MOTS(1) 163 : IMATRI.LISPRI(17) = MLMOTS.MOTS(2) 164 : IMATRI.LISPRI(18) = MLMOTS.MOTS(3) 165 : IMATRI.LISPRI(19) = MLMOTS.MOTS(4) 166 : IMATRI.LISPRI(20) = MLMOTS.MOTS(5) 167 : C 168 : IMATRI.LISPRI(21) = MLMOTS.MOTS(1) 169 : IMATRI.LISPRI(22) = MLMOTS.MOTS(2) 170 : IMATRI.LISPRI(23) = MLMOTS.MOTS(3) 171 : IMATRI.LISPRI(24) = MLMOTS.MOTS(4) 172 : IMATRI.LISPRI(25) = MLMOTS.MOTS(5) 173 : C 174 : SEGDES MLMOTS 175 : MLMOTS=ILIINC 176 : SEGACT MLMOTS 177 : C 178 : IMATRI.LISDUA(1) = MLMOTS.MOTS(1) 179 : IMATRI.LISDUA(2) = MLMOTS.MOTS(1) 180 : IMATRI.LISDUA(3) = MLMOTS.MOTS(1) 181 : IMATRI.LISDUA(4) = MLMOTS.MOTS(1) 182 : IMATRI.LISDUA(5) = MLMOTS.MOTS(1) 183 : C 184 : IMATRI.LISDUA(6) = MLMOTS.MOTS(2) 185 : IMATRI.LISDUA(7) = MLMOTS.MOTS(2) 186 : IMATRI.LISDUA(8) = MLMOTS.MOTS(2) 187 : IMATRI.LISDUA(9) = MLMOTS.MOTS(2) 188 : IMATRI.LISDUA(10) = MLMOTS.MOTS(2) 189 : C 190 : IMATRI.LISDUA(11) = MLMOTS.MOTS(3) 191 : IMATRI.LISDUA(12) = MLMOTS.MOTS(3) 192 : IMATRI.LISDUA(13) = MLMOTS.MOTS(3) 193 : IMATRI.LISDUA(14) = MLMOTS.MOTS(3) 194 : IMATRI.LISDUA(15) = MLMOTS.MOTS(3) 195 : C 196 : IMATRI.LISDUA(16) = MLMOTS.MOTS(4) 197 : IMATRI.LISDUA(17) = MLMOTS.MOTS(4) 198 : IMATRI.LISDUA(18) = MLMOTS.MOTS(4) 199 : IMATRI.LISDUA(19) = MLMOTS.MOTS(4) 200 : IMATRI.LISDUA(20) = MLMOTS.MOTS(4) 201 : C 202 : IMATRI.LISDUA(21) = MLMOTS.MOTS(5) 203 : IMATRI.LISDUA(22) = MLMOTS.MOTS(5) 204 : IMATRI.LISDUA(23) = MLMOTS.MOTS(5) 205 : IMATRI.LISDUA(24) = MLMOTS.MOTS(5) 206 : IMATRI.LISDUA(25) = MLMOTS.MOTS(5) 207 : C 208 : SEGDES MLMOTS 209 : NBEL = NFAC 210 : NBSOUS = 1 211 : NP = 1 212 : MP = 1 213 : SEGINI RR , RUX , RUY , RUZ ,RRET , 214 : & UXR , UXUX , UXUY , UXUZ ,UXRET , 215 : & UYR , UYUX , UYUY , UYUZ , UYRET , 216 : & UZR , UZUX , UZUY , UZUZ , UZRET , 217 : & RETR , RETUX , RETUY, RETUZ , RETRET 218 : C 219 : C**** Duale = IMATRI.LISDUA(1) = 'RN' 220 : C Primale = IMATRI.LISPRI(1) = 'RN' 221 : C -> IMATRI.LIZAFM(1,1) = RR 222 : C 223 : IMATRI.LIZAFM(1,1) = RR 224 : IMATRI.LIZAFM(1,2) = RUX 225 : IMATRI.LIZAFM(1,3) = RUY 226 : IMATRI.LIZAFM(1,4) = RUZ 227 : IMATRI.LIZAFM(1,5) = RRET 228 : C 229 : IMATRI.LIZAFM(1,6) = UXR 230 : IMATRI.LIZAFM(1,7) = UXUX 231 : IMATRI.LIZAFM(1,8) = UXUY 232 : IMATRI.LIZAFM(1,9) = UXUZ 233 : IMATRI.LIZAFM(1,10) = UXRET 234 : C 235 : IMATRI.LIZAFM(1,11) = UYR 236 : IMATRI.LIZAFM(1,12) = UYUX 237 : IMATRI.LIZAFM(1,13) = UYUY 238 : IMATRI.LIZAFM(1,14) = UYUZ 239 : IMATRI.LIZAFM(1,15) = UYRET 240 : C 241 : IMATRI.LIZAFM(1,16) = UZR 242 : IMATRI.LIZAFM(1,17) = UZUX 243 : IMATRI.LIZAFM(1,18) = UZUY 244 : IMATRI.LIZAFM(1,19) = UZUZ 245 : IMATRI.LIZAFM(1,20) = UZRET 246 : C 247 : IMATRI.LIZAFM(1,21) = RETR 248 : IMATRI.LIZAFM(1,22) = RETUX 249 : IMATRI.LIZAFM(1,23) = RETUY 250 : IMATRI.LIZAFM(1,24) = RETUZ 251 : IMATRI.LIZAFM(1,25) = RETRET 252 : C 253 : SEGDES MATRIK 254 : SEGDES IMATRI 255 : C 256 : C**** Fin definition MATRIK 257 : C 258 : DO IFAC=1,NFAC,1 259 : NGF=MELEFC.NUM(1,IFAC) 260 : NGC=MELEFC.NUM(2,IFAC) 261 : NLF=MLEMF.LECT(NGF) 262 : NLC=MLEMC.LECT(NGC) 263 : NLCB=MLEMCB.LECT(NGF) 264 : VOLU=MPVOL.VPOCHA(NLC,1) 265 : SURF=MPSURF.VPOCHA(NLF,1) 266 : C In CASTEM les normales sont sortantes 267 : CNX=-1*MPNORM.VPOCHA(NLF,1) 268 : CNY=-1*MPNORM.VPOCHA(NLF,2) 269 : CNZ=-1*MPNORM.VPOCHA(NLF,3) 270 : CTX=-1*MPNORM.VPOCHA(NLF,4) 271 : CTY=-1*MPNORM.VPOCHA(NLF,5) 272 : CTZ=-1*MPNORM.VPOCHA(NLF,6) 273 : CT1X=-1*MPNORM.VPOCHA(NLF,7) 274 : CT1Y=-1*MPNORM.VPOCHA(NLF,8) 275 : CT1Z=-1*MPNORM.VPOCHA(NLF,9) 276 : C Variables au centre 277 : RC=MPRC.VPOCHA(NLC,1) 278 : PC=MPPC.VPOCHA(NLC,1) 279 : UXC=MPVC.VPOCHA(NLC,1) 280 : UYC=MPVC.VPOCHA(NLC,2) 281 : UZC=MPVC.VPOCHA(NLC,3) 282 : GAMC=MPGAMC.VPOCHA(NLC,1) 283 : C Variables à la face 284 : RF=MPLIM.VPOCHA(NLCB,1) 285 : UXF=MPLIM.VPOCHA(NLCB,2) 286 : UYF=MPLIM.VPOCHA(NLCB,3) 287 : UZF=MPLIM.VPOCHA(NLCB,4) 288 : PF=MPLIM.VPOCHA(NLCB,IDIM+2) 289 : C 290 : C******* On calcule UN, UT ASON, S 291 : C 292 : UNC=(UXC*CNX)+(UYC*CNY)+(UZC*CNZ) 293 : * UTC=(UXC*CTX)+(UYC*CTY) 294 : UNF=(UXF*CNX)+(UYF*CNY)+(UZF*CNZ) 295 : UTF=(UXF*CTX)+(UYF*CTY)+(UZF*CTZ) 296 : UT1F=(UXF*CT1X)+(UYF*CT1Y)+(UZF*CT1Z) 297 : C 298 : ASONC=(GAMC*PC/RC)**0.5D0 299 : ASONF=(GAMC*PF/RF)**0.5D0 300 : C 301 : * SC=PC/(RC**GAMC) 302 : SF=PF/(RF**GAMC) 303 : C 304 : C******* Densite, vitesse, pression sur le bord 305 : C 306 : GM1=(GAMC-1.0D0) 307 : USGM1=1.0D0/GM1 308 : DSGM1=2.0D0*USGM1 309 : G1=UNC-(DSGM1*ASONC) 310 : G3=UNF+(DSGM1*ASONF) 311 : UN=0.5D0*(G1+G3) 312 : ASON=(0.5D0*(G3-G1)) 313 : ASON=ASON/DSGM1 314 : ASON2=ASON*ASON 315 : S=SF 316 : UT=UTF 317 : UT1=UT1F 318 : RHO=ASON2/(GAMC*S) 319 : RHO=RHO**USGM1 320 : P=RHO*ASON2/GAMC 321 : UX=(UN*CNX)+(UT*CTX)+(UT1*CT1X) 322 : UY=(UN*CNY)+(UT*CTY)+(UT1*CT1Y) 323 : UZ=(UN*CNZ)+(UT*CTZ)+(UT1*CT1Z) 324 : C 325 : C******* Derivatives 326 : C 327 : DUNDG1=0.5D0 328 : DASDG1=-0.5D0/DSGM1 329 : DRHDG1=GAMC*S 330 : DRHDG1=1.0D0/DRHDG1 331 : DRHDG1=DRHDG1**USGM1 332 : DRHDG1=DRHDG1*DSGM1 333 : DRHDG1=DRHDG1*(ASON**((3.0D0-GAMC)/(GAMC-1.0D0))) 334 : DRHDG1=DRHDG1*DASDG1 335 : DPDG1=((ASON2/GAMC)*DRHDG1)+(((2*ASON*RHO)/GAMC)*DASDG1) 336 : CC 337 : CC******* Test 338 : CC 339 : C DFEDG1=(DUNDG1*GAMC*USGM1*P) + (UN*GAMC*USGM1*DPDG1) + 340 : C & (0.5D0*DRHDG1*UN*((UN*UN)+(UT*UT))) + 341 : C & (0.5D0*RHO*DUNDG1*((UN*UN)+(UT*UT))) + 342 : C & (RHO*UN*UN*DUNDG1) 343 : C CACCA=UN*GAMC*USGM1*P + 0.5D0*RHO*UN*(UN*UN+UT*UT) 344 : C EPS=1.0D-6 345 : C G1=G1*(1+EPS) 346 : C CELL=UN 347 : C UN=0.5D0*(G1+G3) 348 : C write(*,*) DUNDG1, ((UN - CELL)/(EPS*G1)) 349 : C CELL=ASON 350 : C ASON=(0.5D0*(G3-G1)) 351 : C ASON=ASON/DSGM1 352 : C write(*,*) DASDG1, ((ASON - CELL)/(EPS*G1)) 353 : C ASON2=ASON*ASON 354 : C S=SF 355 : C UT=UTF 356 : C CELL=RHO 357 : C RHO=ASON2/(GAMC*S) 358 : C RHO=RHO**USGM1 359 : C write(*,*) DRHDG1, ((RHO - CELL)/(EPS*G1)) 360 : C CELL=P 361 : C P=RHO*ASON2/GAMC 362 : C write(*,*) DPDG1, ((P - CELL)/(EPS*G1)) 363 : C CELL=CACCA 364 : C CACCA=UN*GAMC*USGM1*P + 0.5D0*RHO*UN*(UN*UN+UT*UT) 365 : C write(*,*) DFEDG1, ((CACCA - CELL)/(EPS*G1)) 366 : CC 367 : CC************************************************************ 368 : CC 369 : DUXDG1=DUNDG1*CNX 370 : DUYDG1=DUNDG1*CNY 371 : DUZDG1=DUNDG1*CNZ 372 : C 373 : DFRDG1=(DRHDG1*UN)+(RHO*DUNDG1) 374 : DFMXG1=(DRHDG1*UN*UX)+(RHO*DUNDG1*UX)+ 375 : & (RHO*UN*DUXDG1)+(DPDG1*CNX) 376 : DFMYG1=(DRHDG1*UN*UY)+(RHO*DUNDG1*UY)+ 377 : & (RHO*UN*DUYDG1)+(DPDG1*CNY) 378 : DFMZG1=(DRHDG1*UN*UZ)+(RHO*DUNDG1*UZ)+ 379 : & (RHO*UN*DUZDG1)+(DPDG1*CNZ) 380 : DFEDG1=(DUNDG1*GAMC*USGM1*P) + (UN*GAMC*USGM1*DPDG1) + 381 : & (0.5D0*DRHDG1*UN*((UN*UN)+(UT*UT)+(UT1*UT1))) + 382 : & (0.5D0*RHO*DUNDG1*((UN*UN)+(UT*UT)+(UT1*UT1))) + 383 : & (RHO*UN*UN*DUNDG1) 384 : C 385 : C******* Jacobian with respect to primitive variables 386 : C 387 : DG1DR=USGM1*ASONC/RC 388 : DG1DP=-1.0D0*USGM1*ASONC/PC 389 : DG1DUX=CNX 390 : DG1DUY=CNY 391 : DG1DUZ=CNZ 392 : C 393 : COEF=SURF/VOLU 394 : C 395 : DRORO=DFRDG1*DG1DR*COEF 396 : DROUX=DFRDG1*DG1DUX*COEF 397 : DROUY=DFRDG1*DG1DUY*COEF 398 : DROUZ=DFRDG1*DG1DUZ*COEF 399 : DROP=DFRDG1*DG1DP*COEF 400 : C 401 : DUXRO=DFMXG1*DG1DR*COEF 402 : DUXUX=DFMXG1*DG1DUX*COEF 403 : DUXUY=DFMXG1*DG1DUY*COEF 404 : DUXUZ=DFMXG1*DG1DUZ*COEF 405 : DUXP=DFMXG1*DG1DP*COEF 406 : C 407 : DUYRO=DFMYG1*DG1DR*COEF 408 : DUYUX=DFMYG1*DG1DUX*COEF 409 : DUYUY=DFMYG1*DG1DUY*COEF 410 : DUYUZ=DFMYG1*DG1DUZ*COEF 411 : DUYP=DFMYG1*DG1DP*COEF 412 : C 413 : DUZRO=DFMZG1*DG1DR*COEF 414 : DUZUX=DFMZG1*DG1DUX*COEF 415 : DUZUY=DFMZG1*DG1DUY*COEF 416 : DUZUZ=DFMZG1*DG1DUZ*COEF 417 : DUZP=DFMZG1*DG1DP*COEF 418 : C 419 : DPRO=DFEDG1*DG1DR*COEF 420 : DPUX=DFEDG1*DG1DUX*COEF 421 : DPUY=DFEDG1*DG1DUY*COEF 422 : DPUZ=DFEDG1*DG1DUZ*COEF 423 : DPP=DFEDG1*DG1DP*COEF 424 : C 425 : C******* Jacobian with respect to conservative variables 426 : C 427 : IF(IJAC.EQ.1)THEN 428 : C 429 : COEF1=-1.0D0*UXC/RC 430 : COEF2=-1.0D0*UYC/RC 431 : COEF3=-1.0D0*UZC/RC 432 : COEF4=0.5D0*GM1*((UXC*UXC)+(UYC*UYC)+(UZC*UZC)) 433 : C 434 : RR.AM(IFAC,1,1)=DRORO+(DROUX*COEF1)+(DROUY*COEF2)+(DROUZ 435 : $ *COEF3)+(DROP*COEF4) 436 : RUX.AM(IFAC,1,1)=(DROUX/RC)-((UXC*GM1)*DROP) 437 : RUY.AM(IFAC,1,1)=(DROUY/RC)-((UYC*GM1)*DROP) 438 : RUZ.AM(IFAC,1,1)=(DROUZ/RC)-((UZC*GM1)*DROP) 439 : RRET.AM(IFAC,1,1)=GM1*DROP 440 : C 441 : UXR.AM(IFAC,1,1)=DUXRO+(DUXUX*COEF1)+(DUXUY*COEF2)+(DUXUZ 442 : $ *COEF3)+(DUXP*COEF4) 443 : UXUX.AM(IFAC,1,1)=(DUXUX/RC)-((UXC*GM1)*DUXP) 444 : UXUY.AM(IFAC,1,1)=(DUXUY/RC)-((UYC*GM1)*DUXP) 445 : UXUZ.AM(IFAC,1,1)=(DUXUZ/RC)-((UZC*GM1)*DUXP) 446 : UXRET.AM(IFAC,1,1)=GM1*DUXP 447 : C 448 : UYR.AM(IFAC,1,1)=DUYRO+(DUYUX*COEF1)+(DUYUY*COEF2)+(DUYUZ 449 : $ *COEF3)+(DUYP*COEF4) 450 : UYUX.AM(IFAC,1,1)=(DUYUX/RC)-((UXC*GM1)*DUYP) 451 : UYUY.AM(IFAC,1,1)=(DUYUY/RC)-((UYC*GM1)*DUYP) 452 : UYUZ.AM(IFAC,1,1)=(DUYUZ/RC)-((UZC*GM1)*DUYP) 453 : UYRET.AM(IFAC,1,1)=GM1*DUYP 454 : C 455 : UZR.AM(IFAC,1,1)=DUZRO+(DUZUX*COEF1)+(DUZUY*COEF2)+(DUZUZ 456 : $ *COEF3)+(DUZP*COEF4) 457 : UZUX.AM(IFAC,1,1)=(DUZUX/RC)-((UXC*GM1)*DUZP) 458 : UZUY.AM(IFAC,1,1)=(DUZUY/RC)-((UYC*GM1)*DUZP) 459 : UZUZ.AM(IFAC,1,1)=(DUZUZ/RC)-((UZC*GM1)*DUZP) 460 : UZRET.AM(IFAC,1,1)=GM1*DUZP 461 : C 462 : RETR.AM(IFAC,1,1)=DPRO+(DPUX*COEF1)+(DPUY*COEF2)+(DPUZ 463 : $ *COEF3)+(DPP*COEF4) 464 : RETUX.AM(IFAC,1,1)=(DPUX/RC)-((UXC*GM1)*DPP) 465 : RETUY.AM(IFAC,1,1)=(DPUY/RC)-((UYC*GM1)*DPP) 466 : RETUZ.AM(IFAC,1,1)=(DPUZ/RC)-((UZC*GM1)*DPP) 467 : RETRET.AM(IFAC,1,1)=GM1*DPP 468 : C 469 : ELSEIF(IJAC.EQ.2)THEN 470 : RR.AM(IFAC,1,1)=DRORO 471 : RUX.AM(IFAC,1,1)=DROUX 472 : RUY.AM(IFAC,1,1)=DROUY 473 : RUZ.AM(IFAC,1,1)=DROUZ 474 : RRET.AM(IFAC,1,1)=DROP 475 : C 476 : UXR.AM(IFAC,1,1)=DUXRO 477 : UXUX.AM(IFAC,1,1)=DUXUX 478 : UXUY.AM(IFAC,1,1)=DUXUY 479 : UXUZ.AM(IFAC,1,1)=DUXUZ 480 : UXRET.AM(IFAC,1,1)=DUXP 481 : C 482 : UYR.AM(IFAC,1,1)=DUYRO 483 : UYUX.AM(IFAC,1,1)=DUYUX 484 : UYUY.AM(IFAC,1,1)=DUYUY 485 : UYUZ.AM(IFAC,1,1)=DUYUZ 486 : UYRET.AM(IFAC,1,1)=DUYP 487 : C 488 : UZR.AM(IFAC,1,1)=DUZRO 489 : UZUX.AM(IFAC,1,1)=DUZUX 490 : UZUY.AM(IFAC,1,1)=DUZUY 491 : UZUZ.AM(IFAC,1,1)=DUZUZ 492 : UZRET.AM(IFAC,1,1)=DUZP 493 : C 494 : RETR.AM(IFAC,1,1)=DPRO 495 : RETUX.AM(IFAC,1,1)=DPUX 496 : RETUY.AM(IFAC,1,1)=DPUY 497 : RETUZ.AM(IFAC,1,1)=DPUZ 498 : RETRET.AM(IFAC,1,1)=DPP 499 : ENDIF 500 : 501 : ENDDO 502 : C 503 : SEGDES MELEFC 504 : C 505 : SEGSUP MLEMC 506 : SEGSUP MLEMCB 507 : SEGSUP MLEMF 508 : C 509 : SEGDES MPNORM 510 : SEGDES MPVOL 511 : SEGDES MPSURF 512 : SEGDES MPRC 513 : SEGDES MPPC 514 : SEGDES MPVC 515 : SEGDES MPGAMC 516 : SEGDES MPLIM 517 : C 518 : SEGDES RR , RUX , RUY , RUZ ,RRET , 519 : & UXR , UXUX , UXUY , UXUZ ,UXRET , 520 : & UYR , UYUX , UYUY , UYUZ , UYRET , 521 : & UZR , UZUX , UZUY , UZUZ , UZRET , 522 : & RETR , RETUX , RETUY, RETUZ , RETRET 523 : C 524 : 9999 CONTINUE 525 : RETURN 526 : END 527 : 528 : 529 : 530 : 531 : 532 : 533 : 534 : 535 :
© Cast3M 2003 - All rights reserved.
Disclaimer