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

Documents pareils