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

Reply via email to