We have UMS.REXX.APPL.LIB(TRACKS):
/* PROGRAM TO CALCULATE TRACKS AND CYLINDERS BASED ON RECORD LENGTH */
/* AND BLOCK SIZE. WRITTEN IN REXX BY R. STEHLIK, 04/21/91. */
/* FOR EQUAL LENGTH PHYSICAL RECORDS WITHOUT KEYS. */
SAY 'THIS PROGRAM WILL CALCULATE THE TRACKS AND CYLINDERS NEEDED FOR'
SAY 'EQUAL-LENGTH PHYSICAL RECORDS WITHOUT KEYS ON A 3380 VOLUME.'
CALL LOAD_TABLE DO FOREVER DROP TRK_1 RECS RDC_LEN BLK_FCT TOT_BYT
EST_REC TOT_TRK MAX_BLK OPT_BLK
SAY SAY SAY 'PRESS ENTER TO EXIT, OR........' SAY SAY 'ENTER RECORD
LENGTH:' PULL RCD_LEN IF RCD_LEN = '' THEN LEAVE MAX_BLK = TRUNC(47476
/ RCD_LEN) OPT_BLK = TRUNC(23476 / RCD_LEN) SAY SAY 'LARGEST
EFFICIENT BLOCKING FACTOR FOR RECORD LENGTH' RCD_LEN SAY 'IS'
OPT_BLK'. IF YOU EXCEED THIS SIZE, THIS PROGRAM WILL END.'
SAY SAY SAY 'ENTER BLOCKING FACTOR:' PULL BLK_FCT IF BLK_FCT = '' THEN
LEAVE IF BLK_FCT > TRUNC(OPT_BLK + .5) THEN DO SAY 'BLOCKING FACTOR
ENTERED, EXCEEDS LARGEST BLOCK RECCOMMENDED' SAY 'FOR EFFICIENCY.
PROGRAM IS ENDING. PLEASE TRY AGAIN' SAY 'WITHOUT EXCEEDING
LARGEST EFFICIENT BLOCKING FACTOR.' LEAVE END SAY SAY 'YOUR
BLOCKSIZE IS 'RCD_LEN * BLK_FCT'.' SAY SAY 'ENTER ESTIMATED NUMBER OF
RECORDS:' SAY PULL EST_REC IF EST_REC = '' THEN LEAVE BLK_SZE =
RCD_LEN * BLK_FCT TOT_BYT = RCD_LEN * EST_REC RECS = 0 TOT_TRK = 0 DO
I = 1 TO 61 IF BLK_SZE >= SUBSTR(DATA.I, 1, 5) & BLK_SZE <=
SUBSTR(DATA.I, 6, 5)
THEN DO RECS = SUBSTR(DATA.I, 11, 2) TRK_1 = RECS *
BLK_SZE TOT_TRK = TOT_BYT / TRK_1 LEAVE END END IF RECS =
0 THEN DO SAY 'BLOCKSIZE' BLK_SZE 'OUTSIDE OF RANGE, CANNOT
CALCULATE.' END IF TOT_TRK > 0 THEN DO SAY SAY 'YOU WILL
NEED A TOTAL OF' TRUNC(TOT_TRK + .5) 'TRACKS' SAY 'OR'
TRUNC(TOT_TRK / 15 + .5) 'CYLINDERS.' END END EXIT LOAD_TABLE:
PROCEDURE EXPOSE DATA. DATA.1 = '234774747601' DATA.2 =
'154772347602' DATA.3 = '114771547603' DATA.4 = '090771174604'
DATA.5 = '074770907605' DATA.6 = '062570747606' DATA.7 =
'054930635607'
DATA.8 = '048210549208'
DATA.9 = '042770482009'
DATA.10 = '038610427610'
DATA.11 = '034770386011'
DATA.12 = '031890347612'
DATA.13 = '029330318813'
DATA.14 = '026770293214'
DATA.15 = '024850267615'
DATA.16 = '023250248416'
DATA.17 = '021650232417'
DATA.18 = '020050216418'
DATA.19 = '018770200419'
DATA.20 = '017810187620'
DATA.21 = '016850178021'
DATA.22 = '015890168422'
DATA.23 = '014930158823'
DATA.24 = '013970149224'
DATA.25 = '013330139625'
DATA.26 = '012690133226'
DATA.27 = '012050126827'
DATA.28 = '011410120428'
DATA.29 = '010770114029'
DATA.30 = '010450107630'
DATA.31 = '009810104431'
DATA.32 = '009490098032'
DATA.33 = '009170094833'
DATA.34 = '008530091634'
DATA.35 = '008210085235'
DATA.36 = '007890082036'
DATA.37 = '007570078837'
DATA.38 = '007250075638'
DATA.39 = '006930072439'
DATA.40 = '006610069240'
DATA.41 = '006290066041'
DATA.42 = '005970062842'
DATA.43 = '005650059644'
DATA.44 = '005530056445'
DATA.45 = '005010053246'
DATA.46 = '004690050048'
DATA.47 = '004370046849'
DATA.48 = '004050043651'
DATA.49 = '003730040453'
DATA.50 = '003410037255'
DATA.51 = '003090034057'
DATA.52 = '002770030859'
DATA.53 = '002450027662'
DATA.54 = '002130024465'
DATA.55 = '001810021268'
DATA.56 = '001490018071'
DATA.57 = '001170014874'
DATA.58 = '000850011678'
DATA.59 = '000530008483'
DATA.60 = '000210005288'
DATA.61 = '000010002093'
RETURN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html