1 : C KON11 SOURCE BECC 10/05/05 21:15:11 6674 2 : SUBROUTINE KON11(IFLU,LOGME) 3 : C************************************************************************ 4 : C 5 : C PROJET : CASTEM 2000 6 : C 7 : C NOM : KON11 8 : C 9 : C DESCRIPTION : Subroutine appellée par KONV1 10 : C 11 : C Modelisation 2D/3D des equations d'Euler 12 : C 13 : C Calcul du flux/residu, DELTAT 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 20 :
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 9 in C:\xampp\htdocs\cast3m_kit_local_fr_en_2014\sources.php on line 147
20 :
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 9 in C:\xampp\htdocs\cast3m_kit_local_fr_en_2014\sources.php on line 147
21 : C 22 : C************************************************************************ 23 : C 24 : C ENTRÉES : IFLU : si EGAL à 1 on veut calculer le flux 25 : C IFLU : si EGAL à 2 on veut calculer le residu 26 : C 27 : C LOGME : .TRUE./.FALSE. Multi-espece/mono-espece 28 : C 29 : C*** SYNTAXE 30 : C 31 : C Discrétisation en VF "cell-centered" des équations d'Euler pour 32 : C un gaz parfait polytropique 33 : C Inconnues: densités, quantité de mouvement, énergie totale par 34 : C unité de volumes (variables conservatives) 35 : C 36 : C RCHPO1 RFLOT1 = 'KONV' 'VF' 'PERFMONO' MOT1 MOT2 LMOT1 37 : C MOD1 MCHAM1 MCHAM2 MCHAM3 MCHAM4 (MAIL1) ; 38 : C 39 : C or (Bas Mach mono-espece) 40 : C 41 : C RCHPO1 RFLOT1 = 'KONV' 'VF' 'PERFMONO' MOT1 MOT2 LMOT1 42 : C MOD1 MCHAM1 MCHAM2 MCHAM3 MCHAM4 43 : C CHPO1 CHPO2 (MAIL1) ; 44 : C 45 : C or (multiespece) 46 : C 47 : C RCHPO1 RFLOT1 = 'KONV' 'VF' 'PERFMULT' MOT1 MOT2 LMOT1 48 : C MOD1 MCHAM1 MCHAM2 MCHAM3 MCHAM4 MCHAM5 TABP ; 49 : C 50 : C ENTREES 51 : C 52 : C MOT1 : objet de type MOT 53 : C Il vaut 'RESI' si on veut calculer le résidu 54 : C Il vaut 'FLUX' si on veut calculer le flux 55 : C 56 : C MOT2 : objet de type MOT 57 : C Il indique la méthode de décentrement: 58 : C 'GODUNOV' = solveur exacte 59 : C 'VANLEER' = solveur de van Leer 60 : C 'VLH' = solveur de van Leer Hanel 61 : C 'HUSVL' = HUS (van Leer + Osher) 62 : C 'HUSVLH' = HUS (van Leer Hanel + Osher) 63 : C 'AUSMPLUS' = AUSM+ 64 : C 'ROE' = solveur de Roe 65 : C 'SS' = solveur choc-choc 66 : C 'RUSANOV' = solveur de Rusanov 67 : C 'AUSMPLM' = AUSM+ low Mach 68 : C 'RUSANOLM' = solveur de Rusanov low Mach 69 : C 'CENTERED' = solveur centré 70 : C 'ROELM' = solveur de Roe-Turkel 71 : C 'HLLC' = solveur 'HLLC' 72 : C 'HLLCLM' = solveur 'HLLC'-Turkel low Mach 73 : C 'AUSMPUP' = AUSM+up low Mach 74 : C 75 : C 76 : C LMOT1 : objet de type LISTMOTS 77 : C Noms de composantes du résultat (RCHPO1) 78 : C Il contient dans l'ordre suivant: le noms de la densité, 79 : C du momentum, de l'énergie totale par unité de volume 80 : C (le densité des constituants qui sont dans TABP.'ESPEULE' 81 : C dans le cas multi-espece) 82 : C 83 : C MOD1 : objet modele de type Navier_Stokes 84 : C 85 : C MCHAM1 : MCHAML contenant la masse volumique, qui a comme 86 : C SPG (support géométrique) l'indice 'FACEL' de 87 : C MOD1 (une composante, 'SCAL') 88 : C 89 : C MCHAM2 : MCHAML contenant la vitesse et les cosinus 90 : C directeurs du repère locale (n,t) dans le repère 91 : C global (x,y) (dans le cas 2D 6 composantes: 92 : C * 'UN' = vitesse normale (SPG =('DOMA' MOD1 'FACEL')) 93 : C * 'UT' = vitesse tangentielle (SPG =('DOMA' MOD1 'FACEL')) 94 : C * 'NX' = n.x (SPG = 'FACE') 95 : C * 'NY' = n.y (SPG = 'FACE') 96 : C * 'TX' = t.x (SPG = 'FACE') 97 : C * 'TY' = t.y (SPG = 'FACE')). 98 : C 99 : C MCHAM3 : MCHAML (SPG =('DOMA' MOD1 'FACEL')) contenant la pression du 100 : C gaz (une seule composante, 'SCAL'). 101 : C 102 : C MCHAM4 : MCHAML (SPG =('DOMA' MOD1 'FACEL')) contenant le "gamma" du 103 : C gaz (une seule composante, 'SCAL'). 104 : C 105 : C MCHAM5 : MCHAML (SPG =('DOMA' MOD1 'FACEL')) contenant les fractions 106 : C massiques du gaz dans le cas multi-espece 107 : C (noms de composantes dans TABP . 'ESPEULE') 108 : C 109 : C TABP : la table des proprietés du gaz (voir operateur 'PRIM', 110 : C modele 'PERFMULT') 111 : C 112 : C CHPO1 : vitesse de cut-off (SPG =('DOMA' MOD1 'CENTRE'), une seule 113 : C composante, 'SCAL') 114 : C A donner que pour les solveurs Bas Mach 115 : C 116 : C CHPO2 : deuxieme vitesse de cut-off (SPG = ('DOMA' MOD1 'CENTRE'), 117 : C une seule composante, 'SCAL') 118 : C A donner que pour les solveurs Bas Mach 119 : C 120 : C (MAIL1) : maillage de 'POI1' qui contient de point 'FACE' ou on ne 121 : C veut pas calculer les flux 122 : C 123 : C SORTIES 124 : C 125 : C 126 : C RCHPO1 : objet de type CHPOINT (composantes = LMOT1) 127 : C Residu si MOT2 = 'RESI' (SPG = ('DOMA' MOD1 'CENTRE')) 128 : C Flux si MOT2 = 'FLUX' (SPG = ('DOMA' MOD1 'FACE')) 129 : C 130 : C RFLOT1 : objet de type FLOTTANT 131 : C Il est le temps caracteristique associé à l'onde la plus 132 : C rapide. 133 : C 134 : C Remarque 135 : C -------- 136 : C 137 : C RCHPO1 est égal à: 138 : C * la derivé temporelle des inconnues si l'option 'RESI' est utilisée 139 : C * la projection du flux convectif sur (DOMA MOD1 'XXNORMAF') si 140 : C l'option 'FLUX' est utilisée 141 : C 142 : C 143 : C************************************************************************ 144 : C 145 : C HISTORIQUE (Anomalies et modifications éventuelles) 146 : C 147 : C HISTORIQUE : 148 : C 01/05/2005 par T. KLOCZKO (DEN/DM2S/SFME/LTMF) 149 : C Ajout d'une méthode de décentrement pour les écoulements 150 : C bas-Mach. 151 : C 152 : C MOT2 : 'ROELM' = schéma de ROE avec préconditionnement Turkel 153 : C 154 : C************************************************************************ 155 : C 156 : IMPLICIT INTEGER(I-N) 157 : -INC CCOPTIO 158 : -INC SMLMOTS 159 : -INC SMCHPOI 160 : -INC SMELEME 161 : POINTEUR MLMVIT.MLMOTS,MLMOTY.MLMOTS,MLMODT.MLMOTS 162 : C 163 : C**** Variables de COOPTIO 164 : C 165 : INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR 166 : & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ 167 : & ,IOPER, IOSGB, IOGRA, IOSAU, IORES 168 : & ,IECHO, IIMPI, IOSPI 169 : & ,IDIM, IFICLE, IPREFI 170 : & ,MCOORD 171 : & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE 172 : & ,NGMAXY, IZROSF, ISOTYP, IOSCR,LTEXLU 173 : & ,NORINC,NORVAL,NORIND,NORVAD 174 : & ,NUCROU, IPSAUV, IREFOR, ISAFOR 175 : C 176 : INTEGER IFLU, NBMET, INDMET, IRET, INDIC, NBCOMP 177 : & ,IDOMA, MELEMC, MELEMF, MELEFE, MELLIM, ICHPSU, ICHPDI 178 : & ,ICHPVO, INORM, JGN, JGM 179 : & , NC, NESP, ICACCA, IPGAZ 180 : & ,ILIINC 181 : & ,IROF, IVITF, IPF, IGAMF, IFRMAF, IUINF, IUPRI, IFLIM 182 : & ,ICHFLU, ICHRES, INEFMD, ICOND, MMODEL 183 : PARAMETER (NBMET=16) 184 : REAL*8 DT 185 : CHARACTER*8 LMETO(NBMET), TYPE 186 : CHARACTER*4 MOT 187 : CHARACTER*(40) MESERR 188 : LOGICAL LOGNC, LOGAN, LOGME 189 : C 190 : DATA LMETO/'GODUNOV ','VANLEER','VLH ', 191 : & 'HUSVL ','HUSVLH ','AUSMPLUS','ROE ', 192 : & 'SS ','AUSMPLM','RUSANOV', 'RUSANOLM', 193 : & 'CENTERED','ROELM ','HLLC ','HLLCLM ', 194 : & 'AUSMPUP ' / 195 : C 196 : C**** Initialisation des variables pour la gestion des erreurs. 197 : C 198 : LOGNC = .FALSE. 199 : LOGAN = .FALSE. 200 : MESERR = ' ' 201 : C 202 : C**** Metode utilisée 203 : C 203 : CALL LIRMOT(LMETO,NBMET,INDMET,1) 204 : IF(IERR .NE. 0)GOTO 9999 205 : IF(INDMET .EQ. 0)THEN 206 : C 207 : C******** Message d'erreur standard 208 : C 251 2 209 : C Tentative d'utilisation d'une option non implémentée 210 : C 210 : CALL ERREUR(251) 211 : ENDIF 212 : C 213 : C********************************** 214 : C**** Lecture de l'objet MODELE *** 215 : C********************************** 216 : C 217 : ICOND = 1 217 : CALL QUETYP(TYPE,ICOND,IRET) 218 : C 219 : IF(IRET.EQ.0.AND.TYPE.NE.'MMODEL')THEN 220 : WRITE(IOIMP,*)' On attend un objet MMODEL' 221 : GOTO 9999 222 : ENDIF 222 : CALL LIROBJ('MMODEL',MMODEL,ICOND,IRET) 223 : IF(IERR.NE.0)GOTO 9999 223 : CALL LEKMOD(MMODEL,IDOMA,INEFMD) 224 : C INEFMD inutilisé 225 : IF(IERR.NE.0)GOTO 9999 226 : C 227 : C**** Centre, FACE, FACEL 228 : C 228 : CALL LEKTAB(IDOMA,'CENTRE',MELEMC) 229 : IF(IERR .NE. 0) GOTO 9999 230 : C 230 : CALL LEKTAB(IDOMA,'FACE',MELEMF) 231 : IF(IERR .NE. 0) GOTO 9999 232 : C 232 : CALL LEKTAB(IDOMA,'FACEL',MELEFE) 233 : IF(IERR .NE. 0) GOTO 9999 234 : C 235 : C**** Lecture du CHPOINT contenant les surfaces des faces. 236 : C 236 : CALL LEKTAB(IDOMA,'XXSURFAC',ICHPSU) 237 : IF(IERR .NE. 0) GOTO 9999 238 : INDIC = 1 239 : NBCOMP = 1 240 : MOT = 'SCAL' 240 : CALL QUEPOI(ICHPSU, MELEMF, INDIC, NBCOMP, MOT) 241 : IF(IERR .NE. 0) GOTO 9999 242 : C 243 : C**** Lecture du CHPOINT contenant les diametres minimums. 244 : C 244 : CALL LEKTAB(IDOMA,'XXDIEMIN',ICHPDI) 245 : IF(IERR .NE. 0) GOTO 9999 246 : INDIC = 1 247 : NBCOMP = 1 248 : MOT = 'SCAL' 248 : CALL QUEPOI(ICHPDI, MELEMC, INDIC, NBCOMP, MOT) 249 : IF(IERR .NE. 0) GOTO 9999 250 : C 251 : C**** Lecture du CHPOINT contenant les volumes 252 : C 252 : CALL LEKTAB(IDOMA,'XXVOLUM',ICHPVO) 253 : IF(IERR .NE. 0) GOTO 9999 254 : INDIC = 1 255 : NBCOMP = 1 256 : MOT = 'SCAL' 256 : CALL QUEPOI(ICHPVO, MELEMC, INDIC, NBCOMP, MOT) 257 : IF(IERR .NE. 0) GOTO 9999 258 : C 259 : C**** Les normales aux faces 260 : C 261 : IF(IDIM .EQ. 2)THEN 262 : C Que les normales 262 : CALL LEKTAB(IDOMA,'XXNORMAF',INORM) 263 : IF(IERR .NE. 0) GOTO 9999 264 : JGN = 4 265 : JGM = 2 266 : SEGINI MLMVIT 267 : MLMVIT.MOTS(1) = 'UX ' 268 : MLMVIT.MOTS(2) = 'UY ' 268 : CALL QUEPO1(INORM, MELEMF, MLMVIT) 269 : SEGSUP MLMVIT 270 : IF(IERR .NE. 0) GOTO 9999 271 : ELSE 272 : C Les normales et les tangentes 273 : TYPE = ' ' 273 : CALL ACMO(IDOMA,'MATROT',TYPE,INORM) 274 : IF (TYPE .NE. 'CHPOINT ') THEN 274 : CALL MATRAN(IDOMA,INORM) 275 : IF(IERR .NE. 0) GOTO 9999 276 : ENDIF 277 : JGN = 4 278 : JGM = 9 279 : SEGINI MLMVIT 280 : MLMVIT.MOTS(1) = 'UX ' 281 : MLMVIT.MOTS(2) = 'UY ' 282 : MLMVIT.MOTS(3) = 'UZ ' 283 : MLMVIT.MOTS(4) = 'RX ' 284 : MLMVIT.MOTS(5) = 'RY ' 285 : MLMVIT.MOTS(6) = 'RZ ' 286 : MLMVIT.MOTS(7) = 'MX ' 287 : MLMVIT.MOTS(8) = 'MY ' 288 : MLMVIT.MOTS(9) = 'MZ ' 288 : CALL QUEPO1(INORM, MELEMF, MLMVIT) 289 : SEGSUP MLMVIT 290 : ENDIF 291 : C 292 : C******************************** 293 : C**** Fin table domaine ********* 294 : C******************************** 295 : C 296 : C**** On va lire les pointeurs des MCHAMLs 297 : C Lecture du MCHAML 'FACEL' densité 298 : C 299 : TYPE='MCHAML ' 299 : CALL LIROBJ(TYPE,IROF,1,IRET) 300 : IF(IERR.NE.0) GOTO 9999 301 : C 302 : C**** Lecture du MCHAML 'FACEL' vitesse 303 : C 304 : TYPE='MCHAML ' 304 : CALL LIROBJ(TYPE,IVITF,1,IRET) 305 : IF(IERR .NE. 0) GOTO 9999 306 : C 307 : C**** Lecture du MCHAML 'FACEL' contenant la pression 308 : C 309 : TYPE='MCHAML ' 309 : CALL LIROBJ(TYPE,IPF,1,IRET) 310 : IF(IERR .NE. 0) GOTO 9999 311 : C 312 : C**** Lecture du MCHAML 'FACEL' contenant les gamma 313 : C 314 : TYPE='MCHAML ' 314 : CALL LIROBJ(TYPE,IGAMF,1,IRET) 315 : IF(IERR .NE. 0) GOTO 9999 316 : C 317 : C**** Si LOGME -> MULTIESPECES 318 : C 319 : IF(LOGME)THEN 320 : C 321 : C******** Lecture du MCHAML 'FACEL' contenant les fractiones massiques 322 : C 323 : TYPE='MCHAML ' 323 : CALL LIROBJ(TYPE,IFRMAF,1,IRET) 324 : IF(IERR .NE. 0) GOTO 9999 325 : C 326 : C********** Lecture de la table qui contient le proprieté du gaz 327 : C 328 : TYPE='TABLE ' 328 : CALL LIROBJ(TYPE,IPGAZ,1,IRET) 329 : IF(IERR .NE. 0) GOTO 9999 330 : TYPE=' ' 330 : CALL ACMO(IPGAZ,'ESPEULE ',TYPE,MLMOTY) 331 : IF(IERR .NE. 0) GOTO 9999 332 : IF(TYPE .NE. 'LISTMOTS')THEN 333 : C 334 : C********** Message d'erreur standard 335 : C -301 0 %m1:40 336 : C 337 : MOTERR(1:40) = 'TABGAS = ??? ' 338 : WRITE(IOIMP,*) MOTERR 339 : C 340 : C********** Message d'erreur standard 341 : C 21 2 342 : C Données incompatibles 343 : C 343 : CALL ERREUR(21) 344 : GOTO 9999 345 : ENDIF 346 : C 347 : SEGACT MLMOTY 348 : NESP = MLMOTY.MOTS(/2) 349 : C 350 : ELSE 351 : IFRMAF = 0 352 : NESP=0 353 : ENDIF 354 : C 355 : C**** La list des inconnues 356 : C 357 : TYPE='LISTMOTS' 357 : CALL LIROBJ(TYPE,ILIINC,1,IRET) 358 : IF(IERR .NE. 0) GOTO 9999 359 : MLMOTS = ILIINC 360 : SEGACT MLMOTS 361 : NC = MLMOTS.MOTS(/2) 362 : SEGDES MLMOTS 363 : IF(NC .NE. (IDIM+2+NESP))THEN 364 : MOTERR(1:40) = 'LISTINCO = ???' 365 : WRITE(IOIMP,*) MOTERR 366 : C 367 : C******* Message d'erreur standard 368 : C 21 2 369 : C Données incompatibles 370 : C 370 : CALL ERREUR(21) 371 : GOTO 9999 372 : ENDIF 373 : C 374 : C**** Boundary condition 375 : C 376 : IRET=0 377 : TYPE='MAILLAGE' 377 : CALL LIROBJ(TYPE,IFLIM,0,IRET) 378 : IF(IERR.NE.0)GOTO 9999 379 : IF(IRET .EQ. 0)THEN 380 : MELLIM = 0 381 : ELSE 382 : MELEME=IFLIM 383 : SEGACT MELEME 384 : ICACCA=MELEME.NUM(/2) 385 : IF(ICACCA .EQ. 0)THEN 386 : MELLIM = 0 387 : ELSE 388 : MELLIM = IFLIM 389 : ENDIF 390 : SEGDES MELEME 391 : ENDIF 392 : C 393 : C**** Bas Mach (AUSMPLM, RUSANOLM, ROELM, HLLCLM, AUSMPUP) 394 : C 395 : IF((INDMET .EQ. 9) .OR. (INDMET .EQ. 11) .OR. 396 : & (INDMET .EQ. 13) .OR. (INDMET .EQ. 15) .OR. 397 : & (INDMET .EQ. 16)) THEN 398 : TYPE = 'CHPOINT ' 399 : C 400 : C******* Reference speed 401 : C 401 : CALL LIROBJ(TYPE,IUINF,1,IRET) 402 : IF(IERR .NE. 0) GOTO 9999 403 : INDIC = 1 404 : NBCOMP = 1 405 : MOT = 'SCAL' 405 : CALL QUEPOI(IUINF, MELEMC, INDIC, NBCOMP, MOT) 406 : IF(IERR .NE. 0) GOTO 9999 407 : C 408 : C******* Minimal cutoff 409 : C 410 : TYPE = 'CHPOINT ' 410 : CALL LIROBJ(TYPE,IUPRI,1,IRET) 411 : IF(IERR .NE. 0) GOTO 9999 412 : INDIC = 1 413 : NBCOMP = 1 414 : MOT = 'SCAL' 414 : CALL QUEPOI(IUPRI, MELEMC, INDIC, NBCOMP, MOT) 415 : IF(IERR .NE. 0) GOTO 9999 416 : C 417 : ELSE 418 : IUINF=0 419 : IUPRI=0 420 : ENDIF 421 : C 422 : C**** Creation des flux aux interfaces 423 : C 424 : TYPE = 'CHPOINT ' 424 : CALL KRCHP1(TYPE, MELEMF, ICHFLU, MLMOTS) 425 : C 426 : C**** Calcul des flux et du pas du temps. 427 : C 428 : IF(IDIM .EQ. 2)THEN 428 : CALL KONFL1(LOGME,INDMET, 429 : & IROF,IVITF,IPF,IGAMF,IFRMAF, 430 : & ICHPSU,ICHPDI, 431 : & MELEMC,MELEMF,MELEFE,MELLIM, 432 : & IUINF,IUPRI, 433 : & ICHFLU, 434 : & DT, 435 : & LOGNC,LOGAN,MESERR) 436 : ELSEIF(IDIM .EQ. 3)THEN 436 : CALL KONFL3(LOGME,INDMET, 437 : & IROF,IVITF,IPF,IGAMF,IFRMAF, 438 : & ICHPSU,ICHPDI, 439 : & MELEMC,MELEMF,MELEFE,MELLIM, 440 : & IUINF,IUPRI, 441 : & ICHFLU, 442 : & DT, 443 : & LOGNC,LOGAN,MESERR) 444 : ENDIF 445 : C 446 : IF(LOGAN)THEN 447 : C 448 : C******* Anomalie detectée 449 : C 450 : C 451 : C******* Message d'erreur standard 452 : C -301 0 453 : C %m1:40 454 : C 455 : MOTERR(1:40) = MESERR(1:40) 456 : WRITE(IOIMP,*) MOTERR(1:40) 457 : C 458 : C******* Message d'erreur standard 459 : C 5 3 460 : C Erreur anormale.contactez votre support 461 : C 461 : CALL ERREUR(5) 462 : GOTO 9999 463 : ENDIF 464 : IF(LOGNC)THEN 465 : C 466 : C******* Message d'erreur standard 467 : C -301 0 468 : C %m1:40 469 : C 470 : MOTERR(1:40) = MESERR(1:40) 471 : WRITE(IOIMP,*) MOTERR(1:40) 472 : C 473 : C******* Message d'erreur standard 474 : C 460 2 475 : C Pas de convergence dans les itérations internes 476 : C 476 : CALL ERREUR(460) 477 : GOTO 9999 478 : ENDIF 479 : C 480 : C**** Calcul de residu (IFLU = 2) 481 : C 482 : IF(IFLU .EQ. 2)THEN 483 : TYPE = 'CHPOINT ' 483 : CALL KRCHP1(TYPE, MELEMC, ICHRES, MLMOTS) 484 : C 484 : CALL KONRE1(MELEMC,MELEMF,MELEFE,ICHPVO, 485 : & ICHFLU, ICHRES, 486 : & LOGAN,MESERR) 487 : IF(LOGAN)THEN 488 : C 489 : C******* Anomalie detectée 490 : C 491 : C 492 : C******* Message d'erreur standard 493 : C -301 0 494 : C %m1:40 495 : C 496 : MOTERR(1:40) = MESERR(1:40) 497 : WRITE(IOIMP,*) MOTERR(1:40) 498 : C 499 : C******* Message d'erreur standard 500 : C 5 3 501 : C Erreur anormale.contactez votre support 502 : C 502 : CALL ERREUR(5) 503 : GOTO 9999 504 : ENDIF 505 : ELSE 506 : ICHRES = 0 507 : ENDIF 508 : C 509 : C**** Ecriture des resultats 510 : C 510 : CALL ECRREE(DT) 511 : TYPE = 'CHPOINT ' 511 : IF(ICHRES .NE. 0) CALL ECROBJ(TYPE,ICHRES) 511 : IF(ICHFLU .NE. 0) CALL ECROBJ(TYPE,ICHFLU) 512 : 9999 CONTINUE 513 : RETURN 514 : END 515 : 516 : 517 : 518 : 519 : 520 : 521 : 522 : 523 : 524 : 525 : 526 :
© Cast3M 2003 - All rights reserved.
Disclaimer