e-vt*,-ntee\ e.` tee 04
Transcription
e-vt*,-ntee\ e.` tee 04
GUIDE D'UTILISATION DU LOGICIEL ernril 2 numulumm« riom T ANSPORT TERRESTRE DES PERSONNES r7.1,=r18,011%.1== -rira rtnia=rninun -r""ri=emos=1= -ff- m= RT TERRESTRE RANSPORT TI oNNEs SONNES \ TRAter RE DES PER; TERRESTRE «NSPORT TE 'i iNNES TRAIS k4See „dTRE DES PERS e-vt*,-ntee\ CIRT TERRESTRE çoi d li.s'\ sargES TRANSPQRT TE ç)oee \,,,,,■ -JES PERSOruivEssir dg ,se GeeSe ,4-ir TERRESTRE DES"-PERI es.' e.' ....,s TRANSPORT TERRESTRE oya, étee t.04 PERSONNES TRANSPORT TE DES PERSONNES TRAC y0TERRESTRE DES PERI NSPORT TERRESTRE NIVES TRANSPORT TE ES PERSONNES TRAP ERRESTRE DES PERS ORT TERRESTRE TRANSPORT TE RSONNES TRAr STRIE DES PERS -71.1:1,turugmb î RT TERRESTRE r: Prf —TERRESTRE DES PERSONNES TRANSPORT TE E DES PERSONNES 'Y FIA TERRESTRE DES PERSON, RSINISPC3RT TERRESTRE DES PERSONNES TRAFSJ _ t RANsPoRT TERRESTRL rj 1:iNNES 'tPANSPORT TERRESTRE DES PERS sorvINIEs TRANSPORT TE DES PERSONNES T ANSPORT TERRESTRE tE DES PERSONNES TRANS RRESTRE DES PERSONNES TRANSPORT TE NSPORT TERRESTRE DES PERSONNES TRAr TERRESTRE DES PERSONN RANSPORT TERRESTRE DES PERSONNES TRANSPORT TERRESTRE DES PERI sor.,INEs T ANSPC3RT TERRESTRE DES PERSONNES TRANSPORT TERRESTRE IE DES PERSON ES TRANSPORT TERRESTRE DES PERSONNES TRANSPORT TE TERRESTRE ES PERSONNES TRANSPORT TERRESTRE DES PERSONNES TRAr RANSPCIRT TERRESTRE DES PERSONNES TRANSPORT TERRESTRE DES PERS SONNES TRANSPORT TERRESTRE DES PERSONNES TRANSPORT TERResTRE-sEs - \ç de ' _. Gouvernement du Québec Ministère des Transports Direction générale du transport terrestre des personnes lly • • ;eirëtgéu'ri dfé Novembre ' 1984 . jet DIRECTEUR Jean-Pierre Primeau,,ing, COORDONNATEUR Michael RÉDACTION André Babin, C.R.T. Linda James-Lefebvre, C.R.T. RÉVISION Pierre TreMblay, ing. TRAITEMENT DE TEXTES Nicole Audet PRÉAMBULE s • 11 Ce document se veut un guide d'utilisation du logiciel Ure% (I), tel qu'implanté sur l'ordinateur de la RAAQ pour le Ministère des transports du Québec (M.T.Q.). Il résume l'état de la situation, au moment de sa publication, des procédures d'accès et de création des banques de données relatives à'6092 . Des mises-à-jour périodiques sont à prévoir, au fur à mesure qu'évolue l'environnement informatique dans lequel le logiciel est installé; il appartient au lecteur de s'assurer, auprès du Service systèmes d'information du transport des personnes des de la D.G.T.T.P.( 2 ), que le présent document constitue la version la plus récente du guide d'utilisation. Le logiciel est installé de façon à pouvoir être facilement utilisé par tous les gens du Ministère des transports.  cet effet, les procédures ont été paramétrisées pour permettre l'identification rapide du compte et du projet de l'utilisateur. De même, le logiciel exécutable de Cre% réside sur des fichiers à accès libre pour tous les usagers. On doit considérer comme prérequis à la lecture et à la bonne compréhension de ce document des notions solides du système TSO/SPF, ainsi qu'une connaissance adéquate du logiciel grrrz consulter le manuel de l'usager d'erre% . À cet effet, le lecteur pourra (User's Manual), disponible à la D.G.T.T.P. La D.G.T.T.P. tient à remercier la Direction des systèmes de gestion pour son support et sa précieuse collaboration tout au long de l'implantation du logiciel ge2 . Equilibre Multimodal-Multimodal Equilibrium, développé au Centre de Recherche sur les Transports de l'Université de Montréal, Coordonnateur: Michael Florian. D.G.T.T.P: Direction générale du transport terrestre des personnes. • • liste des révisions Numéro Date Détail 0 6 novembre 1984 Texte de base SD 3IIVW S I]31 9V 1 • • • TABLE DES MATIÈRES • PAGE j. PRÉAMBULE iii LISTE DES RÉVISIONS TABLE DES MATIÈRES iv LISTE DES TABLEAUX viii SECTION 1 - AUTORISATION D'ACCÈS à • emrrI2 1-1 1.1 Conditions préalables 1-2 1.2 Fichier de communication 1-2 SECTION 2 - ACCÈS À ere2 , AVEC LA PROCÉDURE EMME2 2-1 2.1 Appel de la procédure EMME2 2-2 2.2 Contenu de la procédure EMME2 2-3 2.3 Les paramètres de la procédure EMME2 2-6 2.3.1 Le paramètre NNN(nnn) 2-7 2.3.2 Le paramètre USERPREF(préfixe) 2-8 2.3.3 Le paramètre VOLSER(volume) 2-8 2.3.4 Les paramètres BANK(nomdebanque) et BANKDISP(disp) 2.3.5 2-9 Les paramètres BANKTOT(btot), BANKSP(bsp) et BANKINCR(bincr) 2-9 2.3.5.1 Évaluation des dimensions d'une banque 2-9 2.3.5.2 Allocation de l'espace-disque 2-13 2.3.6 Le paramètre PUNCHSP(psp) 2-15 2.3.7 Le paramètre PRINTSP(prtsp) 2-17 2.3.8 Le paramètre PLOTSP(pltsp) 2-19 2.3.9 Le paramètre BATCHLIB(fichierpartitionnébatch) 2.3.10 et ses paramètres associés 2-23 Le paramètre USERPROC(fichierpartionnéproc) 2-27 vi • PAGE SECTION 3 - CRÉATION D'UNE BANQUE DE DONNÉES 3-1 3.1 3-2 Étape 1: Autorisation d'accès 3.2 Étape 2: Identification du fichier de données en lot 3-2 3.3 Étape 3: Dimensions de la banque 3-2 3.4 Étape 4: Création d'une procédure spécifique d'accès à la banque 3-2 3.5 Étape 5: Création de la banque 3-5 3.6 Étape 6: Lecture des données dans la banque 3-5 3.6.1. Données d'un scénario 3-6 3.6.2. Données générales de la banque 3-8 SECTION 4 - EXEMPLE DE CRÉATION D'UNE BANQUE DE DONNÉES 4-1 4.1 Autorisation d'accès 4-2 4.2 Fichier de données en lot 4-2 4.3 Dimensions de la banque 4-4 4.4 Procédure spécifique d'accès 4-5 4.5 Création de la banque 4-7 4.6 Lecture des données dans la banque 4-7 vii PAGE APPENDICE "A" - DESCRIPTION DES FICHIERS A-1 A.1 Fichiers généraux A-2 A.2 A-5 Fichiers particuliers à la D.G.T.T.P., à Montréal APPENDICE "B" - DESCRIPTION DES BANQUES DE LA D.G.T.T.P MONTRÊAL B71 B.1 Réseau de transport collectif de la région de Montréal B-2 B.1.1 La procédure d'accès B-2 B.1.2 Préparation de la simulation B-4 B.2 Réseau routier de la région de Montréal B-7 B.3 Plan de transport de la Rive-Sud B-9 B.4 Plan de transport Cil-Lavai B-10 APPENDICE "C" MODIFICATION AUX - VALEURS PERMISES POUR LE PARAMÈTRE "BANKTOT" APPENDICE "D" INTERFACES - MATRICES UTPS - D.1 C-1 emm92 D-1 Programme MATUTEM D-2 D.2 Programme MATEMUT D-4 D.3 Matrices de temps routier pour isochrones D-7 D.3.1 Méthode "Nuit" D-7 D.3.2 Méthode "Jour" D-11 D.3.3 Traçage des isochrones D-15 • S 30 USI 1 • x nv] ion • • LISTE DES TABLEAUX • ix • PAGE LISTE DES TABLEAUX • 2-1 Procédure générale EMME2 2-4 2-2 Programme d'impression général 2-18 2-3 Procédure de rappel d'un traçage 2-20 2-4 Procédure de traçage sur Calcomp 2-22 2-5 Table des terminaux 2-25 2-6 Schéma des manipulations de données 2-26 3-1 Procédure d'initialisation d'une session 3-3 3-2 Exemple de procédure d'appel spécifique d'EMME2 3-4 4-1 Index d'un fichier de données typique 4-3 4-2 Procédure "EMSETUP" 4-5 4-3 Procédure "MTLTC" 4-6 B-1 Procédure "MTLRR" B-7 B-2 Procédure "RIVESD" B-9 B-3 Procédure "LAVAL35" B-10 B-4 Procédure "LAVAL8" B-11 B-5 Procédure "LAVAL105" B-12 C-1 Procédure "JCLBDISK" C-2 C-2 Exemple de modification à la procédure EMME2 C-4 D-1 Programme "Nuit" pour conversion des matrices D-8 D-2 Programme "Jour" pour conversion des matrices D-13 • • • SECTION 1 AUTORISATION- D'ACCÈS À ernr1g2 1-2 Bien que l'accès à l'utilisation de telt ne fasse l'objet d'aucune protection spéciale, la D.G.T.T.P. suggère aux usagers éventuels de consulter les responsables de l'implantation de ce logiciel avant d'entreprendre des travaux comportant des opérations de création ou de destruction de banques de données. Ces gens pourront au besoin assister tout usager dans ce genre de tâche. entendu que l'accès aux programmes-sources de Il est d'autre part 01e2 est prohibé. 1.1 Conditions préalables Pour qu'un usager ait accès au logiciel Ce2 , il suffit que son profil d'usager lui permette l'accès à un volume de disque et au logiciel "TSO". Pour le reste du présent texte, on établira la convention suivante: le symbole "préfixe" correspond au numéro de compte informatique de l'usager suivi du numéro de projet alloué à l'usager. (exemple: A017 .P0108) (Voir la section 2.3.2) le symbole "ZZZ" correspond au numéro d'usager de l'utilisateur. (exemple: logonid = nu188 alors ZZZ est 188) 1.2 Fichier de communication Au début de chaque session de travail, ellt créera temporairement, pour la durée de cette session, le fichier partionné préfixe.EMPROZZZ , liaison. où ZZZ correspond au numéro de l'usager en 1-3 • Ce fichier permettra la communication entre les divers modules d' 011192 au cours de la session et est transparent à l'usager. Il faut par contre faire attention de ne pas utiliser ce nom de fichier à d'autres fins, puisqu'il serait automatiquement détruit par CM197 à l'initialisation de la prochaine session. • • • • SECTION 2 ACCÈS À enr912,AVEC LA PROCÉDURE EMME2 2-2 • Nous décrirons ici la procédure générale "EMME2" qui permet l'accès au logiciel lui-même. Cette procédure TSO peut et devrait normalement être appelée par des procédures plus spécifiques, préparées par l'usager pour son projet particulier, afin d'accélérer l'accès à efi11 Ç2 . En effet, la plupart des paramètres substituables seront invariables pour une banque donnée dans le contexte d'un projet donné, de sorte que l'appel à cette banque pourra se faire par une seule commande, comme nous le verrons à la section 3.4 plus loin. 2.1 Appel de la procédure EMME2 Afin de démarrer la procédure d'accès à ork , l'usager doit, une fois la session TSO active, demander l'exécution de la procédure d'initialisation générale: • EXEC 'EMME2.EMPROC(EMSETUP Cette initialisation sera valide tant que la session TSO durera, peu importe le nombre de fois où EMME2 est appelée. À l'intérieur de la session TSO donc, à chaque fois que l'on voudrait accéder à une banque de données sous elee. 2 , on exécute la procédure EMME2 en entrant sur une seule ligne: pour une banque existante: EMME2 USERPREF(préfixe) VOLSER(volume) BANK(nomdebanque) BANKTOT(btot) BANKSP(bsp) BANKINCR(bincr) Pour une banque qu'on désire créer: EMME2 NNN(001) USERPREF(préfixe) VOLSER(volume) BANKDISP(NEW) BANK(nomdebanque) BANKTOP(btot) BANKSP(bsp) BANKINCR(bincr) BATCHLIB(fichierpartitionnébatch) Nous décrirons plus loin chacun de ces paramètres. 2-3 • 2.2 Contenu de la procédure EMME2 Le tableau 2-1 reproduit intégralement le contenu de la procédure générale EMME2 qui sert à appeler le logiciel 0M 192 . La procédure est abondamment commentée et contient des valeurs par défaut pour la plupart des paramètres substituables. • tableau 2-1 procédure générale EMME 2 PROC /l<EM2•/ 0 NHIH002lUSE~'PREF< 'A017.P0108' > VOLSER<lffll302>BANI\ () BAHKDISP (()l.D > BAlfiTOT< 380 > BAlf(Sf' <300 > BANK IHŒ C40 > l1AP <> PUNCHSP<O> PRIHTSf'<1 > PLOTSl'<O>BATCK..IBO 0002<D002IN> DH1 <D141IH> 0201 ([r201IH> Ir202<D202IH>D211 Cll211 IN> D221W221INl 0231<02311Nlll301<[t301INl [1311([1311INl D411CD4111N>-· USERPROC< 'A017,P0108,El1f'ROCX' lEl1PREF<E111iE2i EHLH•<EHLIBl El10BJ<El10BJ> Elt.OADCEHLOADl CONTROL HAIN /•LIST SYlt.IST I • PROŒillJ.:E TO EXECUTE E1111E2 !• 84 06 OB LU I• CALLING SEOUENr..E: !• EHl1E2 !• I• <FTIONAL PARAt'ETERS Af.f: SPECIFI\::D AS PARAMETERCVALUE> F<l..LOWING I• E1111E2 <SEE EXA11Ft.ES IN HE F'ROC STATEl1ElH> IN THE f·ARAHETER I• ItESCT<IPTIONS, ll.l INDICATES HE USER h'JMBER TAKEH F~'ClH HE USER I• ID tuZZZ, XXX.YYY IN!t!CATES TIE USER DSNA/1E PREFIX TAIŒN F~1l!1 !• PAAAHETER USERl'REF, EHl1E2 INDICATES THE SYSTEH PREFIX TAliEH FROl1 !• PARAHTER El1f'REF, !• !• OPTIONAL PARAt'ETffi'Sl !• NNN HODllE NUl1ItER 3 DIGITS, USE Oil.Y WIEH CREATING A !• NEW DATA BASE < NN!HOOll >, !• USERPREF USER PREFIX USERPREFC'XXX, YYY') USEI• TO FOF.'l'I FIRST !• PART O' DSNAl1E OF ALL FILES EXŒPT !• El1HE/2 SYSTEM FILES, !• E.6, XXX, YYY .EHPRTZZZ !• VOL SER USER VOLUHE VOLUHE SERIAI.. USED FOR ltU. FILES EXCEF'T !• El1HE/2 SYSTEH FILES, SERIAI.. I• DATA BANI< FILE BANKCXXXXXJO USED TO FORl1 DATA BANK !• FILE NAl1El XXX, YYY ,XXXXXX !• IWIKflISP D!Sf' OF EtANK DATA BANK FILE HUST l<E ALLOCATEit BY !• USll«l BANKDISP<NEW> IN THIS F'l\'OC, !• BANl\TOT BANK Sf'ACE ltUl1BER O' 1)1..0Cl\S <4628 > FOR BANK !• BANl\SP PRIHARY SPAŒ IUŒIER OF RCJC!(S <4628 > F'IUHARY I• ALLOCATION rœ BANK !• BANK! M::R SECONltARY Sf' NUl1BER OF ROCKS <4628> SECONDARY I• AL.LOCATION FOR BANK !• NOTE: DANKTOT 11UST BE LESS OR EClUAL TO !• EIAla<Sf' • 15•BANKINŒ !• f'UHCHSP PUHCH Sf'ACE NUHBER CF CHJCKS (9040) FOR f'RIMRY !• ALLOCATION FOR PUNCH FILE !• XXX, YYY .El1F'CHZZZ, îtELETErt !• AND AL.LOCATED AS NEW, SECONDARY ALLOC !• IS S. !• f'UNCHSP(O) WILL ALLOCATE A OO'lllY !• FILE. !• PRIHTSP PRINTER Sf·ACE HUl'IBER OF BUJCIŒ <9044 > FOR F'IUl1ARY At.LOCATION OF EM/2 PRINTER FILE !• !• XXX, YYY .El1PlfflZZ, DfLETEI• ANI• ALLOCATED AS NEW, SECONDARY ALLDC 5, !• !• PRINTSP<O> WILL ALLOCATE A DUHl1Y FILE, !• PlOTSI' !• PLOT Sf'ACf NUl1BER or KOCl(S <8919) FOR f'RIHARY ALLOCATION OF EHME/2 ft.OT FILE !• !• !• !• !• !• I• !• !• I• I• I• !• !• !• I• !• !• !• I• XXX, YYY, El1Ft. TZZZ, llfl..ETEI• AND ALLOCA mi AS NEW. SECONCIARY AL LOC 5, Pl.OTSP<O> WILL ALLOCATE A OOHl1Y FILE !tATCK..IB BATCH INPUT NAl1E OF f·ARTITIONED rILE COllTAINING LIBRAAY BATCH INPUT DATA [t002 BATCH !Nf'UT t'EHl<ER NAl1E OF BA 1CH INF'UT TO HOCU.E 002 CitEVICE lABlEl [t141 ETC l1El1BE1l NAl1E OF BA TCH INPUT TO 110IU.E 141 ETC <201,202,211,221 1 231,301,311, 411) El1HE2 PREFIX Fff:FIX USED TO FOC'11 Fl~'ST PART OF TIE [JC'...NAHE or EM/2 SYSTEH FILES, SUI<l'.'<JIJTINE LIB El'U B<XXX> USEO TO FORl1 El1ME/2 SU BROUT !NE li BRARY NAHE : E1111E2, XXX EHOBJ C011f'ILED EHOBJCXXX) USED TO FORl1 E1111E/2 Cotif'ILE[t l10[QES HO[•LU LIIIRARY NAMtl E1111E2,XXX Flil.OAD EXEQJTA!ti El1LOAD<XXX> IN:D TO rORM EXEQJTABLE HO[QES HOIU.E LI&RARY HAllEI El1!1E2.XXX I• !• FHl1E/2 USES TIE FOLLOWING UNIT h'JMBERS: !• 1 IIATA MHK I• 3 BATCH INPUT FILE !• 4 f'\JNCH FILE !• 5 It1AL06 !HftJT CNORl1ALL Y Ff;'ClH TERHINAU !• I• 6 lt!ALOG OUTftJT <Nœl1ALLY TO TER111NAU 7 PRINTER FILE I• B f'LOT FILE !• 10 ERROR KESSAGF FI LE !• 98 BATCH HODf OR INTERACTIVE l10ItE INDICATOR FILE !• '19 NEXT MOlU_E FILE !• !• !• fl1ME/2 SYSTEl1 FILES Al\f:: !• EHL IB SU!<F;OUTINE UEtRARY I• !• /• El10BJ COl1PILHt EH11E/2 l10ltULE LIBRARY Et'LOAD LOAI• HO[tl.l.E LIBRARY E11f'ROC TSO f'ROŒIU\:E LI BRARY I• IF &BANKTOT GT &BANKSP • lS • &BANl(INCR THEll [() WRITE ••• BANKTOT<M•ANKTOT> GREATER THAN BANKSf· • 15 • BANKINCR fl<IT END SfT USER = 6SUBSTR<3:5,6SYSUID> !• !• ATTAOi f'ROCE[llJl\'f LIBRARY FOR THIS USER !• FREE ATTR<NEXTOCB> FILE<FT99F001l ATTRIB HEXTICB RECF11<F Bl l.RECU80> BLKSIZE<2960> DSOf;G(f'Ol ru •MJSE~ff<EF •• El1Pf.'OMJSER • ALLOCATE FILE<FT'l9F001 > DA< '~USERPREF, ,fl1f'RO&USER• > NEWVOLUllE<~VOLSER> UNITC33ll0l SF'ACECl,1> TRACKS DIR<ll USING<NElffOCBl FREE FILE<FT99F001> FREE FILE<SYSPROCl ALLOCATE FILE<SYSPROC> SH°\DA< 'SYS1,SYSf'ROC' '&El1f'f..'ff, ,E11f'ROC' •MJSERF'REF, ,El'lf'f<O!.USER' > !• !• !• FREE FILES ANI• ATTRIBUTE LISTS COCBS> FREE ATTR(BANl\CCBl FILE<FT01F001> FREE liTTR<TliOCB> FILE<FTOSFOO! FT06F00ll FREE ATTR<LDAOCB> F!LE<FT04f001 l FREE ATTR<PRIHTOCB> FILE<FT07f001l FREE ATTR<PLOTOCB> FILE<FT08F001l FREE FILE<FTlOFOOl FT9BF001l ATTRIB BANK[CB RECFl1<F> L~f:Q<4628l lll.J(SIZEC4628> OSOf\'GCPSl BlFNOC1l ATTRIB Th'ICI< RF:CFH<F Al LRECU132> BLKSIZE<132l ATTRIB UIAOCB RECFM<F Bl LREQ<BO> BLKSIZEC9040l ATTRIB PRIHTOCB RECFH<F l<l LREQ( 133) BLKSIZE<9044l ATTRIB PLOTDCB RECFH<V B S> LRECU102l BLKSIZE<B919l !• !• DATA BANI( !• ALLor.ATE FILE<FT01F001 > DA< 'Mlf>ERPREF .,&BANK•> &BANl\DISf·VOLUl1E<&VOLSER>UNI T< 33BO l SPACE C&!tANKSP 1 IJJANKINCR > BLKSIZE <4620 > llSINGC BANKOCB) !• !• DIALOG INl'UT !• ALLOCATE FILE<F105F001l DA<*> USING<Tl\lCB> !• !• !• [t!ALOG OUTPUT ALLOCATE FILE<FT06F001l !tA<*l USING<TKIICl<l !• I• PRIHTER FILE !• IF &PRINTSP NE 0 TIEN OO DEL 'MJSERPRE:f .. EHf'RT 6USER' ALLOCATE FILE<FT07f00ll f!AC'MJSERPF.'[f .. Eltf'RTMJSER' > NEWVOLLM'IE<6VOLSlîO UNIT<3380) SPACE<IJ'RINTSP,5> DLKSIZE<9044l FREE FILECFT07f00ll ALLOCATE FILE<FT07FOOll fJAC'&USERPRff, ,El1f'RT&USER' > .HOI>RKSIZE:<9044l USING<f'RltfflCBl ~'ELEASE END Et.SE- ALLOCATE FILE<FT07F001 > [lf-NAHE< 'NULLFILE' > BLKSIZE<9044l-USING<F'RINTICBl !• !• !• ffi1"œ FILE AL.LOCATE FILECFT!OFOOll ItATASET<•l I• I• FILE TO COl111lJHCAlE TO NEXT HODl.l.E !• ALLOCATE FIL.E<FT99F00ll J:IA( '&USEkf'REF .. El1F1'1J&IJS[R(NlXT>' > OLD !• !• !tATCH OUTPUT OR PUNCH FILE !• IF !.f'UNCHSf' GT 0 TIEN ItO ItEL .'&USERPREF, , EHf'CHloUSER' ALLOC FILECFT04f001l DATASETC'MJSERPREF .. EHPCHWSER' >NEW KŒP Cl\TAL06 VOllJl1E(!.VOLSERllJNITC3380l SPAŒ<!.l'UNCHSf',5) BLKSIZEC9040> FREE FILE<FT04F001l ALLOC FTLECFT04f001 l [1ATASET< 'MJSERF'l\'fF ,,El1f'(.11WSER' lHOI1 ltlKSIZEC9040l USING<LDAiiCBl RELEASE END EL.SEAlLOCATE FILE<FT04f001) OUl1MY flLKSIZE<9040l USING<L[tAfl(;Bl N 1 ~ • tableau 2-1 (suite) /* /* PLOT FILE /* IF PLOTSP GT 0 TIEN DO tEL IRUSERPREF..EMPLTRUSERI ALL0CFILE(FTO8F001) DATASET('&USERINEF..EMPLT&USER , ) NEW KF_EP CATALOG VOLUME(&VOLSER) UNIT(3380) SPACE(6PL0TSP,5) BLKSIZE(8918) FREE FILE(FTO8F001) ALLOC FILE(FT08F001) DATASET(I&USERPREF—EMPLTRUSERI)MOI) BIKSIZE(8918) USING(PLOTDCB) RELEASE END ELSEALLOCATE FILE(FTO8F001) DUNI« BLKSIZE(8918) 11SING(PLOTDCB) /* /* SET TO INTERACTIVE MODE , /* ALLOC FILE(FT98F001) SPACE(1) BLKSIZE(9040) USING(LDADCB) ENFILE FT98F001 OUTPUT SET 6FT98F001 = 0 /* 0= INTERACTIVE PUTFILE FT98F001 CLOSFILE FT98F001 /* /* SET TO CORRECT BDISK ROUTINE IF NEW DATA DAW /* SET 6BDISK 6STR( ) IF 6BANKIIISP EG (ID TIEN GOTO Li SET &DSIZE = 2700 IF &BANKTOT LT 2700 TIEN SET RIGIZE = 2600 IF 6BANKTOT LT 2600 TIEN SET &DSIZE = 1800 IF KRANKTOT LT 1800 TIEN SIT &DSIZE = 380 IF RDSIZE NE 2700 TIEN SET &BDISK = , , REMPREF..6EN_I8(BDS4(USIZE) , /* /* INITIALIZE LIBS USED INDICATOR /* L1:SET LIBS &STR(N) /* /* INITIALIZE MODULE HUMBER /* SET IMMUN = &HM SET ZEROS = 6STR(0000) /* /* LOOP TO EXECUTE EMME/2 MODULES AS SPECIFIED ON IENO. /* /* LINK AND CALL ARE &KY USED FOR A NEW DATA BANK TO USE CORRECT /* BDISK ROUTINE /* DO WHILE &MODNUM GE 000 AND &MODNUM LT 999 SET &MODTEX = 6611BSTRUMEVAL(4-6LENGTN(6MODNUM)),(JEROS)6MODNUM SET &MODTEX = &SUBSTR(2:4,6MODIEX) /* /* SET UP ANY BATCH FILES SPECIFIED /* SET F103 = &STR(N) IF &LENGTH(1.BATCHLIB) EG 0 TIEN GOTO L3 IF &MODTEX En 002 AND 6LENGTH(60402) NE 0 TIEN DO ALLOC FILE(F703,001) DAMUSERPREE..6BATEI(.IB(60002) , ) SHR GOTO L2 END IF &MODTEX 141 AhM 6LENGTH(60141) NE 0 TIEN DO ALLOC FILE(FTO3F001) DA(INUSERPREF. .6BATChLIB(60141) , ) S(41 GOTO L2 END IF 6140DIFY E0 201 AND 6LENGTHIRD201) NE 0 TIEN DO ALLOC FILE(FTO3F001) DA(INUSERPREF. .6BATCHLIB(60201) , ) SHR GOTO 12 END IF &MODTEX EG 202 AND 6LENGTH(60202) NE 0 TIEN DO ALLOC FILE(FTO3F001) DAMUSERPREF. •6BATChtIB(6D202) , ) SHR GOTO 12 END IF &MODTEX Et) 211 AND 6LEN6T0(6D211) NE 0 TIEN DO ALLOC FILE(FTO3F001) DAORUSERPREF., &BATC1t1B(61)211) , ) SUR 6010 12 END , IF &MODTEX Et) 221 AND 6LEN6TH(6D221) ME 0 TIEN DO ALLOC FILE(FTO3F001) DA(INUSERFREF.. 6BATCHLIB(61221) , ) SIR GOTO 12 END IF MIODTEX Et) 231 NO 6LENGTH(6D231) NE 0 TIEN DO ALLIE FILE(FTO3F001) DA(I&USERPREF,. &BATCHLI8(60231)II SHR GOTO 12 END IF 6MO0TEX En 301 AND &LEN6TH(6D301) NE 0 TIEN DO ALLIE FILE(FT03F001) DA('6USERPREF.. 6BATCHLIB(6D301) 0 ) SHR GOTO 12 END IF &MODTEX Et) 311 AND &LENGTH(60311) hE 0 TIEN DO ALLOC FILE(FTO3F001) DAMUSERPREF., &DATCILIB(611311) , ) SHR GOTO 12 END IF &MODTEX EG 411 AND 6LENGTH(0411) hE 0 TIEN DO ALLOC FILE(F103F001) DA('6USERPREF..&BATCHLIB(0411) , ) SHR GOTO 12 END SOTO 13 L2:SET FT03 = (STR(Y) 13:IF 600I9K Et) 6STR( ) TIEN DO /* LINK , REMPREF..6E)i0BJ(E&MODTEX) , 64AP SIZE(999000)/* LIB(tFORT.FORTLIB , ,o6EMPREF..&EMLIBI,ITETCS.LOADLIBI,ISYSI.KAINTLIEP)/* LOAD('REMFREF..EMTEMP(MOD)') /* /* CALL IDEMPREF..EMTEMP(MOD)I /* SET LIBS = 6STR(Y) CALL'IEMPREF..&EMLOAD(E&MODTEX) , SET CCODE = &LASTCC END ELSE DO LOAD (I&EMPREF../IEMOBJ(E&MODTEX) , &BDISK) &KAP SIZE(999000)LIB( , FORT.FORTLIB', , REMPREF..6EMLIB., , TKTCS.LOADLIBI,, SYS1.(4INTLIBI) SET MODE = 6LASTCC SET &BDISK = &SM( ) SET LIBS = 6STR(Y) END IF 6FT03 Et) 6STR(Y) TIEN FWIE FILE(FT03F001) IF &IXODE NE 000 TIEN GOTO SETMOD %TEXT SET CCOIE = &LASTCC SETMOD: SET MODNUM = &CCODE - 3000 END /* /* FREE FILES /* XEMEND EMPREF(REMPREF) LI80(6LIPS) EMLIBI&EMLIE0 EMOBJ(NEMOBJ)USERPROC(RUSERPROC) DEL , NUSERPREF..EMPREIRUSERI END 2-6 • 2.3 Les paramètres de la procédure EMME2 Les paramètres substituables les plus importants pour l'usager sont les suivants: NNN(nnn) USERPREF(préfixe) VOLSER(volume) BANK(nomdebanque) BANKDISP(disp) BANKTOT(btot) BANKSP(bsp) BANKINCR(bincr) PUNCHSP(psp) PRINTSP(prtsp) • PLOTSP(pltsp) BATCHLIB(fichierpartitionnébatch) D002(d002) D141(d141) D201(d201) D202(d202) D211(d211) D221(d221) D231 (d231) D301(d301) D311(d311) D411(d411) USERPROC( 'préfixe.fichierpartitionnéproc I ) Seulement deux de ceux-ci_ n'ont pas de valeur par défaut attribuée. Le nom de la banque de données désirée (BANK) doit être mentionné obligatoirement. Le nom du fichier partionné contenant les données de base, à lire en lot, (BATCHLIB) est requis seulement si on veut lire, au cours de la session, des données en lot pour constituer une banque de données elfM2 c , ou encore générer un scénario à l'intérieur d'une banque existante. 2-7 • 2.3.1 Le paramètre NNN(nnn) Ce paramètre permet d'accéder directement au module n.nn de Oint sans passer par le logo de 01 1,2 , ni son menu principal. On déconseille l'utilisation de ce paramètre puisque la mise-à-jour du livre de bord ("logbook") (i.e. la mise-àjour de la date avec les initiales de l'usager) et l'impression dans ce "logbook" de l'utilisation du module n.nn ne sont pas faites. Pour plus de détails concernant le "logbook", consulter le module 1.21 de Ote? Pour la création d'une nouvelle banque de données ge1e2 il est nécessaire de faire l'appel suivant: NNN(001) Si NNN n'est pas appelé, alors par défaut: nnn = 002, ce qui amène une session normale passant par l'identification du logiciel suivi du menu principal. 2-8 2.3.2 Le paramètre USERPREF(préfixe) Ce paramètre permet d'accéder aux différents fichiers qu'utilise l'usager en rapport avec le logiciel. Il représente la première partie du "dsname" des fichiers utilisés, de sorte que oint reconnaîtra les fichiers: préfixe .EMPROZZZ préfixe .nomdebanque préfixe. fichierpartitionnébatch préfixe .empchZZZ préfixe. emprtZZZ préfixe .empltZZZ préfixe .emproZZZ Si USERPREF n'est pas appelé, alors par défaut on a préfixe = A017.P0108 , - qui correspond au compte attribué au Service des systèmes d'information de la D.G.T.T.P. Pour le fichier partitionné contenant la ou les procédures d'appel à ede2 on peut avoir un "préfixe" différent, tel que donné par le paramètre USERPROC: préfixe. fichierpartitionnéproc (voir section 2.3.10). 2.3.3 Le paramètre VOLSER(volume) Ce paramètre indique sur quel disque se situent les fichiers de l'usager. Par défaut, volume = MTQ302 (D.G.T.T.P.) 2-9 2.3.4 Les paramètres BANK(nomdebanque) et BANKDISP(disp) Le paramètre BANK est obligatoire. Pour une banque existante, il permet d'accéder à la banque préfixe. nomdebanque ; Lors de la création d'une nouvelle banque, le fichier préfixe.nomdebanque est créé à l'intérieur derel1T2 et catalogué automatiquement. BANKDISP contrôle la disposition de ce fichier par le système. disp = OLD permet d'accéder à la banque existante préfixe.nomdebanque 11, disp = NEW entraîne la création d'une nouvelle banque préfixe.nowdebanque Si BANKDISP n'est pas donné, alors par défaut: disp = OLD. 2.3.5 Les paramètres BANKTOT(btot), BANKSP(bsp) et BANKINCR(bincr) Ces paramètres sont reliés à la dimension de la banque de données "nomdebanque". 2.3.5.1 Évaluation des dimensions d'une banque La - création d'une banque ellen requiert la détermination des paramètres suivants: 2-10 paramètres fixés par le système MMODE: nombre maximum de modes de transport (différent du nombre maximum de modes par lien); fixé à 31. MVEH: nombre maximum de véhicules (types de véhicules en transport en commun); fixé à 50. MLINE: nombre maximum de lignes de transport en commun; fixé à 500 MDEML: espace, en nombre maximum de mots, attribué à chaque ensemble de démarcations; fixé à 3000. MLOGB: espace, en nombre maximum de mots, attribué au livre de bord ("LOGBOOK"); fixé à 4000. ii) Paramètres à fixer par l'usager pour une banque spécifique MSCEN: nombre maximum de scénarios. (entre 1 et 20) MCENT: nombre maximum de centroides. (entre 1 et 750) MNODE: nombre maximum de noeuds, incluant les centroïdes. (entre 1 et 8000) 2-11 MLINK: nombre maximum de liens. (entre 1 et 20 000) MTURN: nombre maximum de mots pour les virages des intersections déclarées. Chaque noeud déclaré "éclaté" occupe environ [nombre de liens entrants au noeud * nombre de liens sortants du noeud] mots. (entre 1 et 4 000) MLSEG: nombre maximum de segments pour l'ensemble des lignes de transport en commun. (entre 1 et 30 000) MMAT: nombre maximum de matrices de chaque type. (entre 1 et 99) MFUNC: nombre maximum de fonctions par classe. (entre 1 et 99) MOPER: nombre maximum d'opérations, par classe de fonctions. (entre 1 et 2 000) iii) autres paramètres Ces paramètres n'ont pas d'incidence sur la taille en espace-disque de la banque. 2-12 • MGROUP: nombre maximum de groupes (pour les zones); fixé à 1 000. MLTYP: nombre maximum de types de liens; fixé à 999. La formule suivante permet maintenant de calculer le nombre de mots requis pour une banque de données Ce2 , en fonction des paramètres variables: mots = (MMAT * MCENT * MCENT) + max(MNODE,MLINK,MLSEG,MTURN,MCENT*MCENT)+ (((2*MMAT)+26) * MCENT)+ (13 * MSCEN * MLINK)+ • (9 * MSCEN * MNODE)+ (6 * MSCEN * MLSEG)+ (13723 * MSCEN)+ (5 * MSCEN * MTURN)+ (12 * MOPER)+ (6 * MFUNC)+ (101 * MMAT)+ 35139. On peut ensuite calculer "bbloc", le nombre de blocs nécessaires pour la banque, à partir de la formule suivante (1) : bbloc = INT [(4*mmots/4628)+401 On trouvera à la section 3.2 un exemple complet de calcul. ( 1 ) [1 mot = 4 bytes] et [1 bloc = 4628 bytes] 2-13 2.3.5.2 Allocation de l'espace-disque Une fois déterminé l'espace-disque requis pour la banque (bbloc), il reste à l'allouer au fichier "nomdebanque" à travers la procédure EMME2. Des contraintes reliées au compilateur FORTRAN IV font qu'on ne peut utiliser ici que certaines valeurs fixées pour "btot", qui correspond au nombre de blocs (de 4628 bytes) attribués à la banque. Quatre valeurs ont été définies comme "permises" pour l'instant; elles peuvent par contre être changées par les gens responsables de l'entretien du logiciel ed1elÇ12 , si nécessaire. On retiendra donc: btot = 380 si 0 bbloc< = 380 =-1800 si 380 <bbloc< = 1800 = 2600 si 1800<bbloc< = 2600 = 2700 si 2600<bbloc< = 2700 Si bbloc > 2700, alors on doit recompiler la routine BDISK du logiciel et modifier la procédure EMME2 en conséquence, ceci étant du ressort des gens de l'entretien du logiciel. 2-14 • Maintenant que btot est connu, il suffit de déterminer le nombre de blocs en espace primaire (bsp) et en espace secondaire (bincr), de telle sorte que btot < = (bsp + 15 * bincr); sous contrainte évidemment que cet espace soit disponible sur l'unité de disque identifiée par VOLSER. La procédure EMME2 allouera ainsi bsp blocs de 4628 bytes en espace primaire et bincr blocs à chacune des 15 extensions secondaires. Une fois la banque créée, il faut quand même fournir, à chaque appel par le procédure EMME2, lie valeurs de btot, bsp et bincr. Par défaut, btot = 380, bsp = 300 et bincr = 40. 2-15 • 2.3.6 Le paramètre PUNCHSP(psp) Ce paramètre sert à créer un fichier général d'imagescartes, utilisé au cours d'une session pour copier des données originant de la banque de donnée sur laquelle on travaille. Ce fichier pourra à son tour être plus tard lu en lot, pour générer une partie d'une autre banque, ou être utilisé par un programme quelconque de l'usager. Au début d'une session, EMME2 attribue "psp" blocs de 9040 bytes au fichier préfixe.EMPCHZZZ , où ZZZ est le numéro de l'usager ayant établi cette session. Si le fichier existe déjà, découlant de la session précédente, il sera détruit et réinitialisé. On devra donc, lorsqu'on veut reproduire en fichiers d'images-cartes le contenu d'une banque, refaire pour chaque type de données de la banque une session distincte (lignes de démarcation, matrices, lignes t.c., etc). A la fin de chacune de ces sessions, on copiera le contenu du fichier préfixe.EMPCHZZZ sous forme d'un membre d'un fichier partitionné (via l'option 3.3 de SPF). Il faut en effet, pour lire des données en lot avec ge2 , qu'elles soient groupées comme membres d'un fichier partitionné (voir paramètre BATCHLIB). Les modules de Ce2 reconnaissent l'action de copier des données en images-cartes par la sélection du verbe "PUNCH". Il est permis de spécifier une valeur nulle (psp = 0), ce qui créera un fichier bidon au lieu du fichier préfixe.EMPCHZZZ . 2-16 • Si psp est non nul, EMME2 alloue psp blocs de 9040 bytes en espace primaire et utilise un incrément de 5 blocs pour les extensions secondaires. Il faudra donc s'assurer que le fichier préfixe.EMPCHZZZ comporte un espace suffisant pour recevoir le contenu à "puncher". Par défaut, psp = 5 • • 2-17 2.3.7 Le paramètre PRINTSP (prtsp) Ce paramètre contrôle l'impression des rapports générés au cours d'une session ge2 . Les modules de erM'2 recon- naissent l'action d'envoyer ,sur le fichier d'impression un rapport par le verbe "PRINT", le support choisi ("DEVICE") devant alors être "PRINTER". Au début d'une session, EMME2 attribue "prtsp" blocs de 9044 bytes au fichier préfixe.EMPRTZZZ , ZZZ où est le numéro de l'usager ayant établi cette session. Si nécessaire, des extensions de 5 blocs seront allouées. Si le fichier existe déjà, découlant de la session précédente, il sera détruit et réinitialisé. Il est permis de spécifier une valeur nulle (prst = 0), ce qui créera un fichier bidon au lieu de préfixe.EMPRTZZZ . L'usager doit s'assurer que l'espace qu'il requiert est disponible et suffisant pour recevoir le contenu en images—lignes des rapports produits par cide2 . On peut envoyer le contenu du fichier préfixe.EMPRTZZZ sur imprimante, en utilisant l'utilitaire IEBGENER D'IBM. Un exemple de cette procédure peut être consulté au fichier EMME2.JCLLIB(PRINTERA) , reproduit au tableau 2-2. Chaque usager est invité à se créer un membre de ce genre, avec ses propres paramètres d'usager, afin d'envoyer directement le fichier à l'impression (MSGCLASS = A). -Il faut cependant ajuster la classe • d'exécution en fonction du nombre de lignes à imprimer (20 000 lignes maximum en classe "A", sinon en classe "B"). Notons qu'on peut aussi employer l'utilitaire "3.6" de TSO/SPF pour arriver aux mêmes fins. 2-18 • tableau 2-2 programme d'impression général //J7PRINTA JOB (XXXXXXXXXXX)000000(XXXXXXXXXXXXXXXXXX), // eSIZZZ' t CLASS=AeMSOCLASS=A,NOTIFY=NUZZZ t MSGLEVEL=(0,0) D= USER NAME /*ROUTE PRINT RMT07 //*T PRINTERA //ETAPEO2 EXEC PGM=IEDOENER,COND=EVEN //SYS1JT1 DD DSN=PREFIXE.EMPRTZZZ,DISP=(OLD,PASS) //SYSUT2 DD SYSOUT=(A), DCB=(RECFM=FRA,LRECL=133,BUSIZE=19019,OPTCD=) // //SYSPRINT DD DUMMY //SYSIN BD DUMMY // • 2-19 2.3.8 Le paramètre PLOTSP(pltsp) Ce paramètre sert à conserver le contenu d'un graphique Cre2 , comme une séquence de caractères de contrôle, de paramètres et d'adresses (x,y), conformément au protocole graphique de Tektronix. Les modules de ge2 reconnaissent l'action d'envoyer sur fichier le contenu d'un graphique par la commande graphique "P". EMME2 alloue, au début d'une session ge2 de 8918 bytes au fichier , pltsp blocs préfixe.EMPLTZZZ , où ZZZ est le numéro de l'usager ayant établi cette session. Si nécessaire, des extensions secondaires de 5 blocs seront allouées. Si le fichier existe déjà, il sera détruit et réinitialisé par EMME2. Il est aussi permis de spécifier une valeur nulle, afin de définir un fichier bidon. Par défaut, pltsp = O. Pour envoyer sur l'écran Tektronix un fichier graphique, on utilise la procédure PLOTPAGE montrée au tableau 2-3. On effectue donc, à l'écran Tektronix, EXEC 'EMME2.EMPROC(EMSETUP)' PLOTPAGE pour visionner l'image-fichier "préfixe.EMPLTZZZ" . 2-20 tableau 2-3 procédure de rappel d'un traçage PROC /*PLOTPAGE*/ 0 NAME() NU(0) — USERPREF(IA017tP0108') — MAN) EMPREF(EMME2) EMLIB(EMLIB) EMOBJ(EMOBJ) EMLOAD(EMLOAD) CONTROL MAIN LIST SYMLIST /* PROCEDURE TO DISPLAY A PLOT FILE /* 84 02 17 LGJL /* CALLING SEOUENCE: /* PLOTPAGE /* /* OPTIONAL PARAMETERS ARE SPECIFIED AS PARAME1ER(VALUE) FOLLOWING /* PLOTPAGE (SEE EXAMPLES IN THE FROC STATEMENT) IN THE PARAMETER /* DESCRIPTIONS ZZZ INDICAŒS THE USER NUMBER fAKEN FROM THE USER /* ID NUZZZ /* /* OPTIONAL PARAMETERS: /* NAME NAME OF PLOT FILE (CASE: ANY PLOT FILE BIFFE/* RENT OF EMPLTZZZ) /* THIS PARAMETER HAS PRIORITY ON PARAMETER NU /* NU USER NUMBER 3 DIGITS, /* ALLOW ANY Z71 IN PLOT FILE EMPLTZZZ /* BY DEFAULT IT IS THE PRESENT LOGON ID /* (N.B.: NAME HAS PRIORITY ON NU) /* USERPREF t EMPREF — SEE PROCEDURE EMME2 /* SET USER = &SUBSTR(3:5 t &SYSUID) IF &NU NE 0 MEN SET &USER = &NU SET PFILE = &STR(EMPLT)&USER IF &LENGTH(&NAME) NE 0 THEN SET &PFILE = &NAME /* FREE FILES AND ATTRIBUTE LISTS (DCBS) FREE ATTR(PLOTDCB FKDCB) FILE(FT081001 rTo5roo1 FTO6F001) ATTRIB TKDCB RECFM(F A) LRECL(132) BLKSIZE(132) ATTRIB PLOTDCB RECFM(V B S) LRECL(182) BLKSIZE(19019) /* DIALOG INPUT */ ALLOCATE FILE(FTO5F001) DA(*) USING(TKDCB) /* DIALOG OUTPUT */ ALLOCATE FILE(FTO6F001) DA(*) USING(TKDCB) /* PLOT FILE */ ALLOC FILE(FTO8F001) PATASET('&USFRPREFft&PFILE')— OLD USING(PLOTDCB) SET LIBS = &STR(N) /* /* LINK '&EMPREF.&EMOBJ(E901)' &MAP SIZE(999000)/* LIB('FORT.FORTLIB't'&EMPREFft&EMLIB' t 'TKICS.LOADLIBe t /* 'SYS1.MAINTLIB#)— /* LOAD('&USERPREF..EMTEMP(MOD)') /* SET LIBS = &STR(Y) /* CALL t&USERPREFt£MTEMP(MOD)' /* CALI_ '&EMPREFoaxEMLOAD(E901)' /* FREE FILES */ FREE ATTR(TKDCB PLOTDCB) FILE(FTO5F001 FTO6F001 FTO8F001) IF &LIBS EO &STR(Y) THEN DO FREE DA(t&EMPREF.s&EMOBJ' e&EMPREF..&EMLIB' 'TKTCS.LOADLIBi*FORT.FORTLIB"SYS1tMAINTLIB') END END 2-21 Pour visionner le fichier préfixe.EMPLTXXX , où XXX est un autre usager, on ajoute le paramètre NU(XXX): PLOTPAGE NU(XXX) Pour un fichier quelconque, on ferait PLOTPAGE NAME("préfixe.filename") . Un programme d'interface existe aussi pour interpréter le fichier "préfixe.EMPLTZZZ" et générer une sortie graphique sur table traceuse CALCOMP, à Québec. Un exemple de ce programme peut être consulté au fichier EMMEZ.JOLLIB(CALCOMP) , reproduit au tableau 2-4. Chaque usager peut se créer sa copie du programme, en changeant les paramètres préfixe et ZZZ partout. La carte "JOB" doit aussi être adaptée à l'usager. • 2-22 tableau 2-4 procédure de traçage sur Calcomp //J7CALCOM JOB (XXXXXXXXXXXXXXXXXXXXXXXXXXXXX, // XXXXXXXXXXXXXXXX)(XX),'SIZZZ',CLASS=A,NOTIFY=NUZZZ,MSGCLASS=X //* //* LE COMMENTAIRE SUIVANT NE S'ADRESSE PAS A L'UTILISATEUR //* DU FICHIER CALCOMP (SEULEMENT A LA PERSONNE RES//* PONSABLE DE L'ENTRETIEN DU SOURCE) //* //* LE PROGRAMME SOURCE DE L'EMULATEUR DU TEKTRONIX POUR CALCOMP //* EST SOUS LE CONTROLE DE FRANCOIS MONGRAIN //* A ETE REECRIT ET ADAPTE POUR LA D.G.T,T.P, DU M.T.O. //* PAR AMBRE RABIN //* ET PROVIENT ORIGINAIREMENT DU C.R.T. DE UNIVERSITE DE MONTREAL //* //INIT EXEC PGM=ST6803, // PARM='S1=B,62=R,S3=V,S4=N,T=METRE' //STEPLIB DD DSN=A041.MODLIB,DISP=SHR //0S01 BD SYSOUT=X,DCB=BLKSIZE=133 //SYSUDUMP BD DUMMY //0505 DD SYSOUT=X,DCB=BLKSIZE=133 //TRACEUR DD DSN=&&A002,DISP=(MOD,PASS), // UNIT=PUBLIC,DCB=BLKSIZE=500,SPACE=(TRK,(20,5)) //EMUL EXEC PGM=ETM95600 //STEPLIB DD DSN=A017.MODLIB,DISP=SHR //SYSUDUMP BD DUMMY //* //* YPRINT ET XPRINT SONT DEUX PARAMETRES MODIFIABLES PAR L'USAGER //* VALEURS EXPRIMEES EN CENTIMETRES, YPRINT REPRESENTE LA //* LARGUEUR DU GRAPHIQUE SUR CALCOMP (MAXIMUM PHYSIQUE ETANT //* DE 80) ET XPRINT REPRESENTE LA LONGUEUR DU GRAPHIQUE (SI //* CETTE VALEUR EST 0 ALORS XPRINT EST CALCULE PAR LE PROGRAMME //* DE TELLE FACON QUE LE RATIO X SUR Y DE L'ECRAN TEKTRONIX //* EST PRESERVE) //* N.B.; IL Y A TRANSFORMATION DU GRAPHIQUE TEKTRONIX EN GRA//* PHIQUE CALCOMP EN TENANT COMPTE DU NOUVEAU RATIO //* FORME PAR XPRINT SUR YPRINT, SI ON VEUT OBTENIR LE //* GRAPHIQUE IL FAUT S'ASSURER QUE LE RATIO XPRINT SUR //* YPRINT SOIT LE MEME QUE LE RATIO DU GRAPHIQUE INITIAL //* //FTO5F001 DD * &PARAM YPRINT=80.,XPRINT=0. &END /* //FTO6F001 BD SYSOUT=X //FTO8F001 Dl) DSN=PREFIXE.EMPLTZZZ,DISP=SHR //TRACEUR DO OS-&&A002,DISP=(MOD,PASS), // UNIT=PUBLIC,DCB=BLKSIZE=500,SPACE=(TRK,(20,5)) //DESSINE EXEC PGM=STG804,COND=(0,NE,EMUL) //STEPLIB BD DSN=A041.MODLIB,DISP=SHR //SYSUDUMP BD DUMMY //01102 DD DSN=A0414P0192.D02,DISP=SHR //TRACEUR BD DSN=&&A002,DISP=(OLD,DELETE), // UNIT=PUBLIC,DCB=BLKSIZE=500 //0S06 BD SYSOUT=X,DCB=BLKSIZE=133 • • 2-23 2.3.9 Le paramètre BATCHLIB(fichierpartitionnébatch) et ses paramètres associés Le paramètre BATCHLIB sert à transmettre au logiciel le nom du fichier partitionné (librairie) dont les membres contiennent les données à lire en lot pour générer tout ou partie d'une banque. Ce fichier existant portera le nom: préfixe.fichierpartitionnébatch et ses membres seront constitués d'images-cartes de 80 colonnes. Il est obligatoire de donner une "valeur" au paramètre BATCHLIB, aucune n'étant prévue par défaut, lorsqu'on désire accéder à un des modules suivants (voir tableau ci-dessous). Une fois identifié le fichier partitionné, il faut transmettre le nom de chacun des membres où les différents modules de gle2 pourront lire les données en lot. Le paramètre BATCHLIB est donc associé aux paramètres suivants dans la procédure EMME2: • Paramètre Module correspondant D002(d002) D141(d141) D201(d201) D211(d211) D221(d221) D231(d231) D301(d301) D311(d311) D411(d411) Création de banque 1.41 2.01 2.11 2.21 2.31 3.01 3.11 4.11 Valeur par défaut DOO2IN D141IN D201IN D211IN D221IN D231IN D301IN D311IN D411IN 2-24 • Lorsque dans une session oidl on accède à un module de lecture en lot ("BATCH ENTRY"), ou à l'option de lecture en lot à l'intérieur du module n.nn, alors il faut que le membre préfixe.fichierpartitionnebatch(donn) existe et que son nom soit transmis à EMME2. Le contenu des membres doit respecter les définitions suivantes: Membre Contenu d002 la table descriptive des différents types de terminaux utilisables pour une session 31 1l2 , graphiques ou non, et des imprimantes disponibles ("DEVICE TABLE") (voir manuel pour la description). Ce membre peut être obtenu en copiant EMME2.DATA(D002IN) ; voir tableau 2-5. d141 la table des lignes de démarcations. d201 la table des modes. d202 la table des véhicules (pour les lignes de transport en commun). d211 la table des noeuds suivie de la table des liens (constituant le réseau de base). d221 la table des lignes de transport en commun. d231 la table des virages pénalisés (définissant les noeuds qui sont considérés comme intersections éclatées). 2-25 tableau 2-5 table des terminaux • TEKTRONIX 4116 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 07,27,26,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 13,10,7,62 0,5,525819,5,56,0,1000,1000,1500 IBM PC—XT (EMULATION TEKTRONIX) 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 07,27,26,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 13,10,7,62 0,5,525579,5,56,0,1000,1000,1500 TEKTRONIX 4116 + GRAPH. CALCOMP 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,58,27,12,32,32,32,32,32,32,32,32,32,32,32,32 07,27,26,32,32,32,32,32,32,32,32,32,32,32,32,32 27,59,27,12,32 e32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 13,10,7,62 0,5,527867,5,56,0,1000,1000,1500 TERMINAL NON—GRAPHIGUE 12,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 38,32,32,32,32,32,32,32,32032,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 12,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 12,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 78,79,32,71,82,65,80,72,73,67,83,32,79,78,32,84 72,73,83,32,84,69,82,77,73,78,65,76,33,33,32,32 13,37,47,76 0,1,0,0,24,4800,0,0,0 IMPRIMANTE LOURDE 60 LIGNES/PAGE 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 241,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32 0,2,0,0,60,0,0,0,0 IMPRIMANTE LOURDE 45 LIGNES/PAGE 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 241,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32 0,2,0,0,45,0,0,0,0 TEKTRONIX 4663 . 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 27,12,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 32,32,32,32 6,4,2811,5,0,010,0,0 2-26 • d301 la table des ensembles de groupes (le système de zones est divisé en groupes). d311 la table des matrices. d411 la table des fonctions. Les manipulations reliées à ce fichier sont schématisées au tableau 2-6. tableau 2-6 schéma des manipulations de données • préfixe. fichierpartitionnébatch d002 d141 d201 d231 d211 d221 d231 d301 d311 lecture en lot copie d411 logiciel Écriture errin2 Images-cartes Banque • Banque Banque n. autres... préfixe. EMPCHZZZ utilitaires TSO/SPF 2-27 • 2.3.10 Le paramètre USERPROC(fichierpartitionnéproc) Ce paramètre sert à désigner le fichier partitionné qui contient la ou les procédures appelant la procédure EMME2 pour une ou des banques de données particulières. On notera que le nom doit apparaître au complet et que le préfixe peut être différent de celui utilisé à travers ce guide (voir section 2.3.2). Règle générale, le "préfixe" sera celui désigné par le paramètre USERPREF (section 2.3.2) par défaut, fichierpartitionnéproc est A017.P0108.EMPROCX s • • • SECTION 3 CRÉATION D'UNE BANQUE DE DONNÉES • 3-2 • On présentera ici le déroulement complet du processus de création d'une banque de données, incluant la création de procédures d'accès spécifiques. Un exemple complet suivra à la section 4. 3.1 Étape 1: Autorisation d'accès S'assurer que le code d'usager affecté au projet permette l'accès au logiciel et qu'un espace-disque suffisant soit disponible (voir section 1). 3.2 Étape 2: Identification du fichier de données en lot Si la création d'une banque de données se fait dans le cadre d'un nouveau projet, avec utilisation de données à générer, il devra y avoir eu création d'un fichier partitionné avec longueur des enregistrements à 80 colonnes. Ce fichier est différent du fichier partitionné des procédures d'accès (section 3.4). Chacun des membres de ce fichier représentera une table de données à lire en lot pour construire la banque de données (voir le paramètre BATCHLIB, section 2.3.9). 3.3 Étape 3: Dimensions de la banque On évalue les dimensions de la banque de données à créer, tel qu'expliqué à la section 2.3.5.1 et on détermine ensuite la valeur des paramètres BANKTOT, BANKSP et BANKINCR de la procédure EMME2. 3.4 Étape 4: Création d'une procédure spécifique d'accès à la banque Pour l'utilisation répétée d'une banque de données particulière sous Cre2 , il faudra toujours associer des valeurs invariables 3-3 à la plupart des paramètres de la procédure générale d'accès EMME2. Il peut donc devenir très intéressant de se créer des procédures "privées", spécifiques aux banques de données qui nous concernent, qui nous permettront d'y accéder plus rapidement et efficacement. Le processus est le suivant: I. Identification ou création d'un fichier partitionné qui contiendra les procédures d'accès à une ou plusieurs banques de données. On peut employer l'option 3.2 de SPF, pour connaître EMME2.EMPROC ; les caractéristiques du fichier le fichier créé est désigné comme: fichierpartitionnéproc . Copier le membre EMME2.EMPROC(SETUP) de ce fichier dans votre fichier partitionné, en lui donnant le nom EMSETUP , à l'aide de l'option 3.3 de SPF, (voir tableau 3-1). Modifier le membre (EMSETUP) du nouveau fichier, en insérant le nom de ce fichier partitionné au paramètre USERPROC de EMSETUP (deuxième ligne). Le nom passé devra être identique à celui passé au paramètre USERPROC d'une procédure appelant EMME2 et qui sera aussi membre (comme EMSETUP ) de ce fichier pP-t7itionné. tableau 3-1 procédure d'initialisation d'une session PROC /*SETUP*/ 0 EMPREF(EMME2)USERPROC('PREFIXE,NOMBEFICHIERPARTITIONNEPROC , ) /*CONTROL LIST SYMLIST /* /*T EMSETUP 84 06 08 LGJL /* /* PROCEDURE TO - ATTACH EMME/2 PROCEDURE LIBRARY EMPROC FOR TS0 /* - SET TERMINAL DEFINITION (BACKSPACE,LINESIZE) /* /* IN THE PARAMETER DESCRIPTIONS, EMME2 INDIACTES THE SYSTEM PREFIX /* TAKEN FORM PARAMETER EMPREF, /* /* PARAMETERS: /* EMPREF PREFIX USED TO FORM THE FIRST PART OF THE /* DSNAME OF EMME/2 SYSTEM FILES USERPROC USER PROCEDURE LIBRARY NAME /* /* FREE FILE(SYSPROC) ALLOCATE FILE(SYSPROC) DA('SYS1,SYSPROC , , ISP.ISPPROC , , SYS2.ISPP10C , , SYS2.MTO.CLIST , , 8EMPREF.,EMPROC , g&USERPROC. , ) SHR UKSTART END 3-4 • Pour créer chacune des procédures d'accès aux banques de données, procédures qui feront appel à la procédure générale EMME2, on se basera sur une procédure existante qu'on copiera; Copier le membre EMME2.EMPROC(EXEM) (voir tableau 3-2) dans votre nouveau fichier partitionné, en lui donnant le nom que vous voulez donner à votre procédure spécifique, à l'aide de l'option 3.3 de SPF; on obtient ainsi le membre préfixe.fichierpartionnéproc(procéduredaccès) . Editer dans ce nouveau membre les changements requis au niveau des paramètres substituables (huit premières lignes). tableau 3-2 exemple de procédure d'appel spécifique d'EMME 2 PROC /*EXEM*/ 0 USERPREF( 'PREFIXE') VOLSER(VOLUME)BANK(NOMDEBANGUE) BANKDISP(OLD) BANKTOT(BTOT)BANKSP(BSP) BANKINCR(BINCR)PUNCHSP(0) PRINTSP(0) PLOTSP(0)BATCHLIB(FICHIERPARTITIONNEBATCH) D002(D002IN) D141(D141) D201(11201) 0202(D202) D211(D211) 0221(D221) D231(D231)D301(D301) D311(0311) D411(D411)USERPROC('PREFIXE.FICHIERPARTITIONNEPROC') /* /* CONTRAINTE: BTOT PLUS GRAND GUE BSP + ( 15 * BINCR ) /* /* CONVENTION; FICHIERPARTITIONNEPROC DEVRAIT ETRE DE NOM = /* EMPROCXX OU XX CORRESPOND A DEUX LETTRES OU /* CHIFFRES ( S'ASSURER QU'IL N'EXISTE /* PAS DEJA) /* CONTROL MAIN /*LIST SYMLIST SET &NNN = &STR(002) IF &BANKDISP EG &STR(NEW) THEN SET &NNN = &STR(001) EMME2 NNN(UNN) USERPREF( &MSERPREF) VOLSER( &NOLSER)BANK(&BANK) BANKDISP(&BANKDISP) BANKTOTC&BANKTOT)BANKSP(OANKSP) BANKINCR(UAWIRCR)PUNCHSP(&PUNCHSP) PRINTSP(WRINTSP) PLOTSP(&PLOTSP)BATCHLIMBATCHLIB)D002(&D002) D141(0141) D201(&D201) D202(&0202) D211(0211) D221(&D221) D231(0231) 0301(e.D301) D311(&D311) D411(&0411)USERPROMUSERPROC) END 3-5 3.5 Étape 5: Création de la banque Il suffit maintenant d'être en session TSO et d'exécuter pour débuter cette session tede2 : EXEC 'préfixe.fichierpartitionnéproc(ENSETUP procéduredaccès BANKDISP(NEW) Après quoi débutera la session 0,092 ; on aura alors à répondre au dialogue pour donner les différentes dimensions ainsi qu'initialiser le premier scénario. On peut alors poursuivre la session en débutant la lecture des données. 3.6 Étape 6: Lecture des données dans la banque Si on- n'est pas actuellement en session 011'92 , il faut y entrer: EXEC 'préfixe.fichierpartitionnéproc(ENSETUP)' procéduredaccès On lit maintenant les données du fichier partitionné de l'étape 2 pour remplir la banque nouvellement créée, ou encore on les génère interactivement durant la session 0092 . Il y a deux types de données: celles reliées à un scénario et qui sont hiérarchisées, et les autres données non reliées à un scénario et qui servent à l'ensemble des scénarios de la banque. 3-6 3.6.1 Données d'un scénario Il s'agit de s'assurer que le scénario courant est bien celui sur lequel on veut entrer les données; pour ce faire, au niveau du menu principal des modules, on entre la commande: S = n où n est le numéro du scénario désiré. Exemple: MODULE : S = 1000 Voici l'ordre dans lequel on doit lire les données pour remplir un scénario, en passant par les modules de lecture en lot correspondants: module 2.01 (modes) module 2.02 (véhicules) module 2.11 (réseau de base) module 2.31 (virages pénalisés) module 2.21 (lignes T.C.) Les deux derniers modules peuvent indifféremment être appelés l'un avant l'autre, car il n'y a pas de relation hiérarchique entre les deux types de données. Si on veut relire dans un scénario des données en lot (à cause d'une mise-à-jour par exemple), alors il suffit dans le scénario en question de détruire les données qui sont de niveau hiérarchique plus bas, puis de relire les données en question ainsi que celles qui ont été détruites. 3-7 Exemple: relire le réseau de base mettre le scénario en question comme scénario courant (si ce n'est pas déjà fait); 2 ° 'détruire les lignes T.C. (module 2.22 en initialisant la table transit); 30 détruire les virages (module 2.31 initialiser les virages) relire le réseau de base (module 2.11) 50 relire les virages (module 2.31) relire les lignes T.C. (module 2.21) 3-8 3.6.2 Données générales de la banque Il n'y a pas d'ordre pour la lecture des données suivantes, à l'exception des matrices et des groupes pour lesquels il doit exister un scénario avec la table des noeuds lue (le réseau de base comprend la table des noeuds suivie de la table des liens) dans la banque. Les données qui suivent peuvent être lues à partir de n'importe lequel scénario, puisqu'elles n'affectent pas les scénarios. module 1.41 (démarcations) module 3.01 (groupes) module 3.11 (matrices) module 4.11 (fonctions) Il n'est pas nécessaire d'avoir, dans la banque de données, toutes les données énumérées précédemment pour pouvoir utiliser le logiciel question. 071192 sur la banque en Par contre chaque module requiert certains types de données làrsqu'on y accède. Il doit y avoir consistence entre la liste des centroides du scénario courant et les listes des centroïdes sous lesquels on a traité les groupes ou matrices, lorsqu'on veut traiter ces mêmes groupes ou matrices. • • • • SECTION 4 EXEMPLE DE CRÉATION D'UNE BANQUE DE DONNÉES • 4-2 4.1 Autorisation d'accès L'usager vérifie qu'il est autorisé à effectuer les manipulations qui suivront et s'assure qu'il consommera de façon "justifiable" les ressources en espace-disque qu'il gèlera. 4.2 Fichier de données en lot Nous utiliserons simplement pour cette démonstration, les données pour la région de Montréal, déjà contenues dans le fichier partitionné A017.P0108.EMMTL ; ce fichier contient des membres dont les noms sont mnémotechniques et qui deviendront des paramètres substitués pour l'appel de EMME2. Le tableau 4-1 montre l'index de ce fichier de données, avec ses principales caractéristiques. tableau 4-1 index d'un fichier de données typique PROJECT: A017 LIBRARY: P0108 TYPE: EMMTL DATE: 84/10/19 TIME: 11:33 PAGE: 001 GENERAL DATA: VOLUME SERIAL: MT0302 DEVICE TYPE; 3380 ORGANIZATION: PO CREATION DATE: 84/10/16 GENERA1 DATA: RECORD FORMAT: FB RECORD LENGTH: 80 BLOCK SIZE: 9,040 1ST EXTENT SIZE; 9 2 SECONDARY GUANI DATE AND TIME LAST MODIFIED CURRENT ALLOCATION: 31 CYLINDERS 12 EXTENTS 20 DIRECTORY BLOCKS CURRENT NO. LIMES INITIAL NO. LIMES CURRENT UTILIZATION: 31 CYLINDERS 12 EXTENTS 5 DIRECTORY BLOCKS 27 MEMBERS MEMBER NAME VERS.MOD LEVEL CREATION DATE AUTO DEMVI DEMZ7 DOO2IN FCT FCTSIMUL FCT4OM FCT4OP GRP MATFM MOD NET NETFUTUR NETOBSRR NETTC NETTRT NET9999 PEN TEST TRANS TRANSI TRI. TRLF2 TRLX TRL9999 VEH VEH40 01.00 01.00 01.00 01.08 01.02 01.01 01.01 01.05 01.00 01.00 01.01 01.02 01.00 01.00 01.00 01.00 01.00 01.00 01.01 01.00 01.00 01.81 01.01 01.00 01.00 01.00 01.00 84/10/19 84/10/19 84/10/19 83/11/11 84/02/21 84/08/15 84/08/17 84/02/21 84/10/19 84/08/22 83/09/22 84/09/13 84/10/19 84/10/19 84/10/01 84/04/13 84/10/19 84/10/19 84/01/18 84/10/19 84/04/06 84/01/04 84/07/27 84/09/21 84/10/19 84/10/19 84/10/19 84/10/19 84/10/19 84/10/19 84/09/19 84/08/22 84/08/15 84/08/20 84/08/22 84/10/19 84/013/22 83/09/26 84/09/21 84/10/19 84/10/19 84/10/01 84/04/13 84/10/19 84/10/19 84/01/18 04/10/19 84/04/06 84/10/02 84/07/27 84/09/21 84/10/19 84/10/19 84/10/19 11:23 11:23 11:24 19:29 09:33 11133 1020 08:32 11:24 12115 10:23 20:31 11:26 11:27 14:16 10:33 11:29 11:29 12:54 11:30 1106 10:47 14:03 19:39 1130 1130 11:31 5557 1924 3988 91 72 27 27 29 136 5557 16 26662 26744 26654 26664 1 26658 204 21 3605 265 1030 1029 932 1030 13 13 5557 1924 3988 104 18 27 27 18 136 5557 16 26663 26744 26654 26664 1 26658 204 21 3605 265 676 1029 932 1030 13 13 01.81 84/10/19 84/10/19 11;31 26,744 26,744 0 158,899 158,544 0 MAXIMUMS: TOTALS: END OF MEMBER LIST MODIFIED NO. LIMES 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 USER ID NU188 NU188 NU188 NU157 NU104 NU752 NU141 NU141 N1J188 NU104 NU552 NU141 NU188 N1J188 NU188 NU552 NU188 NU188 NU552 NU188 NU552 NU141 NU104 NU141 NU188 NUM NU188 4-4 4.3 Dimensions de la banque Pour les données sur la région de Montréal, on a considéré la construction d'une banque de données C1 192 (le nom de la banque est MTLBANK1), possédant les dimensions suivantes: paramètre variable valeur MSCEN 2 MCENT 700 MNODE 7000 MLINK 20000 MTURN 1000 MLSEG 21000 MMAT 3 MFUNC 30 MOPER 600 par le formule, voir section 2.3.5.1. mmots = 2960266 donc bbloc = entier de [(2558.57) + 40] bbloc = 2598 Dans les circonstances, on retiendra une valeur arrondie de 2600 pour le paramètre BANKTOT de la procédure EMME2. Supposons qu'on constate qu'il reste un maximum de 155 pistes contiguës sur le disque, en faisant appel à- l'utilitaire 3,7 de SPF; on peut donc associer 1200 blocs au paramètre BANKSP, puisque 8 blocs correspondent à une piste. En posant BANKINCR = 96, on s'assure d'un espace total suffisant ([1200 + 15 * 96] > 2600). 4-5 • 4.4 Procédure spécifique d'accès on crée le fichier partitionné A017.P0108.EMPROCUS , où "US" pourraient être les initiales de l'usager. on copie EMME2.EMPROC(SETUP) dans A017.P0108.EMPROCUS(EMSETUP) III) on modifie une ligne du membre A017.P0108.EMPROCUSCEMSETUP) pour obtenir sur cette ligne, le membre: USERPROC('A017.P0108.EMPROCUS') , tel que montré au tableau 4-2. tableau 4-2 procédure "EMSETUP" PROC /*EMSETUP*/ 0 EMPREF(EMME2) USERPROC('A017.P0108,EMPROCUS 1 ) /*CONTROL LIST SYMLIST /* /*T EMSETUP 84 06 08 LGJL /* /* PROCEDURE TO - ATTACH EMME/2 PROCEDURE LIBRARY EMPROC FOR TS0 /* - SET TERMINAL DEFINITION (BACKSPACE,LINESIZE) /* /* IN THE PARAMETER DESCRIPTIONS, EMME2 INDIACTES THE SYSTEM PREFIX /* TAKEN FORM PARAMETER EMPREF, /* /* PARAMETERS: /* EMPREF PREFIX USED TO FORM THE FIRST PART OF THE /* DSNAME OF EMME/2 SYSTEM FILES /* USERPROC USER PROCEDURE LIBRARY NAME /* FREE FILE(SYSPROC) ALLOCATE FILE(SYSPROC) DA('SYS1,SYSPROC''ISP,ISPPROC' 'SYS2,ISPPROC' 'SYS2,MTG,CLIST''6EMPREF,,EMPROC"&USERPROC,') SHR XTKSTART END 4-6 on copie EMME2.EMPROC(EXEM) dans A017.P0108.EMPROCUS(MTLTC) Ceci aura créé la procédure "MTLTC" qui servira à appeler la banque de données "transport collectif" pour la région de Montréal,' (voir tableau 4-3). on édite les changements pour les paramètres à substituer, en leur donnant la valeur par défaut appropriée. On notera ici que le paramètre NNN est devenu transparent à l'usager. tableau 4-3 procédure "MTLTC" PROC /*MTLTC*/ 0 USERPREF('A017.P0108') VOLSER(MTQ302)BANK(BANKMTLI) BANKDISP(OLD) BANKTOT(2600)BANKSP(1200) BANKINCR(96) PUNCHSP(0) PRINTSP(0) PLOTSP(0)BATCHLIB(EMMIL) 0002(D002IN) D141(DEMZ7)D201(MOD) 0202(VEH) D211(NETTC) D221(TRL) D231(PEN) B301(GRP) 0311(TRANS) 0411(FCT)USERPROC('A017.P0108.EMPROCUS') /* /* CONTRAINTE: BTOT PLUS GRAND QUE BSP + ( 15 * BINCR ) /* /* CONVENTION: FICHIERPARTITIONNEPROC DEVRAIT ETRE DE NOM = /* EMPROCXX OU XX CORRESPOND A DEUX LETTRES OU /* CHIFFRES ( S'ASSURER QU'IL N'EXISTE /* PAS DEJA) /* CONTROL MAIN /*LIST SYMLIST SET &MN = &STR(002) IF &BANKDISP EU &STR(NEW) THEN SET &MN = &STR(001) EMME2 NNN(&NHH) USERPREF(WSERPREF) VOLSER(&VOLSER)BANK(OANK) BANKDISP(OANKDISP) BANKTOT(&BANKTOT)BANKSK&BANKSP) BANKINCR(&8ANWINCR)PUNCHSP(&PUNCHSP) PRINTSP(&FRIN1SP) PLOTSP(&PLOTSP)BATCHLIB(&1uATCHLIB)D002(0002) 0141(0141) D201(0201) D202(0202) D211(0211)0221(0221) D231(0231) 0301(0301) D311(0311) D411(0411)- USERPROC(&USERPROC) END NOTE : Cet exemple ne doit en aucun cas être exécuté tel quel par un nouvel usager. Il est donné ici à titre indicatif, puisque la banque BANKMTL1 existe déjà. 4-7 • 4.5 Création de la banque EXEC 'A017.P0108.EMPROCUS(EMSETUP) 1 MTLTC BANKDISP(NEW) 4.6 Lecture des données dans la banque ou utilisation générale Si on n'y est pas déjà, on entre dans la banque en tapant simplement: EXEC 'A017.P0108.EMPROCUS(EMSETUP)' MTLTC Le reste est strictement de la "cuisine" ge92 , et l'usager peut alors se référer au manuel de l'usager pour toute question d'application. • • APPENDICE "A" DESCRIPTION DES FICHIERS • A-2 A.1 Fichiers généraux Plusieurs fichiers ci-dessous auront dans leur contenu des noms symboliques. L'usager habituellement recopiera ces fichiers dans sa librairie et en conséquent changera ces noms symboliques pour les noms actuels reliés à son projet spécifique (exemple: nom de la banque). EMME2.EMPROC(EMME2) Ce fichier est la procédure standard d'appel au logiciel ge2 . En effet toute procédure de l'usager pour un projet donné accédant à regier92 , fait appel à la procédure EMME2. EMME2. EMPROC , EMSETUP) Ce fichier est la procédure à exécuter en T.S.O. pour pouvoir accéder directement aux autres procédures du fichier partitionné EMPROC. EMME2.EMPROC(EXEM) Ce fichier contient la procédure d'exemple avec noms symboliques permettant d'appeler la procédure EMME2 pour un projet donné. EMME2.EMPROC(PLOTPAGE) Ce fichier est la procédure permettant de générer des graphiques (109? sur un écran de terminal Tektronix à partir d'un fichier graphique 00,2 (plot file). A-3 EMME2.EMPROC(SETUP) Ce fichier contient la procédure avec noms symboliques permettant, lorsqu'éxécutée en T.S.O., de pouvoir accéder directement aux autres procédures du fichier partitionné de l'usager. Normalement ce fichier est recopié dans le fichier partitionné de l'usager avec comme nom EMSETUP. EMME2.JCLLIB(CALC0MP) Ce fichier contient la procédure JCL avec noms symboliques, permettant d'envoyer sur le traceur CALCOMP, les graphiques provenant d'un fichier graphique Cet (plot file). 1244E2. JCLLIIS( PRINTERA) Ce fichier est la procédure JCL permettant d'envoyer à l'imprimante le fichier d'impression ermÇe (préfixe.EMPRTZZZ) dont le nombre de lignes est plus petit que 20 000 (CLASS=A). EMME2.JCLLIB(PRINTERB) Ce fichier est la procédure JCL identique à PRINTERA, à utiliser lorsque le nombre de lignes du fichier d'impression effleq,2 est plus grand que 20 000 (maximum 50 000) (CLASS=B). EMME2.JCLLIB(RON521) Ce fichier est la procédure JCL permettant d'exécuter le module 5.21 de grelt en lot pour une banque donnée ge2 (simulation sur le réseau routier). A-4 • EMME2.JCLLIE(RUN531) Ce fichier est la procédure JCL permettant d'exécuter le module 5.31 de egeq2 en lot pour une banque donnée gre.2 (simulation sur le réseau de transport en commun). EMME2.DATA(D002IN) Ce fichier contient la table des données relatives à la description des différentes composantes sur les terminaux utilisés à la D.G.T.T.P. (service des Systèmes d'information). A-5 • A.2 Fichiers particuliers à la D.G.T.T.P., à Montréal A017.P0108.EMPROCUS Le fichier partitionné qui contient les procédures d'appel à gro* pour les projets sur le territoire de la région métropolitaine. EMSETUP Membre provenant du fichier EMME2.EMPROC(SETDP) . MTLTC Membre qui est la procédure d'accès à OrM2 pour la banque de Montréal relative au transport en commun. MTLRR Membre qui est procédure d'accès à Cie2 pour la banque de Montréal relative au réseau routier. LAVAL8 Membre qui est la procédure d'accès à erM,2 pour la banque de Laval relative à 8 secteurs. LAVAL35 Membre qui est la procédure d'accès à C1 1192 pour la banque de Laval relative à 35 secteurs. LAVAL105 Membre qui est la procédure d'accès à 001* pour la banque de Laval relative à 105 secteurs. RIVESD Membre qui est la procédure d'accès à 80092 pour la banque de la Rive-Sud. A017.P0108.EMJCLMTI. PRINTERA membres qui ont été recopiés du fichier partitionné PRINTERB EMME2.JCLLIB et qui ont été modifiés en fonction des besoins de la D.G.T.T.P. A-6 RUN521 membre recopié de EMME2.JCLLIB et modifié pour la banque de Montréal sur le réseau routier: A017.P0108.BANKMTL1 . RUN531 membre recopié de EMME2.JCLLIB et modifié pour la banque de Montréal sur le réseau de transport en commun: A017.P0108.BANKMTL2 FTTRL membre qui permet de transformer le fichier de données sur les lignes T.C. A017.P0108.EMMTL(TRL) où la fréquence de chaque ligne est augmentée de 2; résultat sur A017.P0108.EMMTL(TRLF2) TCVCNET_ membre qui permet de transformer - le fichier du réseau de base A017.P0108.EMMTL(NET) - où certaines modifications, comme éliminer le mode auto, sont faites pour obtenir un réseau orienté sur le transport en commun A017.P0108.EMMTL(NETTC) LECTTRAN membre qui permet de créer la matrice des déplacements en transport en commun ere? à partir de la matrice UTPS correspondante. LECTAUTO membre qui permet de créer la matrice des véhicules pour le réseau routier gm192 à partir de la matrice UTPS correspondante. LECTNET membre qui permet de lire le réseau routier de la banque Oro% pour la région de Montréal pour fin de _comparaison avec les comptages (versus volumes simulés). A-7 FTEXSP membre qui permet d'extraire les liens du réseau routier dont les vitesses simulées sont plus petites qu'une valeur donnée. PUNCHISO membre qui permet de lire une matrice de la banque Ce2 réseau routier et de la transformer en matrice UTPS pour fin de création du graphique des isochrones (sur les temps simulés). CALCOMP membre recopié de EMME2.JCLLIB et modifié en conséquence pour le projet de la région de Montréal. RUNCHAIN membre qui permet de faire deux simulations sur une même banque ed/r2 (transport en commun) grâce au chaînage des jobs. A017.P0108.EMMTL contient l'ensemble des tables de données61.e2 nécessaires pour les banques Oint réseau routier et transport en commun de la région de Montréal. A017.P0108.EMIVL contient l'ensemble des tables de données emmq%2 nécessaires pour les banques ter092 du projet sur la région de Laval. A017.P0108.EMRVS contient l'ensemble des tables de données eirt les banques ele2 du projet de la Rive-Sud. nécessaires pour • • APPENDICE "B" DESCRIPTION DES BANQUES DE LA D.G.T.T.P., MONTRÉAL • • B-2 Afin de mieux orienter l'usager, cette section présentera les quatres principales banques de données ette2 déjà créées et utilisées pour les études courantes à la D.G.T.T.P. Réseau de transport collectif de la région de Montréal; Réseau routier de la région de Montréal; Plan de transport de la Rive-Sud; Plan de transport CTL-Laval. 8.1 Réseau de transport collectif de la région de Montréal B.1.1 La procédure d'accès: Cette banque a été construite afin de donner à chacune des lignes de T.C. sa propre vitesse commerciale, plutôt qu'une référence à des vitesses "automobiles" sur le réseau routier. Banque: BANKMTL1 Procédure d'appel: MTLTC (décrite au tableau 4-3) Fichier: A017.P0108.EMPROCUS Données en lot: A017.P0108.EMMTL Dimensions: - 699 zones 2 scénarios 3 matrices les autres dimensions sont telles que montrées en exemple à la section 4 du guide. B-3 La procédure MTLTC contient par défaut l'appel aux membres suivants: MOD modes VEH véhicules NETTC réseau de base TRLF2 lignes T.C. DEMZ7 démarcations FCT fonctions TRANS matrices des déplacements T.C. où TRANS vient de l'exécution du membre A017.P0108.CDCLASSE(MBUILD02) suivi de l'exécution du membre A017.P0108.DUCLMTMLECTTRAN) dont la- sortie est le fichier TRANS NETTC vient de l'exécution du membre A017.P0108.EMJCLMTL(TCVCNET) qui lit le fichier NET et le transforme en fichier NETTC où le mode "a" est enlevé sur la plupart des liens; - la donnée d'usager #3 Sur les noeuds correspond au temps de transfert; le mode !'p" est ajouté à certains liens. B-4 TRLF2 vient du fichier TRL, où les fréquences des lignes de transport collectif sont ajustées, de telle sorte que le temps maximum d'attente pour une ligne soit de 10 minutes. Obtenu par l'exécution de A017.P0108.EMJCLMTL(FTTRL) . Éventuellement, ces changements se feront directement par 1e2 , de façon transparente à l'usager. B.1.2 Préparation de la simulation Étape 1: s'assurer que l'accès aux fonctions "transit" est permis pour les lignes T.C. circulant sur des liens ayant le mode auto (mode "a"); La démarche suivante doit être entreprise toutes les fois que le réseau de base ou bien les lignes T.C. sont relus dans le scénario où on veut simuler le transport en commun, avec les vitesses commerciales. Mettre les temps auto en valeurs positives, sur le scénario en question, à l'aide de module 1.11 select: 2 = fill data enter: file, record = 17,1 (pour scénario 1000) 17,2 (pour scénario 2000) enter: from word, to word, new value = 1,20000,1.0 =1 quitter le module B-5 • Note: on change IF,IR,1W1,1W2 = 17,ISCEN,1,200000 Voir manuel Ce2 . Note: Cette étape est temporaire, en attendant une nouvelle version de l'affectation transport en commun. Étape 2: S'assurer que les fréquences des lignes T.C. sont celles ajustées pour un temps maximum d'attente par ligne de 10 minutes (fichier TRLF2); _ la troisième donnée d'usager des noeuds contient le temps de transfert. normalement ces données sont déjà incluses dans la lecture du réseau de base. Étape 3: Préparation de l'affectation, à l'aide du module 5.11: matrice de demande: MF1 matrices de temps obtenues: MF2 (scénario 1000) et MF3 (scénario 2000) facteur global de temps d'attente: 0,5 poids unitaires pour les composantes de temps B-6 Étape 4: À l'extérieur du logiciel, lancer l'exécution du membre A017 . P0108 EMJCLMTL ( RUN531 ) en s'assurant que ce membre ait été modifié en conséquence, ait suffisamment de temps d'alloué et que la bonne banque est appelée BANKMTL1 Note: On peut simuler interactivement, à l'intérieur du logiciel g.M1 2 , une paire 0/O en créant une matrice de zéros sauf pour la paire en question et en appelant directement 5.31 à l'intérieur de Ortrq2 . B-7 • B.2 Réseau routier de la région de Montréal Banque: BANKMTL2 Procédure: MTLRR Fichier: A017.P0108.EMPROCUS Données: A017.P0108.EMMTZ Dimensions: 699 zones 2 scénarios 3 matrices 4000 mots pour les virages déclarés; les autres dimensions sont telles que montrées à la section 3.7.3. 111, tableau B-1 procédure "MTLRR" • PROC /*MTLRR*/ 0 USERPREF('A017.P0108') VOLSER(MT0302)BANK(BANKMTL2) BANKDISP(OLD) BANKTOT(2700)BANKSP(2400) BANKINCR(20)PUNCHSP(0) PRINTSP(0) PLOTSP(0)BATCHLIB(EMMTL) 0002(0002IN) 0141(DEMZ7)D201(MOD) 0202(VEH40) D211(NET) 0221(TRL) 0231(PEN)D301(GRP) 0311(AUTO) 0411(FCT4OP)USERPROC('A017.P0108.EMPROCUS') /* /* CONTRAINTE: BTOT PLUS GRAND QUE DSP ( 15 * BINCR ) /* /* CONVENTION: FICHIERPARCHIONNEPROC DEVRAIT ETRE DE NOM = EMPROCXX OU XX CORRESPOND A DEUX LETTRES OU /* /* CHIFFRES ( S'ASSURER QU'IL N'EXISTE PAS DEJA) /* /* CONTROL MAIN /*LIST SYMLIST SET &NNN = &STR(002) IF &BANKDISP EG &S1R(NEW) THEN SET &NNN = &STR(001) EMME2 NNN( &NNN) USERPREF( &USERPREF) VOLSER( &VOLSER)BANK(&BANK) BANKDISP( &BANKDISP) BANKTOTi&BANKTOT)BANKSP( &BANKSP) BANKINCR(UANKINCR)PUNCHSP(&PUNCHSP) PRINTSP(&PRINISP) PLOTSP( &PLOTSP)BATCHLIB( &BATCHLIB)0002(e.11002) D141(0141) D201(410201) D202(0202) 0211(&0211)0221(&0221) 0231(0231) D301(4!0301) D311(60311) 0411(&0411)END USERPROC( &USERPROC) B-8 • La procédure MTLRR contient par défaut l'appel aux membres suivants: MOD modes VEH40 véhicules NET réseau de base PEN virages TRL lignes T.C. DEMZ7 démarcations (700 zones) FCT4OP fonctions AUTO matrice des déplacements auto Le contenu de ces membres se caractérise ainsi: VEH40 vient du fichier VER où l'équivalent en auto est multiplié par 2.5 pour donner VEH40 FCT4OP vient de FCT40 dont on a réduit les puissances des fonctions V/D pour donner FCT4OP FCT40 vient de FCT dont on a transformé VOLAU par VOLAU * 40% pour donner FCT4OP AUTO vient de l'exécution du membre A017.P108.CDCLASSE(MBUILD01) suivi de l'exécution du membre A017.P0108.EMJCLMTL(LECTAUTO) dont la sortie est le fichier AUTO NET viennent de l'exécution du membre PEN A017.P0108.RESEAU(FTRESO) DEMZ7 vient de l'exécution du membre A017.P0108.RESEAU(FTEMMEZ7) B-9 B.3 Plan de transport de la Rive—Sud Afin de traiter l'analyse des lignes de désir dans le cadre de cette étude, on a généré une banque de données spéciale, dédiée uniquement à l'examen des matrices de demande. Les seuls noeuds définis ici sont les centredes ( I ) , tandis qu'un ensemble complet de lignes de démarcation permet de tracer toutes les zones d'analyse. Banque: BANKRVS Procédure: RIVESD Fichier: A017.P0108.EMPROCUS Données: A017.P0108.EMRVS Dimensions: 36 zones 1 scénario 50 matrices tableau B-2 procédure "RIVESD" PRIX /*RIVESD*/ 0 USERPREF('A0174P0108') VOLSER(MT0302)BANK(BANKRVS) BANKDISP(OLD) BANKTOT(380)BANKSP(230) BANKINCR(10)PUNCHSP(0) PRINTSP(0) PLOTSP(0)BATCHLIB(EMRVS) D002(0002IN) D141(DEM)D201(MOD) 0202(VEH) D211(NET) D221(TRL) D231(PEN)D301(GRP) D311(MAT) D411(FCT)USERPROC('A017,P010B.EMPROCUS') /* /* CONTRAINTE: BTOT PLUS GRAND QUE RSP + ( 15 * BINCR ) /* /* CONVENTION: FICH1ERPARTITIONNEPROC DEVRAIT ETRE DE NOM = /* EMPROCXX OU XX CORRESPOND A DEUX LETTRES OU /* CHIFFRES ( S'ASS(UER QU'IL N'EXISTE /* PAS DEJA) /* CONTROL MAIN /*LIST SYMLIST SET &&WN = &STR(002) IF &BANKDISP EQ &STR(NEW) THEN SET UNN = &STR(001) EMME2 NNN(&NNN) USERPREF(WSERPREF) VOLSER(&VOLSER)BANK( &BANK) BANKDISP(&BANKDISP) BANKTOT(0ANKTOT)BANKSP(0AUKSP) BANKINCR(&BANKINCR)PUNCHSP(&PUMCHSP) PRINTSP(&PRINTSP) PLOTSP(&PLOTSP)BATCHLIMBATCHLIB)D002(0002) D141(0141) D201(0201) D202(&D202) D211(0211)D221(0221) 13231(0231) D301(0301) D311(0311) D411(0411)USERPROC(&USERPROC) END (1) En réalité quelques liens "bidons" ont été définis, aux fins d'utilisation des commandes graphiques qui sont axées sur la manipulation d'un réseau. B-10 • B.4 Plan de transport CTL-Laval Cette étude a nécessité la construction de trois banques, correspondant à des systèmes de 8, 35 et 105 zones d'analyse. Ces banques sont dédiées uniquement à l'examen des matrices de demande, à l'aide de lignes de désir tracées sur un fond représentant les découpages des zones d'analyse. Banque: BANKLVL1 Procédure: LAVAL35 Fichier: A017.P0108.EMPROCUS Données: A017.P0108.EMLVL Dimensions: 35 zones 1 scénario • 99 matrices tableau B-3 procédure "LAVAL35" PROC 0 LDI(*) LOO(*) LERO(*) MAP()BANK(BANKLVL1) BANKDISP(OLD) BANKTOT(380) BANKSP(230)BANKINCR(10)PUNCHSP(0) PRINTSP(10) PLOTSP(0)BATCHLIB(EMLVL) 11002(D002IN) D141(DEM35)D201(MOD) 13202(VEH) D211(NET35) D221(TRL) D231(PEN)D301(GRP) D311(MAT35) 11411(FCT) • CONTROL MAIN /*LIST SYMLIST SET &NNN = &STR(002) IF &BANKDISP EU &STR(NEW) THEN SET &NNN = &STR(001) SET MAPSTR = &STK) SET BLIBSTR = &STRO IF &LENGTH(&MAP) NE 0 THEN SET &MAPSTR =MAP(&MAP) IF &LENGTH(&BATCHLIB) NE 0 THEN SET &PLIDSTR =PATCHLID(UATCHLID) EMME2 Nel(&NNN) &MAPSTR &BLIBSTRBANK(UANK) BANKDISP(0ANKOISP) BANKTOT(UANKTOT) BANKSP(UANKSP)BANKINCR(OANKINCR)PRINTSP(PRINTSP) PUNCHSP( &PUNCHSP) PLOTSPOPLOTSP)D002(0002) D141(0141) 0201(0201) D202(0202) D211(0211)D221(0221) D231(0231) D301(0301) D311(0311) D411(0411) END Banque: BANKLVL2 Procédure: LAVAL8 Fichier: A017.P0108.EMPROCUS Données: A017.P0108.EMLVL Dimensions: 8 zones 1 scénario 99 matrices tableau B-4 procédure "LAVAL8" • PROC /*LAVAL8*/ 0 USERPREF('A017.P0108') VOLSER(MT0302)BANK(BANKLVL2) BANKDISP(OLD) BANKTOT(380)BANKSP(230) BANKINCR(10)PUNCHSP(0) PRINTSP(0) PLOTSP(0)BATCHLIB(EMLVL) D002(D002IN) D141(DEM8)D201(MOD) D202(VEH) D211(NET8) D221(TRL) D231(PEN)D301(GRP) D311(MATS) D411(FCT)USERPROC('A017.P0108.EMPROCUS') /* /* CONTRAINTE: BTOT PLUS GRAND OUE ESP + ( 15 * BINCR ) /* /* CONVENTION: FICHIERPARTITIONNEPROC DEVRAIT ETRE DE NOM = /* EMPROCXX OU XX CORRESPOND A DEUX LETTRES OU /* CHIFFRES ( S'ASSURER QU'IL N'EXISTE /* PAS DEJA) /* CONTROL MAIN /*LIST SYMLIST SET &NNN = &STR(002) IF &BANKDISP EO &STR(NEW) TREN SET &NNN = &STR(001) EMME2 NNN( &NNH) USERPREFUUSERPRIEF) VOLSER( &VOLSER)BANK(0ANK) BANKDISP(&BANKDISP) BANKTOT(UANKTOT)BANKSP( &BANKSP) BANKINCR( &BANKINCR)PUNCHSP(WUNCHSP) PRINTSPUPRINTSP) PLOTSP(IPLOTSP)BATCHLIB( &BATCHLIB)11002(0002) D141(0141) D201(0201) D202(0202) D211(0211)D221(0221) D231(0231) 0301(0301) D311(0311) D411(0411)USERPROC( &USERPROC) END • B-12 Banque: BANKLVL5 Procédure: LAVAL105 Fichier: A017.P0108.EMPROCUS Données: A017.P0108.EMLVL Dimensions: 105 zones 1 scénario 99 matrices tableau B-5 procédure "LAVAL 1O5" FROC 0 LDI(*) LDO(*) LERO(*) MAPODANK(BANKLVL5) BANKDISP(O(1) DANKTOT(380) BANKSP(230)DANKINCR(10)PUNCHSP(0) PRINTSP(10) PLOTSP(10)DATCHLID(EMLVL) D002(11002IN) D141(DEM105)D201(MOD) D202(VEH) D211(NET105) D221(TRL) 0231(PEN)D301(GRP) D311(MAT105) D411(FCT) CONTROL MAIN /*LIST SYMLIST SET &NNN = &STR(002) IF &DANKDISP &STR(NEW) THEN SET &NNN = &STR(001) SET MAPSTR = &STK) SET DLIDSTR = &STK) IF &LENGTH(&MAP) NE 0 THEN SET &MAPSTR =MAP(&MAP) IF &LENGTH(&ATCHLID) NE 0 THEN SET &BLIBSTR =DATCHLID(&DATCHLIB) EMME2 NNN(&NNN) &MAPSTR &BLIDSTRDANK( &BANK) BANKDISP(&BANKDISP) DANKTOT( &DANKTOT) BANKSP(UANKSP)DANKINCR(eANKINCR)PRINTSP(&PRINTSP) PUNCHSP( &PUNCHSP) PLOTSP( &PLOTSP)11002(&0002) D141(U141) D201(&D201) 0202(&0202) D211(&11211)11221(&t1221) D231(&0231) D301(&11301) D311(&0311) D411(0411) END • • • s APPENDICE "C" MODIFICATION AUX VALEURS PERMISES POUR LE PARAMÈTRE "BANKTOT" C-2 • Le processus de modification aux valeurs permises de BANKTOT ne doit être exécuté que par le responsable de l'entretien du logiciel ge2 , sur demande d'un usager. Soit "btot", la nouvelle valeur permise à ajouter parmi les valeurs possibles du paramètres BANKTOT de la procédure EMME2 (voir section 2.3.3.), et pour fin d'exemple, posons btot = 3000 blocs. À l'intérieur d'une session TSO, on exécutera les tâches suivantes: EXEC 'EMME2.EMPROC(EMSETUP)' MKBDISK2 btot Exemple: MKBDISK2 3000 édition du fichier • A017.P0108.EMCRTLIB(JCLBDISK) substituer la nouvelle valeur de btot dans BDSKbtot pour les énoncés FORT.SYSIN et LKED.SYSLMOD: tableau C-1 procédure "JCLBDISK" //J7JCLBDI JOB (R07,'A017,0108,952.0110',1.1,000010), // 'SI552 L.JAMES',NOTIFY=NU552.CLASS=AMSGCLASS=X.MSGLEVEL=(2.0) /*ROUTE PRINT RMT07 D=LINDA JAMES //* //*T JCLBDISK 84 06 01 LGJL //* //* COMPILE BDISK ROUTINE FOR A REOUIRED DATA BANK SIZE. //* THIS JOB IS RUN AFTER EXECUTING PROCEDURE EMPROC(MKBDISK2) //* TO CREATE THE SOURCE FILE IN LJ.EMMOD //* //JCLSELIB EXEC FORG1CL,CPARM='LOADMOSOURCP,PARM.LKED=NCAL //FORT.SYSIN DI) DSNAME=EMME2.LJ.EMMOD(BDSK1800),DISP=SHR //LKED.SYSLMOD DD DSN=EMME2.EMLIB(BDSK1800),DISP=OLD /* C-3 soumettre en lot A017.P0108.EMCRTLIB(JCLBDISK) attendre le résultat 4- édition de la procédure EMME2.EMPROC(EMME2) a) substituer pour SET &DSIZE = btot h) et ajouter la ligne suivante: IF &BANKTOT LT btot THEN SET &DSIZE = btot' où btot' est la prochaine plus grande valeur (en faisant abstraction de btot) possible comme paramètre de BANKTOT Exemple: on change pour SET &DSIZE = 3000 et ajoute immédiatement après IF &BANKTOT LT 3000 THEN SET &DSIZE = 2700 c) et on modifie aussi une ligne pour IF &DSIZE NE btot THEN SET &BDISK = ,'&EMPREF..&EMLIB(BDSK&DSIZE) 1 Voir tableau C-2 tableau C-2 exemple de modification à la procédure EMME 2 FROC /*EMME2*/ 0 NNN(002)USERPREF('A017.P0108') VOLSER(MT0302)BANK() BAMCDISP(OLD) mecroT(380) DAM(SP(300) DAMCINCR(40) MAP()PUNCHSP(0) PRINTSP(1) FUTSP(0)EFATCHLIIM) 0002(00021N) 8141(D141IN) 0201(0201119) 0202(0202119)8211(021184) 11221(0221119) D231(02311N)D301(D301IN) D311(03111N) D411(0411IN)USERFROC('A017.P0108.EMPROCX')EMPREF(E)WE2) EMLIB(EMLIB) EMOBJ(EMOBJ) EMLOAD(EMLOAD) CONTROL MAIN /*LIST SYMLIST /* PROCEDURE TO EXECUTE EMME2 /* 84 06 08 LGJL /* CALLING SEOUENCE: /* 09E2 /* /* OPTIMAL PARAMETERG ARE SFECIFIED AS PARAMETER(VAL(C) FOLLOWING /* EMME2 (SEE EXAMPLES IN THE FROC STATEMENT) IN THE PARAME1IR /* DESCRIPTIONS, ZZZ INDICATES THE USER HUMBER TAKEN FROM T1E USER /* ID NUZZZ, XXX.YYY INDICATES THE USER DSMed£ PKIFIX TAKEN FROM /* PARAMETER USERPREF, EMME2 INDICATES THE SYSTEM PREFIX TANEN FROM /* PARAMTER EMPREF. /* /* OPTIONAL PARAMETERS: /* NNN MODULE NIMBER 3 DIGITS. USE ONLY WHEN CREATING A /* NEW DATA BASE ( 109(001) ). /* USERPREF USER PREFIX USERPREF('XXX.YYY') USES TO FORM FIRST /* PART OF IGNAME OF ALL FILES EXCEPT /* 09E/2 SYSTEM FILES. /* E.G.XXX.TYY.EMPRIZZZ /* VOLSER USER VOLUME VOLUME SERIAL USES FOR ALL FILES EXCEPT /* SERIAL 09E/2 SYSTEM FILES, /* BANK DATA 14W4K FILE DANK(C(XXXX) USED TO FORM DATA BAN( /* FILE NAME: XXX.YYY.COOM /* BANRDISP DISP OF EMNK DATA BAW FILE MUST BE ALLOCATED BY /* USING DANK1ISP(NEW) IN THIS FROC. /* BANKTOT BANK SPACE NUMBER OF BLOCKS (4628) FOR BAIE /* BANKSP PRIMARY SPACE NUMBER OF BLOCKS (4628) PRIMARY ALLOCATION FOR BAIE /* BANKINCi SECONDARY SP NUMBER OF BLOCKS (4628) SECONIMRY /* ALLOCATION FOR BANK /* /* NOTE: BAMKTOT MUST DE LESS OR EOUAL TO /* DANKSP + 151BANKINCR /* PUNCHS' RANCH SPACE NUMBER OF DLOCICS (9040) FOR FRIMARY ALLOCATION FOR PUMA FILE /* /* XXX.YYY.EMPCHZEZ, DE111ED AND ALLOCAIED AS NEW. SECONDARY ALLOC /* 15 5. /* PUNCHSP(0) WILL ALLOCATE A DUMMY /* FILE, /* PRINTSP PRINTER WACE /* NEMER OF DLOCKS (9044) FOR PRIMARY /* ALLOCATION OF E104E12 PRINTER FILE /* XXX.YYY.EMPRTZZZ, DELETED AND /* ALLOCATED AS NEW. SECONDARY ALLOC 5. /* PRINTSP(0) WILL ALLOCATE A DOM FILE. /* /* FLOTS? PLOT SPACE HUMBER CF BLOCKS (8919) FOR PRIMARY /* ALLOCATION OF EMME/2 PLOT FILE /* /* /* XKX.YYY.EMPLIZZZ, DELETED AND ALLOCATED AS NEW. SECONDARY ALLOC 5. PLOTSP(0) WILL ALLOCATE A DeMY FILE BATCHLIB BATCH IWUT NAME OF PARTITIOWI) FILE CONTAINING LIBRARY BATCH nem DATA 0002 BATL14 INPUT MEMEER NAME OF BATCH IWUT TO NODULE 002 (((VICE TABLE) 0141 ETC . MEMBER NAME OF BATCH INPUT TO MODULE 141 ETC (201,202,211,221,231,301,311, 411) EffEF E19E2 PREFIX PREFIX USED TO FORM FIRST PART OF THE IGNAME OF EMME/2 SYSTEM FILES. EKLIB SUBROUTINE LIB EMLIB(X0() USES TO FORM EMME/2 SUBROUTINE LIBRARY revIE: EMME2.XXX EMOBJ COMPILED EMOBJ(XXX) USES TO FORM EMME/2 COMPILED MOUFLES MODULE LIWARY NAME: EMME2.XXX EMLOAD EXECUTABLE EMLOAD(00() ULED TO FORM EXECUTABLE MODULES MODULE LIBRARY NAME: E19£2000( /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* 09E/2 USES THE FOLLOWING UNIT NUMDERS: /* /* 1 DATA BAIE /* 3 BATCH IMM. FILE /* 4 PUNCH FILE /* 5 DIALOG IPfUT (NORMALLY FROM TERMINAL) /* 6 DIALOG OUTPUT (NORMALLY TO weilmAL) /* 7 PRINTER FILE /* 8 PLOT FILE /* 10 ERROR MESSAGE FILE /* 98 BATCH MODE OR INTERACTIVE MODE INDICATOR FILE /* 99 NEXT MODULE FILE /* /* EMME/2 SYSTEM FILES ARE: EMLIB SUBROUTINE LIBRARY /* EMOBJ COMPILED E1411112 MODULE LIBRARY 1* EMLOAD LORD MODULE LIBRARY /* /* EMPROC TS0 PROCEDURE LIBRARY /* IF KBANKTOT ST &BAFESP + 15 * &BANKINCR TIEN DO WRITE *** BANKT0T(1.BNW(T0T) GREATER THAN BANKSP + 15 * BK9CINCR EXIT END SET USER &S1JBSTR(3:5,6SY01UID) /* /* ATTACH PROCEDURE LIBRARY FOR TRIS USER /* FREE ATTR(PLEXTDCB) FILE(FT99F001) ATTRIB NEXTICB RECFM(F B) LRECL(80) BLKSIZE(2960) DSORG(P0) IEL'&11SERPREE..0FROMISER , ALLOCATEFILE(FTWF001) DAM.USERPREF..EMPRO&USER , ) hueVClUME(&VOLSER) UNIT(3380) SPACE(1,1) TRAMS DIR(1) USINGOEXTDCB) FREE FILE(FT99F001) FFEE FILE(SYSPROC) ALLOCATE FILE(SYSPROC) SFR DAVSYSI.SYSPROC. '6EMEREF..EMPROC' '6USEKREF..EMFRO&USER , ) /* /* FREE FILES AND ATTRIBUTE LISTS (DCBS) /* eREE ATTR(BANKDCB) FILE(FTO1F001) FREE ATTR(TKDCB) FILE(FTO5F001 FTO6F001) FREE ATIR(LDADCB) FILE(FTO4F001) FREE ATIR(PRINTDCB) FILE(FTO7F001) FREE ATTR(PLOTDCB) FILE(FIO8F001) FREE FILE(FTIOF001 FT98F001) ATTRID BANKICB RECFM(F) LRECL(4620) WKSIZE(4628) WORG(PS) BUFNO(1) ATTRIB MICH RECFM(F A) LRECL(132) BLKSI7E(132) ATTRIB LDADCB RECFM(F B) LREFL(80) BLKSIZE(9040) ATTRIB PRINTDCB RECFM(F B) LRECL(133) MJCSIZE(9044) ATTRIB PLOTICB RECFM(V B S) LRECL(182) BLKSIZE(8919) /* /* DATA BAN( /* ALLOCATE FILE(FTO1F001) DA('&USERPREF.A.DANK') &BANKDISPVOLUMEUVOLSER) UNIT(3380) SPACE(6BANKSP,&BAN(INCR) BLKSIZE(4628) USIAG(BAKKICD) /* /* DIALOG Deur /16 ALLOCATE FILE(FTO5F001) DA(*) USING(TKDCB) /* /* DIALOG OUTPUT /* ALLOCATE FILE(FTO6F001) DA(*) USING(TKDCD) /* /* PRINTER FILE /* IF WRINTSP NE 0 TIEN DO tEL '6USERPREF..EMPRT&USER. ALLCICATE FILE(FT07F001) DAL'&USERPREF..EMFRT&USER') NEWYOLUME(WOLSER) U19IT(3380) SPACE(WRINTSP,5) 14JKSIZE(9044) FREE FILE(FTO7F001) ALLOCATEFILE(FT07F001)DA('&USERPREF..EMPRT&USER')MODDLKSIZE(9044) USING(PRINTDCB) RELEASE END ELSEALLOCATE FILEŒTO7F000 DSNAME('NULLFILE') BLKSIZE(9044)USING(PRINTDCB) /* /* ERROR FILE /* ALLOCATE FILE(ET10F001) DATASET(*) /* /* FILE TO COMMUNICATE TO NEXT MODULE /* ALLOCATE FILE(FT99f001) DA('&USERPREF..EMPRO&USER(NEXT)') OLD /* /* BATCH OUTPUT OR PUNCH FILE /* IF fflIFCHSP GT 0 TIEN DO (EL '6USERPREF..EMPCHEASER. ALLOC FILE(FTO4F001) DATASET('SUSERPREF..EMECH&USER')NEU KEEP CATALOG VOLUME(WOLSER)UNIT(3380) SPACE(WUNC8SP,5) MLKSIZE(9040) FREE FILE(FTO4F001) ALLOC FILE(FTO4F001) DATAWT('IMSERPREF..E)fCH&USER')MOI) BLKSIZE(9040) 1J5I143(LDADC11) RELEASE END ELSEALLOCATE FILE(FTO4F001) DUMMY BLKSIZE(9040) USING(LDADCB) tableau C-2 (suite) /* /* PLOT FILE /* IF &FLOTSP GT 0 TIEN DO DEL '&USERPREF..EMPLT&USER' ALEX FILE(FTO8F001) DATAŒT(I&USERPREF..EMPLT&USER') NEW KEEP CATALOG VOLUME(&NOLSER)UNIT(3380) SPACEOPLOTSP.5) BLKSIZE(8918) FREE FI1E(FTOEF001) ALEX FILE(FTO8F001) DATASET('&USERPREF..E)PLT&USER')MOD IlKSIZE(8918) USIhG(FLOTDCB) RELEASE END ELSEALLOCATE FILE(FTOSF001) îUiT BLKSIZE(0918) USING(PLOTDCB) /* /* SET TO INTERACTIVE MODE ! /* ALLOC FILE(FT98F001) SPACE(1) BLKSIZE(9040) USING(LDAICB) OPENFILE FT98F001 OUTPUT SET &FT9SF001 . 0 /* 0= INTERACTIEE FUTFILE FT9SE001 CLOSFILE FT9SF001 /* /* SET TO CORRECT BISK ROUTIW IF NEW DATA.BAW /* 1 SET &MISS e•SSTRC I IF&IINKDISP E0 OLD - THEN 8010 LI . fEr&DSIZE = 3300 '"--. . IF &DANKTOT LT 3000 MIEN SET 'OSTIE Mc--3000 • 'f IF DANKTOT LT 2700 TIEN SET MIE m 2600 IF &MOUT LT 2600 TIDI SET 61812E 4'1800 -. - IF &DAHU« LT 1800 PEN SET 636I71 •300 • IF 696I7E NE 3000 THEN SET 60019K = f'6EMPREF..6ENLI00DO9(60812E)* 7* /* INITIALIZE LIES USE!) INDICAN:G /* LliSET LIOS = &STR(N) /* /* INITIALIZE MODULE NtliffER /* SET NOM . teNN SET ZEROS &STR(0000) /* /* LOOP TO EXECUTE DIE/2 MODULES AS SPECIFIED ON MENU. /* /* LINK AND CALI. ARE OhLY USE!) FOR A NEW DATA D« TO USE CORRECT /* BDISK ROUTINE /* DO :MILE &MODNUM GE 000 AND HIODIAJM LT 999 SET &MODTEX = &SUBSTRIlt&EVAL(4 -2.LENGTH(IJIODAUM)).1ZEROSUMDAIRI SET &MODTEX = 6SUBSTR(2:4.&MODTEX) /* /* SET EP ANY BATCH FILES SPECIFIED /* SET F103 = &STR(N) IF &LENGTH(&BATCHLIB) EU 0 TIEN GOTO 13 IF &MOINEX EU 002 AND &LEN6TH(&D002) NE 0 nu DO ALLOC FILE(FTO3F001) DAMOSERPREF..&BATCHLIB(&D002)') SHR GOTO 12 EN!) IF tecum EU 141 AND MENGTH(&3141) NE 0 TIEN DO ALLOC FILE(FTO3F001) DA( . 1eUSE11PREF.ABATCHLIB(0141)*) SHR GOTO 12 END IF &MODTEX EU 201 AND WLEN6TH(11201) hE 0 TIEN DO ALLOC FILE(FTO3F001) DW&USERPRIT.J.DATOILID(&D201) 1 ) SII GOTO 12 END IF hOODTEX EU 202 AND WLENGTH(1.0202) NE 0 TIEN DO ALLOC FILE(F103F001) DA('&USERPREF..UATCHLIB(0202)') SOTO 12 END IF &MOTO( EU 211 AND &LENGTH(0211) NE 0 :MEN DO ALLOC FILE(FTO3F001) DA(4.USERPREF.A.BATLA_IB(&0211)') SHR 00T0 12 END IF &MODTEX EU 221 AND &LENGTH(0221) NE 0 TIEN DO ALLIE FILE(FD:13F001) DA(4.USERPREF.A.BATCHLIB(U221)') SHR GOTO 12 END IF &MODTD( EU 231 AND &LENGTH(0231) NE 0 TIEN DO ALLOC FILE(FTO3F001) DA('&USERPREF..&BATCH_IB(0231).) SHR GOTO 12 END IF &MODTEX EU 301 AND &LENOTH(&D301) h£ 0 TIEN DO ALLOC FILE(FTO3F001) DA('&USERPREF..&BATCH-IB(&0301)') SHR GOTO 12 END IF &MODTEX EU 311 AND &LENGTH(&0311) hE 0 TIEN DO ALLOC FILE(FTO3F001) DAMUSERPREF.ABATCHLIB(0311)') SHR GOTO 12 EMD IF &MODIEX EU 411 AND &LENGTH(ID411) NE 0 «MEN DO ALLIE FILE(FTO3F001) DA('&U6)ERPREF.ABATCH-IB(0411).) SHR GOTO 12 END GOTO L3 L2:SET FT03 • &STR(Y) L3:IF &BDISK EU &STR( ) TIEN DO /* LIN( 'GEMPREF..MEMOBJ(E&MODTEX). &MAP SIZE(999000) /* LIB('FORT.FORILIBY&EMPREF.A.EMLIFO,'TKICS.LOADLIB',/* IN LOAD('&EMPREF..EMTEMP(MOD)') /* CALI '&EMPREF..ENTEMP(MOD)* /* SET ues = & STR(Y) CALL i&EMPREF..(EMLOAD(E&MODTEX)' SET CCODE = &LASTCC END ELSE DO LOAD (41EMPREF..1.81OBJ(E&MODTEW &BOIS() &MM SIZE(999000)LIB('FORT.FORILIBY&EMPREF.a.EMLIIP,'TKICS.LOADLIB'.'SYSI.MAINTLIB.) SET CCODE &LASTCC SET &BDISK = &STR( ) SET LIBS &STR(Y) END IF &d703 EU &STR(Y) DEN FREE FILE(FTO3F001) IF &CCODE NE 000 TIEN GOTO SETMOD MEXT SET CCODE = &LASICC SETMOD: SET MODIMM = 6CCODE END END /* /* FREE FILES /* - 3000 %UMM EMPREF(&EMPREF) LIBS(6LIBS) (MLIBMEMLIB) EmolummoslUSERPROCUUSERPROC) DEL '&USENPREF..ETFROWEER' END C-6 édition du fichier EMME2.1.1.EMMOD(BASIC) ; dans la routine BDISK, on modifie une ligne pour obtenir DEFINE FILE 1(btot,1157,U,NEXREC) Exemple: DEFINE FILE 1(3000,1157,U,NEXREC). édition du fichier A017.P0108.EMCRTLIB(JCLSU31) pour s'assurer que partout dans ce fichier on a EMME2.1.J.EMMOD(BASIC) soumettre A017.P0108.EMCRTLIBUCLS1JB1i et attendre le résultat soumettre A017.P0108.EMCRTLIB(JCLL0AD) et attendre le résultat 9- la soumission précédente a créé EMME.EMLOAD2 qu'on rebaptisera EMME2.EMLOAD: DELETE DIME2.EMICAD RENAME EMME2.EMIOAD2 AS EMME2MIOAD (on peut utiliser l'option 3.2 de SPF). • • APPENDICE "D" INTERFACES - MATRICES UTPS / erling2 D-2 D.1 Programme HAMM But: Convertir une matrice UTPS en une matrice Cre2 Données à fournir: a) Les données suivantes sont lues en "stream imput", c'est-àdire à partir de l'unité 5: # le numéro de matrice egteÇe qui sera générée (MFi) format (I1) # le nom de la matrice egrq générée (6 caractères) format (6A1) # la description de la matrice ø11T2 générée (40 caractères) format (40A1) h) L'unité sur laquelle on lit la matrice UTPS dans le DATA du début du programme sous la variable NIN (NIN = 8 par défaut) et également la description de cette unité à la fin du programme (ligne de JCL). c) L'unité sur laquelle on écrit la matrice 0e2 dans le DATA du début du programme sous la variable NOUT (NOUT = 9 par défaut) et également la description de cette unité à la fin du programme (ligne de JCL). Il faut prévoir l'espace nécessaire pour un fichier d'enregistrements de 72 caractères où le nombre - d'enregistrements est environ le nombre de paires 0/D de valeur non nulle de la matrice UTPS, divisé par cinq. D-3 Description: Ce programme lit une matrice UTPS selon l'un des quatres formats possibles: compressé, 1-byte, 2-bytes ou 4-bytes. Puisque ce format est inclus comme donnée, dans la lecture de la matrice UTPS, le programme décode, automatiquement le format approprié et agit en conséquence. Une restriction est imposée quant à la question du "table number", c'est-à-dire du nombre de matrices à lire. Cet attribut qui est également inclus comme donnée des enregistrements lues de la matrice UTPS doit être égal à 1. Le fichier de sortie contenant la matrice Cr02 résultante est composé d'enregistrements de 72 caractères, car cette matrice est codée sous forme de caractères. Toutes les paires 0/D de valeur non nulle provenant de la matrice UTPS, sont écrites dans la matrice 6092 . D-4 D.2 Programme HATEMUT But: Convertir une matrice E00192 en une matrice UTPS. Données à , fournir: a) Les données suivantes sont lues en "stream imput", c'est-à-dire à partir de l'unité 5: # le format dans lequel on veut créer la matrice UTPS soit COMP format compressé 1BYT format 1-byte 2BYT format 2-bytes 4BYT format 4-bytes format (1A4) # le nombre de centroides qui formeront la matrice UTPS (variable NCEN) format (1I4) # le facteur multiplicatif qui appliqué à chaque valeur 0/D de la matrice gmlt matrice UTPS. donne la valeur 0/D à sauver sur la Cette dernière valeur est arrondie et entière (par défaut 1) format (114) # une chaîne de caractères fixe qui sert à la manipulation de caractères à l'intérieur du programme; format (10A1) cette chaîne doit être '0123456789.' h) L'unité sur laquelle on lit la matriceree2 dans le DATA du début du programme sous la variable NIN (NIN = 8 par défaut) et également la description de cette unité à la fin du programme (ligne de JCL). D-5 Il faut prévoir que ce fichier a des enregistrements de 72 caractères et qu'il contient comme les deux premiers enregistrements, des enregistrements bidons (habituellement ces enregistrements contiennent la description de la matrice Otr2 , telle que sortant du logiciel O7TI92 ). c) L'unité sur laquelle on écrit la matrice UTPS dans le DATA du début du programme sous la variable NOUT (NOUT = 9 par défaut) et également la description de cette unité à la fin du programme (ligne de JCL). Il faut prévoir l'espace nécessaire pour la matrice UTPS (dépendant du format demandé) soit N = nombre de paires 0/D de la matrice 60 19'2 à lire (nombre d'enregistrements - 2)15 La longueur maximale des enregistrements du fichier résultant en mots de 32 bits doit être de LRECL mots (par défaut 400) provenant du programme. Alors le lrecl du JCL est LRECL * 4 + 1 en bytes le blksize du JCL est LRECL * 4 + 8 en bytes Le nombre d'enregistrement maximum pour le format 4-bytes est NCEN * (int (NCEN/LRECL) + 1) Pour le format 2-bytes est NCEN * (int (NCEN/2*LRECL) + 1) Pour le format 1-byte est NCEN * (int (NCEN/4*LRECL) + 1) Pour le format compressé est NCEN + int(N - NCEN/LRECL) + 1 - N/NCEN D-6 Description: Ce programme lit une matrice 00e2 ayant comme deux premiers enregistrements sa description. Les paires 0/D, n'apparaissant pas dans la matrice 01111q2 , auront leur valeur à zéro. De plus les valeurs des paires 0/D de la matrice ree2 seront multipliées par le facteur multiplicatif et arrondies à l'unité près, puisque ce sont des valeurs entières qui seront écrites dans la matrice UTPS. La longueur maximale des enregistrements de la matrice UTPS est donnée par la variable LRECL (en mots de 32 bits). Par défaut cette variable est à 400, mais on peut utiliser toute autre valeur en changeant le DATA correspondant au début du programme. Dans le cas des formats 1-byte et 2-bytes, les valeurs résultantes des paires 0/D sont testées pour voir à la restriction de non-négativité et à ce que ces valeurs soient plus petites ou égales à 255 (format 1-byte) ou à 32 767 (format 2-bytes), si cete restriction n'est pas respectée alors un message est imprimé et les valeurs sont mises à 255 (format 1-byte) ou à 32 767 (format 2-bytes). Enfin si il y a des paires 0/D pour lesquelles la destination est plus grande que NCEN alors ces paires sont ignorées et un message est imprimé pour cette destination hors limite. D-7 D.3 Matrices de temps routier pour isochrones Il y a deux façons de procéder pour créer des matrices de temps routiers eninee2 dans un format compatible aux programmes de traçage d'isochrones développés à la D.G.T.T.P. La première est, de loin, beaucoup plus facile que l'autre, mais ne peut s'exécuter qu'en classes de nuit (M ou N) sur l'ordinateur central. L'autre façon peut fonctionner en classe "C", de jour, mais nécessite temporairement beaucoup d'espace-disque. D.3.1 Méthode "Nuit" Le tableau D-1 montre un exemple du programme à soumettre pour fabriquer, de mit, la matrice des temps routiers O71fle2 , sous format UTPS. L'usager est invité à se faire une copie du fichier A017 .P0108.EMJCLMTVPUNCHISO) L'usager doit s'assurer que le nom du fichier qu'il veut créer n'existe pas déjà. Par défaut, ce fichier portera le nom A017.P0108.MAT.EMMEUTPS.ISO . S'il existe et qu'on n'en a plus besoin, on le détruit dans l'étape "01" du travail. L'usager est entièrement libre de donner le nom qu'il veut au fichier de sortie. Il est essentielde vérifier que, dans la banque de donnée ' eree en question, la "switch 4" est allumé ("ON"). Pour être certain, on fait,.en session interactive au niveau du menu principal, 4 = ON • tableau D-1 programme "Nuit e pour conversion des matrices //J7PUNC1I JOB (R07, , A017,0108,188,03,D',6,8,0,0010), // '81104 A.BABIN',CLASS=N,NOTIFY=NU104,MSGPIASS=X,MSGLEVEL.(1,1) //ETAPECe EXEC P1314-314 //* //* SESSION EN BATCH DE El/2 POUR //* PURGER UNE MATRICE //* //STEPLIBDDOSN=U4NE2.EFILOAD,DISP=S-R //FTO6F001 DD SYSOUT.* //FTO7F001 DU SYSOUT=*,DCE(RECFK.FA,BLKSIZE=133) //FTO1F001DDISN.A017.P0108.BANKMTL2,DISP -41D,DCB=(B4ÇNO=1) //FTIOF001 DD SYSO1T=*,DCE(RECFM.FA,BLKSIZE.133) //FT99F001 DU MIT //FT98F001 DD DLINIT //FTO4F001 [ID DSN.68TEMPEM,UNIT=P1JB1IC,DISP=(,PASS), // SPACE.ORK,(350,20),RLSE),DCE(RECFM=FB,LP£CL.80,BL(5IZE=18960) //* //* S'ASSURER OUE SWITCH 4 EST ON SUR //* LA BAMME DE DONNEES EMME/2 (SINON IL FAUT DONNER //* UNE REPONSE DE PLUS DANS CE QUI SUIT, ET PAR //* CONSUMENT ENTRAINE UNE EMEUR SI ON NE LE FAIT PAS) //* //F105F001 DU * 4 2 6,1 4 3 MF2 RESTRICTION: ON LIT PLUSIEURS MATRICES A LA FOIS DE EMME/2, C'EST [OC DIRE QUE TABLE «DER EST MISE AU NUMERO TE LA MATRICE LUE DEBUTANT AVEC UN ET INCREMENTANT DE UN. (BITS 8-15 DE MOT 2 DES ENREGISTREMENTS DE VIFS) amen S'IL Y A PLUS QU'UNE MATRICE EMME/2 A TRANSFORMER ALORS IL FAUT SOUMETTRE PAR LA SUITE LE pROGRAME SUIVANT: A017.P0108.ABMATEM(MATPOSTX) OUI PREND CO« FICHIER D'ENTREE, LE FICHIER DE SORTIE 0J PRESENI PROGRAKME, LE FICHIER INTERMEDIAIRE ETANT: A01/.P0108.MAT.INTER.POSTX S'IL N'Y A QU'UNE MATRICE EMME/2 A TRANSFORMER ALORS LE FICHIER DE SORTIE DU PRESENT MIGRAI« EST LE RESULTAT FINAL I.E. ON PEUT CHANGER A017.P0108.MAT.INTER.POSTX FUR LE FICHIER QU'ON VEUT SAUVER (VOIR FOUR FTOEF001) LOGICAL FIRST,LAST INTEGER LI6(72),ITYP,NCEN,M4ORDS(1000) RF_AL VECT(1000) COMMON /NUM/ INUM(13) DATA JCOMP,I1BYT,I2BYT,14BYTPCOMP','IBYT , , , 2BYT',"4BYT , / DATA NIN,NOUT/8,9/ NIN = UNITE D'ENTREE DE LA MATRICE EMME/2 MOUT = UNITE DE SORTIE DE LA MATRICE UTPS DATA LRECL/400/ LRECL 0 /* //E1AF£01 EXEC P6M=IEFBR14 //DDOI BD DSN=A017.P0108.MAT.EM8lEUTPS.ISO,DISP=(OLD,DELETE) //ETAPE02 EXEC FORG1)16 //FORT.SYSIN BD * C PROGRAMME I MATEMUT (MATRICES EM)E/2 --) MATRICES UTPS) C INTERFACE SUR LES MATRICES C MATRICES E19€/2 CONVERTIES EN MATRICES UTPS C EN ENTREE, ON FOURNIT: (IA4) LE TYPE DES MATRICES UTPS A LA SORTIE SOIT COMP FORMAT COMPRESSION 1BYT FORMAT EN 1-BYTE 2BYT FORMAT EN 2-BYTES 4BYT FORMAT EN 4-BYTES (I4) LE NOMBRE DE CENTROIDES (I4) UN FACTEUR MULTIFtICATIF S'APPLIQUANT A CHAIRE VALEUR 0/D (CAR LES VALEURS UTES SONT SAUVEES COMME ENTIERS) (13A1) INSERTION DE LA CHAIRE DE CARACTERES: '0123456789.*M' LONUEUR DES RECORDS LOGIQUES EN MOTS DE 4 BYTES EN FAIT CETTE LONGUEUR CORRESPOND A LRECL*4 + 4 BYTES DU LRECL DU CL POUR UNITE NOUT LRECL*4 + 8 BYTES DU BLXSIZE DU 321_ DE UNITE MOUT PASSER LES DEUX PREMIERES LIGNES DE LA MATRICE EMME/2 (I.E. 'T MATRIX' ET LA LIGNE DE LA DESCRIPTION DE LA MATRICE) READ(NIN,10) LIS READ(NIN,10) LIS 10 FORMAT(72A1) LIRE LE TYPE DE MATRICE UTPS ET LE NOMBRE DE CENTROIDES SUR L'UNITE 5 (STREAM INPUT) READ(5,20) ITYP READ(5,30) NCEN 20 FORMAT(1A4) 30 FORMAT(114) WRITE(6,25) 25 FORMAT('1 , //' -- MATEMUT - -"II) READ(5,30) IFACT FACT.FLOAT( IFACT) READ(5,35) INUM 35 FORMAT(13A1) LAST=.FALSE, FIRST=.TRUE. ITABN=I ICOMP.3 NTOT=0 ITABN = TABLE NIMBER (BITS 8-15 WORD 2 ON UTPS MATRIX RECORDS) CONTINUATION RECORDS (BIT 0 WORD 2 ON UTFS MATRIX RECORDS, BIT ON) ICOMP . FORMAT CODE (BITS 1-7 WORD 2 ON UTPS MATRIX RECORDS) IF(ITYP.01.JCOMP) ICOMP.0 IF(ITYP.E0.11BYT) ICOMP.1 IF(ITYP.M.I2BYT) ICOMP.2 IF(ITYP.M.I4BYT) ICOMP.4 IF(IC018',E0.0) VMAX=999999. IF(ICOMP.E0.1) VMAX=255 IF(ICOMP.E0.2) VMAX=32767 IF(ICOMP.E0.4) UMM-999999. DO 40 1=1,1000 VECT(I)=0. 40 CONTINUE C IWORD NOMBRE DE MOTS - 2 (ENREGISTREMENTS UTPS) BeRtfr-f4CFJ4 IF(ICOMP.E0.1) IDIV=4 IF(ICOMP.E0.2) IDIV=2 IF(ICOMP.E0.4) IDIV.1 IF(ICOMP.GE.1) IWORD = (NEER -I)/IDIV + 1 NLIG=0 50 READ(NIN,10,EN -500) LIG KLIG=NLIG+1 IF(NLIG.LE.1000) WRITE(6,1111) LIG 1111 FORMAT(' ---)',72A1) I) 37 I=I+1 IF(I.GT.10) GOTO 52 IF(LIG(I).NE.INUM(13)) GOTO 37 GOTO 50 52 CALL SCANO(LIG,NO) IF(.NOT.FIRST) GOTO 53 NORIG = HO FIRST = .FALSE. 53 IF(NORIG.EQ.NO ) GOTO 480 490 NWORDS(2)=ICOMP*16777216 + ITADN*65536 + NORIG IF(ICOMP.NE.0) GOTO 100 NB.0 DO 70 I=I,NCEN IF(VECT(I).E0.0.) GOTO 70 IVALI = IFIX(VECT(I)*FACT+0.5) 60 IVAL2=IVAL1 IF(IVAL1.GT.262143) IVAL2.262143 NB=NB+1 NWORDS(NB+2)=1*262144+IVAL2 NTOT=NTOT+IVAL2 IF(IVALI.LE.262143) GOTO 70 IVALI=IVAL1 -262143 GOTO 60 70 CONTINUE NWORDS(I)=NB+1 GOTO 400 100 NWORDS(I)=IWORD+I IF(ICOMP.NE.4) GOTO 120 DO 110 I=1,IWORD tableau D-1 (suite) NWORDS(I+2) , IFIX(VECT(I)*FACT+0.5) NT0T=NT0T+1414ORDS(I+2) 110 CONTINUE . GOTO 400 120 IF(I60MP.NE.2) GOTO 200 DO 130 1=1,IWORD W11=IFIX(VECT(I*2-1)*FACT+0.5) NW2=IFIX(VECT(I*2)*FACT+0.5) IF(NWI.6E.0.A4D.0611.LE.32767) GOTO 125 II=1*2-1 WITE(6,122) NORI6,II,NW1 122 FORMAT(//' ATTENTION ORIGINE A DESTINATION ',I5, X ' VALEUR ',I12,' MISE A 32767') NW1=32767 125 IFU42.GE.0.AN1'.002.LE.32767) GOTO 132 II.2*1 WRITE(6,122) N0RIG,II,NW2 NW2=32767 132 CONTINUE NWORDS(1+2)=NW1*65536 + NW2 NTOT.NTOTNA11+NW2 130 CONTI« GOTO 400 200 DO 300 I=1,IWORD NW1=IFIX(VECT(I*4-3)*FACT+0.5) NW2=IFIX(VECT(I*4-2)*FAC1+0.5) NW3=IFIX(VECT(I*4-1)*FACT+0.5) NW4=IFIX(VECT(I*4)*FACT+0.5) IF(Ne.GE.0.AN6.Ne.LE.255) GOTO 220 11=144-3 WRITE(6,225) NORIG,II,NW1 A DESTINATION ',I5, 225 FORMAT(//' ATTENTION ORIGINE X ' VALEUR ',I8,' MISE A 255') NW1.255 220 IF(NO2.GE.0.ANDA42.LE.255) GOTO 240 II=1*4-2 NRITE(6,225) N0RI6,11,P442 002.255 240 IF(NW3.GE.0.AND.N43.LE.255) GOTO 260 II=I*4-1 WRITE(6,225) NORIG,II,NW3 N613=255 260 IF(N04.GE.O.AND.,4144.LE.255) GOTO 310 11.I*4 WRITE(6,225) N0RI6,II,W.44 M44=255 310 CONTINUE NWORDS(1+2)=P411*16777216+NW2*65516+003*256+NW4 NT0T4470T+NWI+NW2+NW3+Nbi4 300 CONTINUE C ECRIRE LE OU LES RECORDS SUR UNITE DE SORTIE NOUT C AVEC LE BIT DE CONTINUATION A 1 SALF LE DERNIER RECORD S'IL Y A LIEU C 400 CONTINUE L=NWORDS(1)+1 LP=2 IF(L.LE.LRECL) GOTO 420 LRECLM-4.RECL-1 C METTRE LE BIT 0 (BIT LE PLUS A GAUCHE) DU MOT 2 A UN C 2 ** 31 = 2147483648 . 2147481647 + 1 MAe46JO1(DS(2)+21474133647 NNW244842+1 WRITE(NOUT) LREl1M,NNW2,(NUORDS(I),I=3,LRECL) LP--LRECL 410 IF(L-LP.LE.LRECL-2) GOTO 420 II=LP+1 LP4P+LRECL-2 WRITE(NOUT) LRECLM,NNW2,(NWORDS(I),I=11,LP) GOTO 410 420 11=LP+1 LLP=L-LP+1 WRITE(NOUT) LLP,8WORDS(2),(NWORD(l(I),I=11,L) 10 450 I=1,1000 '.CT(I)=0. 450 CONTINUE IF(LAST) GOTO 510 IF(NORIG.LE.NO ) GOTO 470 WRITE(6,460) ITABN,NTOT 460 FORMAT(' UTES MATRIX CNEATED TABLE (AUMBER = ',I4/ + 20X,'MATRIX TOTAL = ',I12) NTOT=0 ITA[4)=ITABN+1 470 NORIG=NO 480 GALL SCAN(LIG,VECT,NCEN,VMX) GOTO 50 500 LAST..TRUE. GOTO 490 510 CONTINUE WRITE(6,460) ITABN,NTOT STOP END SUBROUTINE SCANO(L,N) INTEGER L(72) IL.0 NO=0 10 IL=IL+1 IF(IL.6T.72) RETURN INOS=INTC(L(IL)) IF(INOS.E0.-1) GOTO 10 20 N0=N0*10+INOS 11=11+1 IF(IL.GT .72) RETURN INOS=INTC(L(IL)) IF(INOS.GE.0.AND.INOS.LE.9) GOTO 20 N440 RETURN END INTEGER FICTION INTC(LC) (»NON /Mi/ INUM(13) DO 10 1.1,12 IF(LC.NE.1hUM(1)) 6010 10 INTC=I -I RETURN 10 CONTINUE INTC. -1 RETURN END SUBROUTINE SCAN(L,V,NCEN,VMAX) REAL V(1) INTEGER 1(72) IL) 10 IL=IL+1 IF(IL.GT .72) RETURN IF(INTC(L(IL)).E0. -1) GOTO 10 20 IL=IL+1 IF(IL.GT .72) RETURN INOS=INTC(L(IL)) IF(INOS.GE.0.AND.INOS.LE.9) GOTO 20 30 IL.IL+I IF(IL.GT .72) RETURN INOS=INTC(L(IL)) 35 ND=0 IF(IN05.E0. -I) GOTO 30 40 ND=ND*10+IN0S IL=IL+1 IF(IL.GT .72) RETURN INOS=IKTC(L(IL)) IF(I)OS.GE.0.AND.INOS.LE.9) GOTO 40 50 IL=IL+I IF(IL.GT.72) REILRN INOS=INTC(L(IL)) X=0, Y=0, YY.O. IF(INOS.E0. -1) ((((TU 50 IF(INOS.W.11) GOTO 58 V(N)=-VMAX 55 IL=IL+1 INOS=INTC(L(IL)) IF(INOS.E0.11) GOTO 55 GOTO 35 58 IF(INOS.E0.10) 0310 70 60 X.X*10.+FLOAT(INOS) IL.IL+I IF(IL.GT .72) GOTO 90 INOS=INTC(L(IL)) IF(INOS.GE.0.AND.INOS.LE.9) GOTO 60 IF(INOS.NE.10) GOIO 90 70 IL=IL+1 IF(IL.GT .72) GOTO 80 INOS=INTC(L(IL)) IF(INOS.E0. -1) GOTO 80 Y=Y*10.+FLOAT(IN0S) YY=YY -1. GOTO 70 80 X=X+(Y*10.**YY) 90 IF(ND.LE.O.OR.ND.GT .NCEN) GOTO 100 V(ND)=X IF(IL.LT.72) GOTO 30 RETURN 100 WRITE(6,110) ND,NCEN,X 110 FORMAT(/' ATTENTION 11 EESTINATION ZONE = ',I6, + (MAX. ZONE IS ',I6,') WITH VALUE = ',F10.3,/, + 20X,'IS SKIPPED') RETURN END /* //GO.SYSIN DD * 2BYT 699 10 0123456789.*M /* //GO.FTO8F001 DD DSH--166TEMPVI,DISP.(OLD,DELETE) //G0.FTO9F001 DD 161-A017.P0108.14AT.EMME11TP(l.ISO,LNIT.3380, // V1L.SER=MT0302,SPACE=CTRI(,(10,3),RLSE),DISP -4,CATLG), // DCB.(FECFM.-VBS,LRECL=1604,BLKSIZE.1608) C7 D-10 Après exécution du travail, la matrice des temps routiers, en format UTPS, existera comme table no.1, dans le fichier A017.P0108.MAT.EMMEUTPS.ISO . D-11 D.3.2 Méthode "Jour" Cette façon de faire demande temporairement environ 200 pistes sur l'unité de disques 3380. Étape : Faire un "Punch" de la matrice, à l'intérieur de la banque choisie, dans Ce2 : MTLRR PUNCHSP(1000) Changer les paramètres du module 3.14: dimension for in-hue report: 6,1 Exécuter le punch de la matrice contenant les temps simulés, habituellement MF2. Le résultat sera versé au fichier A017.P0108.EMPCHZZZ Étape 2: En se servant du fichier A017.P0108.ABMATEM(MATEMUT) comme exemple (tableau D-2), s'en faire une copie avec les modifications suivantes: a) Insérer ses propres cartes JOB, avec class = C. h) À l'étape 00 du travail, donner s'il y a lieu le nom du fichier à détruire. Normalement; on détruira, s'il existe, le fichier A017.P0108.MAT.EMMEUTPS.ISO . si cette étape n'est pas nécessaire, l'éliminer. D-12 À la fin du fichier-programme, il faut avoir 2BYT 699 10 S'assurer que le fichier d'entrée [FTO8F001 de l'étape GO] porte le nom A017.P0108.EMPCHZZZ Donner au fichier de sortie le nom que vous voulez. Habituellement, on aurait A017.P0108.MAT.EMMEUTPS.ISO . La table 1 de ce fichier est la matrice des temps routiers effle192 , en format UTPS. • • • • tableau D-2 programme 'Jour pour conversion des matrices //,17MATEM1 JOB (R00,9,017,0108,188,03,D',3,8,0,0010), // , S1552 A BABIN',CLASS-,NOTIFY=NU188,MS0CLASS-X,MSGLEVEL=(1,1) //ETAPEO0 EXEC PGM=IEFERI4 //8001DDIEAP-A017.P01013.MAT.EMMEMS.ISO,DISP=((LD,DELETE) //ETAPEOI EXEC FORG1CLG //FORT.SYSIN DD * C PASSER LES DEUX PREMIERES LIGNES DE LA MATRICE EMME12 C (I.E. 'T MATRIX' ET LA LIGKE DE LA DESCRIPTION DE LA MATRICE) C PROGRAMME MATEM(li (MATRICES EMME/2 --) MATRICES UTPS) C LIRE LE TYPE DE MATRICE UTPS ET LE NOMBRE DE CENTROIDES SUR L'UNITE 5 (STREAM INPUT) C INTERFACE SUR LES MATRICES MATRICES EMME/2 CONVERTIES EN MATRICES UTPS C EN ENTREE, ON FOURNIT: (1A4) LE TYPE [ES MATRICES UTPS A LA SORTIE SOIT COMP FORMAT COMPRESSION 1BYT FORMAT EN 1-BYTE 2BYT FORMAT EN 2,4BYTES 4BYT FORMAT EN 4-BYTES (I4) LE NOKDK DE CENTROIDES (I4) UN FACTEUR MuLTIFLICATIF S'APPLIOUANT A CHAQUE vALEuR 0/8 (CAR LES VALEURS UTPS SONT SAUVEES C(1« ENTIERS) (13AI) INSERTION DE LA CHAINE DE CARACTERES: '0123455789.1w C RESTRICTION: ON LIT PLUSIEURS MATRICES A LA FOIS DE EMME/2, C'EST DONC DIRE QUE TABLE NuMBER EST MISE AU NUMERO DE LA MATRICE COURANTE LUE DEBUTANT AVEC UN ET INCREMENTANT DE UN. (BITS 8-15 DE MOT 2 DES ENREGISTREMENTS DE UTES) C S'IL Y A PLUS QU'UNE MATRICE Er/2 A TRANSFORMER ALORS IL FAUT SOUMETTRE PAR LA SUITE LE PROGRAMME SUIVANT: A017.P0108.ABMATLIVMATPOSTX) OUI PREND COMME FICHIER D'ENTREE, LE FICHIER DE SORTIE DJ FRESENT PROGRAMM, LE FICHIER INTERMEDIAIRE ETANT: A017.P0108.MAT.INTER.POSTX C S'IL N'Y A QU'UNE MATRICE Bee./2 A TRANSFORMER ALORS LE FICHIER If SORTIE DU PRESENT PROGRAME EST LE RESULTAT FINAL I.E. ON PEUT CHANGER A017.P0108.MAT.INTER.F1)STX POUR LE FICHIER QU'ON VEUT SAUVER (VOIR POuR FTO8F001) LOGICAL FIRST,LAST INTEGER LI6(72),ITYP,NCEN,NWORDS(1000) REAL VECT(1000) COMMON /NUM/ INUM(13) DATA JC0(MP,I1BYT,I2BYT,I4BYTPCOMP','1BYT','2BYT','4BYT'/ DATA NIN,NOUT/8,9/ C NIN = UNITE D'ENTREE DE LA MATRICE EM4E/2 C NOUT = UNITE DE SORTIE DE LA MATRICE UTPS DATA LREC1/400/ LRECL : LONGUEUR DES RECORDS LOGIQUES EN MOTS DE 4 BYTES EN FAIT CETTE LONGUEUR CORRESPCM A LREI1*4 + 4 BYTES DU LRECL DU JCL POUR UNITE NOUT LRECL*4 + 8 BYTES DU BLKSIZE DU JC1 DE UNITE HOU] READ(NIN,10) LIS READ(NIN,10) LIG 10 FORMAT(72A1) READ(5,20) ITYP READ(5,30) NC04 20 FORMAT(1A4) 30 FO1)MAT(II4) WRITE(6,25) 25 FORMAT('I'//' -- MATEMUT READ(5,30) IFACT FACT=FLOAT(IFACT) READ(5,35) DAIM 35 FORMAT(13A1) LAST=.FALSE. FIRST=.TRUE. ITABN=I ICOMP=0 NTOT=0 ITABN = TABLE HUMBER (BITS 8-15 WORD 2 ON (1TPS MATRIX RECORDS) CONTINUATION RECORDS (BIT 0 wORD 2 ON VIFS MATRIX RECORDS, BIT ON) ICOMP - FORMAT CODE (BITS 1-1 WORD 2 ON UTPS MATRIX RECORDS) IF(ITYP.O.JCOMP) ICOMP- 3 IF(ITYP.E0.11BYT) ICOMP=1 IF(ITYP.E0.I2ByT) ICOMP=2 IF(ITYP.EQ.I4BYT) ICOMP=4 IF(ICOmP.E0.0) ¼X -999999, IF(ICOMP.E0.1) VMAx.255 IF(ICOMP.E0.2) VMAX=32767 IF(ICOMP.E0.4) VMAX=999999. DO 40 I-1,1000 VECT(I)=0. 40 CONTINLE C MORD . NOMBRE DE MOTS - 2 (ENREGISTREMENTS VIFS) IWORD=NCEN IF(ICU4P.E0.1) IDIV-4 IF(ICOmP.E0.2) IDIv=2 IF(ICO8P.E0.4) IDIv=1 IF(ICO(Ç.GE.1) IWORD = (NCEN-1)/IDIv + 1 50 READ(NIN,10,END=500) LIG 37 1=1+1 IF(I.GT.10) GOTO 52 IF(LIG(1).NE.INUM(13)) 6010 37 GOTO 50 52 CALL SCANO(LIG,NO) IF(.NOT.FIRST) GOTO 53 NORIG = NO FIRST = •FALSE. 53 IF(NORIG.EO.NO ) GOTO 480 490 MERDS(2)=ICOMP*16777216 + ITA0(4*65e36 + NORIG IF(ICOMP.NE.0) GOTO 100 DO 70 I=1,NCEN IF(VECT(I).E0.0.) GOTO 70 IFIX(VECT(I)*FACT+0.5) IVAL1 60 IVAL2=IVAL1 IF(IVAL1.GT.262143) IVAL2=262143 NB=h11+1 hUO1)DS(NB+2)=1*262144+1VAL2 NTOT=NTOT+IVAL2 IF(IVAL1.LE.262143) GOTO 70 IVAL1=IVAL1-262143 GOTO 60 70 CONTINLE NWORDS(I)=NB+1 GOTO 400 100 NWORDS(I)=I1UD+1 IF(ICOMP.NE.4) GOTO 120 DO 110 1=1,IWORD NWORDS(I+2)=IFIX(VECT(I)*FACT+0.5) NTOT=NT0T+NWO1)DS(I+2) 110 CONTINUE GOTO 400 120 IF(ICO(f.NE.2) GOTO 200 DO 130 I=1,IWORD NW1=IFIX(VECT(I*2-1)*FACT+0.5) NW2=IFIX(VECT(I*2)*FACT+0.5) IF(NW1.GE.0.AND.N41.LE.32767) GOTO 125 II=1*2-1 (1)ITE(6,122) NORIG,II,hUI 122 FORMAT(//' ATTENTION ORIGINE 0 ,14,' A DESTINATION ',I5, ' VALEUR ',I12,' MISE A 32767') MAI=32767 125 IF(NW2.6E.0.AND.WW2.LE.32767) GOTO 132 II=I*2 11)ITE(6,122) NORIG,I1,Nu2 NW2=32767 132 CONTIN1E NW1)DS(1+2)=N1I*65536 + NTOT=NTOT+NW1+1612 130 CONTINuE GOTO 400 200 DO 300 1=1,II40RD NWI=IFIX(VECT(I*4-3)*FACT+0.5) NW2=IFIX(VECT(I*4-2)*EACT+0.5) NW3=IFIX(VECT(I*4-1)*FACT+0.5) NW4=IFIX(VECT(I*4)*FACT+0.5) IF(NWI.GE.0.AND.NWI.LE.255) GOTO 220 II=1*4-3 WRITE(6,225) NORIG,II,NW1 A DESTINATION 'iI5, 225 FORMAT(//' ATTENTION ORIGINE X ' VOLEUR ',IO,' MISE A 255') NUI =255 220 IF(N42.6E.0.AND.N42.LE.255) GOTO 240 11=11(4-2 tableau D-2 (suite) 1RITE(6,225) NORI6,II,NW2 NW2=255 240 IFINW3.GE.0.A140.NO3.LE.255) GOTO 260 11.1*4-1 WRITE(6,225) NORIG,IIMW3 NW3.255 260 IF(NW4,GE.0.AND.W44.LE.255) GOTO 310 WI*4 WRITE(6,225) N60I6,II,M4 NW4=255 310 CONTINUE NWORDS(1+2)=NWI*16777216+NW2 ,65536+NW31(256+NW4 UTOT.NTOT+1,411+NW2+WW3+1W4 me CONTINUE C ECRIRE LE OU LES RECORDS SUR (»UTE DE SORTIE NOUT C AVEC LE BIT DE CONTINUATION A I SAUF LE DERNIER RECORD C S'IL Y A LIEU 100 CONTINUE L=N4ORDS(1)+1 LP=2 IF(L.LE.LRECL) GOTO 420 LRECLW-LRECL-1 C METTRE LE BIT 0 (BIT LE PLUS A GAUCHE) DU MOT 2 A UN C 2 ** 31 2147483648 2147483647 + 1 NNW2--NWORDS(2)+2147483647 141412-)84142+ I WRITE ( NOUT ) LRECLM,NNW2, ( NWORDS ( I ) 1=3 ,LRECL LP=LRECL 410 IF(L -LP.LE.LRECL -2) GOTO 420 I1=LP+1 LP=LP+LRECL -2 WRITE(NOUT) LRECLM,NNW2,(NWORDS(I),I=11,1P) GOTO 410 420 II4P+1 LLP=L-LP+1 WRITE(NOUT) LLP,NWORDS(2),(NWURDS(I),I=11,L) DO 450 1=1,1000 VECT(I)=0. 450 CONTINUE IF(LAST) GOTO 510 IF(NORIG.LE.140) GOTO 470 W1ITE(6,460) ITABN,NTOT 460 FORMAT( UTPS MATRIX CREATED TABLE NUMBER = ',I4/ + 20X,'MATRIX TOTAL = ',I12) NTOT.0 ITABWITABH+1 470 NORIG.NO 480 ('AIL SCAN(LIG,VECT,NCEN,VMAX) GOTO 50 C. 500 LAST=.TRUE. GOTO 490 510 CONTINUE WITE(6,460) ITABN,NTOT STOP END SUBROUTIRE SCANO(L,N) INTEGER 1(72) 11=0 NO4 10 IL=IL+I IF(IL.GT.72) REfURN INOS.INTC(L(IL)) IF(INOS.E0.-1) GOTO IO 20 10h-N10*10+INOS 11=11+1 IF(IL.GT .72) RETURN INOS=INTC(L(IL)) IF(INOS.GE.O.AND.INOS.LE.9) GOTO 20 PeN0 RETURN END INTEGER FUNCTION INTC(LC) COMMON eut/ INUM(13) DO 10 1=1,12 IF(LC.1.E.INUM(I)) GOTO 10 INTC=I -1 RETURN 10 CONTINUE INTC= -I RETURN END SUBROUTINE SCAN(L,V,NC94,VMAX) REAL V(I) INTEGER 1(72) IL=0 10 IL=IL+I IF(IL.GT .72) RETURN IF(IKTC(L(IL)).E0. -1) GOTO 10 20 11=11+1 IF(IL.GT.72) RETURN INOS=INTC(L(IL)) IF(INOS.GE.0.AND.INOS.LE.9) GOTO 20 30 11=11+1 IF(IL.GT .72) RETURN INOS=INTC(L(IL)) 35 ND=0 IF(INOS.E0. -1) GOTO 30 40 ND=N1)*10+INOS 11=11+1 IF(IL.6T.72) FerteN INOS.INIC(L(11)) IF(INOS.GE.0.AND.INOS.1.E.9) GOTO 40 50 IL=11+1 IF(IL.6T.72) FETURN INOS=INTC(L(11)) X=0, YY.O. IF(INOS.E0. -I) GOTO 50 IF(INOS.NE.11) GOTO 58 V(ND)=VMAX 55 IL=IL+1 INOS=INTC(L(IL)) IF(INOS.E0.11) GMTO 55 60T0 35 58 IF(INOS.E0.10) GOTO 70 60 X=X*10.+FLOAT(INOS) IL=IL+I (F(11.67.72) GOTO 90 INOS=INTC(L(IL)) IF(INOS,G(.0.AND.INOS.LE.9) GOTO 60 IF(INOS.NE .10) GOTO 90 70 IL=IL+1 IF(IL.(lT.72) GOTO DO INOS=INTC(L(IL)) IF(INOS.E0. -1) GOTO 80 Y=Y*10.+FLOAT(IP10S) YY=YY -I. GOTO 70 80 X=X+(Y*10.**YY) 90 IF(ND.LE.O.OR.ND.GT .NCEN) GOTO 100 V(0)=X IF(IL.LT.72) GOTO 30 RETURN 100 WRITE(6,110) ND,NCEN,X 110 FORMAT(/' ATTENTION 11 DESTINATION ZONE = ',16, + (MAX. ZONE (S ',I6,') WITH VALUE ',F10.3,/, 20X,'IS SKIPPED') RETURN END /e //GO.SYSIN DO * 2BYT 699 10 0123456789.*M /* //00.FT08F001 DD D9 4-A017.P0108.01PC11141,DISP=SIIR //6O.FT09F001 DD DSN=A017.P0108.MAT.EMMEUTPS.ISO,UNIT.3380, // VOL=SER=MT0302,SPACE=(TRK,(10,3),RLSE),DISP.(,CA1L3), // DCB=(RECFM=VBS,LRECL=1604,BLKSIZE.1608) D-15 D.3.3 Traçage des isochrones Le fichier créé plus haut, peu importe la méthode, peut être maintenant passé aux programmes dé tràçaW d'isochrones. La documentation de ces programmes peut être obtenue sur demande au service des Systèmes d'information et transport des personnes. , , er.e, a ; MIN STERE DE TRANSPORTS I I I Il I 1111M 1 161i11 A QTR