***********************************************************************

               16 BIT USERS' TECHNICAL TIPS LIBRARY (TTL)
               ------------------------------------------
JUNE 1977.

     SOURCE OF TTL ROUTINES MAY BE RECEIVED FROM, OR SUBMITTED TO THE
     DISTRIBUTING AGENCY:

               J. ARTHUR THOMSON
               FISHERIES AND OCEANS, CANADA
               FISHERIES AND MARINE SERVICE,
               PACIFIC BIOLOGICAL STATION,
               P.O. BOX 100,
               NANAIMO, B.C.,
               CANADA  V9R 5K6
               TELEPHONE (604) 758-5202

     SOURCE IS DISTRIBUTED VIA LISTINGS, OR YOUR MAGNETIC TAPE (9 TRACK
     800 BPI) - NOTE THAT THE INFORMATION NOW EXCEEDS 600 FEET.

     PLEASE DIRECT IMPROVEMENTS TO, OR PROBLEMS WITH, TTL ROUTINES TO
     BOTH THE AUTHOR AND THE DISTRIBUTING AGENCY.

DISCLAIMER:
     NEITHER THE AUTHOR(S), HIS/HER AGENCY, NOR THE DISTRIBUTING AGENCY
     OR PERSONNEL CAN BE LIABLE FOR DAMAGES RESULTING FROM
     IMPLEMENTATION OF ROUTINES OR TECHNIQUES RECEIVED FROM THIS LIBRARY
     (IT'S TOGETHERNESS, BABY).

************************************************************************

   - FILE 1 = INDEX FILE
          2 = AUTHOR/AGENCY FILE
   - AN ASTERISK (*) IN THE 'F' COLUMN INDICATES THAT THE ROUTINE OR
     TECHNIQUE IS AN ADDITION OR REVISION FROM THE PREVIOUS INDEX RELEASE.
   - SOURCE CODE LANGUAGE AND AUTHOR ARE GIVEN WITHIN THE 'DESCRIPTION'.
   - 'R=' INDICATES THE NUMBER OF RECORDS CONTAINED IN THE FILE.

************************************************************************

FILE F -DATE-  NAME   DESCRIPTION
---- - ------  ----   -----------

   3   MY0176  GREEK  SUBROUTINE TO DRAW LOWER CASE GREEK LETTERS ON THE
                      PLOTTER.  NEEDS TRANE 1130 TYPE PLOT PACKAGE. FORTRAN
                      B. KATOR.  R=86.
   4   MY0176  IGRAF  SUBROUTINES TO PLOT ISOMETRIC PROJECTION OF SURFACE
                      CONTOURS ON A PLANE.  NEEDS TRANE 1130 TYPE PLOT
                      PACKAGE.  FORTRAN.  B.KATOR.  R=645.
   5   MY0176  DVPSN  FUNCTION PACKAGE TO PERFORM FORTRAN-CALLABLE FSKIP,
                      RSKIP,FBACK, AND UNLOAD.  FORTRAN.  B.KATOR.  R=45.
   6   MY0176  SIND   FUNCTION PACKAGE TO CALCULATE SIN,COS,AND TAN GIVEN
                      THE ANGLE IN DEGREES . FORTRAN.  B.KATOR.  R=73.
   7   MY0176  SWITCH FUNCTION TO RETURN THE LOGICAL SETTING OF A DATA
                      SWITCH (TRUE=ON  FALSE=OFF).  FORTRAN.  B.KATOR.
                      R=19.
   8   MY0176  :KEYIN ROUTINES TO PERFORM FG,S OR SY,S KEYIN.  XSYMBOL.
                      B.KATOR.  R=89.
   9   MY0176  OPLBLO PUBLIB ROUTINE TO SET OPLBL TO ZERO. XSYMBOL. B.KATOR
                      R=78.
  10   MY0176  CLOCK  SUBROUTINE TO GET DATE AND TIME IN 7A2.  FORTRAN/
                      XSYMBOL.  C.LEE.  R=25.
  11   MY0176  IDEAL  PACKAGE OF IDEAL ROUTINES FOR THE 530,  A3/A1,A/I,
                      I/A,I/D1,D1/I,DFIX,DFLT,IAZ,DD,DDR,AD,SD,MD,DDD,DSIGN
                      PUNCH,TYPEIN,TYPOUT,CEDA,CKIO,DINT,WRTS,SKSP,READ,
                      STACK,IDREAD.  XSYMBOL.  C.LEE.  R=1782.
  12   MY0176  IBSRCH SUBROUTINE TO PERFORM A BINARY SEARCH FOR A VALUE
                      WITHIN AN ARRAY.  FORTRAN.  F.NASH.  R=66.
  13   MY0176  PAPTZ  SUBROUTINE TO READ, DECODE AND RETURN IN A1 FORMAT,
                      ONE LINE OF PAPER TAPE CHARACTERS.  CODE INDEPENDENT.
  14   MY0176  RDPTP  SUBROUTINE TO PROVIDE CODE INDEPENDENT PAPER TAPE
                      READING.  READS AND RETURNS BINARY VALUE OF ONE
                      CHARACTER PER CALL.  FORTRAN CALLABLE.  XSYMBOL. NASH
                      R=60.
  15   MY0176  ABORT  SUBROUTINE (FORTRAN CALLABLE) TO CALL M:ABORT.
                      XSYMBOL.  F.NASH.  R=33.
  16   MY0176  TIME   FORTRAN CALLABLE SUBROUTINE TO RETURN DAY,MONTH,YEAR,
                      HR,MIN, IN A2 FORMAT, NO SLASHES.  XSYMBOL.  F.NASH.
                      R=145.
  17   MY0176  MTSUBS FORTRAN CALLABLE ROUTINES TO DO FSKIP,FBACK,RSKIP,
                      RBACK,UNLOAD.  NEEDS 'ABORT'.  FORTRAN.  F.NASH.
                      R=183.
  18   MY0176  JULAN  SUBROUTINE TO RETURN JULIAN DAY GIVEN YR,MN,DY; OR
                      TO RETURN YR,MN,DY GIVEN JULIAN DAY. FOR. M.MARSHALL.
                      R=61.
  19   MY0176  IWKDAY FUNCTION VERSION OF 'JULAN', WITH THE ADDED PLUS OF
                      RETURNING A TWO CHARACTER CODE FOR THE DAY OF THE WK.
                      R=61.
  20   MY0176  COMMER SUBROUTINE PACKAGE EXTENDING COMMERCIAL SUBSET AS
                      FOLLOWS:INTA1-INTEGER TO A1,A1INT-A1 TO INTEGER,
                      A1REAL-A1 TO REAL,REALA1-REAL TO A1.  FORTRAN. F.NASH
                      R=275.
  21   MY0176  ISHELL SUBROUTINE TO SORT THE ELEMENTS OF AN INTEGER VECTOR
                      INTO ASCENDING ORDER.  FORTRAN.  F.NASH.  R=47.
  22   MY0176  IRANK  SAME AS 'ISHELL', PLUS IT RETURNS THE ORIGINAL
                      POSITION NUMBER OF EACH ELEMENT.  FORTRAN.  F.NASH.
                      R=59.
  23   MY0176  DING   SUBROUTINE TO RING TELETYPE(OC) BELL. FORTRAN. F.NASH
                      R=30.
                      N USING CONSTANT FITTING METHOD. NEEDS TRANG, TIME,
                      AND SIMQ (ROUTINE FROM SDS NUMERICAL SUB. PACKAGE)
                      FORTRAN.  M. MARSHALL.  R=344.
  25   MY0176  ALOMA  PROGRAM TO PERFORM LEAST-SQUARES ITERATIVE FIT OF THE
                      FUNCTION Y=A*X**B.  NEEDS TIME.  FORTRAN. M.MARSHALL.
                      R=201.
  26   MY0176  TRANG  FUNCTION TO TRANSFORM DATA ACCORDING TO CODE.
                      TRANSFORMS AVAILABLE ARE NONE,ABS Y,SQUARE ROOT,
                      SQUARE ROOT OF(Y+0.5),Y SQUARED,LOG BASE10 Y,LOG
                      BASE10(Y+1.0),ARCSIN OF SQUARE ROOT Y,ARCSIN OF
                      SQUARE ROOT(Y/100.),1.0/Y,LOG BASE E OF Y.  FORTRAN.
                      M.MARSHALL.  R=48.
  27   MY0176  LPCOPY PROGRAM TO PRODUCE MULTIPLE COPIES OF PRINTER OUTPUT
                      FROM SEQUENTIAL FILE(S). NEEDS MTSUBS.  FORTRAN.
                      F.NASH.  R=219.
  28   MY0176  COVJKL PROGRAM TO TEST DIFFERENCES OF SLOPE AND INTERCEPT OF
                      REGRESSION LINES.  20 LINES, 12 VARIABLES.  NEEDS
                      TRANG AND TIME.  FORTRAN.  M.MARSHALL.  R=526.
  29   MY0176  CRDOU  PROGRAM TO PERFORM ONE WAY ANALYSIS OF VARIANCE OF A
                      COMPLETELY RANDOMIZED DESIGN.  NEEDS TRANG,BHV,&TIME.
                      FORTRAN.  M.MARSHALL.  R=202.
  30   MY0176  BHV    SUBROUTINE TO CHECK FOR HOMOGENEITY OF VARIANCE,
                      USING BARTLETT'S TEST AND THE FMAX TEST.  FORTRAN
                      F.NASH.  R=91.
  31   MY0176  FAP    FUNCTION TO CALCULATE THE F STATISTIC AT P=0.05,0.01.
                      FORTRAN.  F.NASH.  R=97.
                      P=0.05,0.01,0.02,0.1.  FORTRAN.  F.NASH.  R=52.
  33   MY0176  MAGBUF FORTRAN CALLABLE ROUTINES (4) TO READ AND WRITE
                      BLOCKED DATA FILES TO SEQUENTIAL DEVICES (THEY
                      WERE WRITTEN TO GET BLOCKING FOR OUR MAG TAPES BUT
                      SHOULD WORK EQUALLY WELL TO UNBLOCKED SEQUENTIAL
                      RAD FILES).  THE ROUTINES WILL DE-BLOCK (ON READS)
                      OR BLOCK (ON WRITES) LOGICAL RECORDS TO / FROM
                      LARGER PHYSICAL RECORDS.
                      BUFFERING IS FROM A USER DEFINED CORE VECTOR,
                      I/O IS DONE VIA FORTRAN'S BUFFIO AND CHEKIO.
                      NEEDS IOEROR.  FORTRAN.  F.NASH.  R=234.
  34   MY0176  IOEROR SUBROUTINE TO PROVIDE ERROR DIAGNOSTICS UPON RETURN
                      FROM FORTRAN'S BUFFIO OR CHEKIO.  FORTRAN.  F.NASH.
                      R=106.
  35   MY0176  AV17   PROGRAM TO PERFORM A COMPLETE FACTORIAL (EQUAL CELLS)
                      ANALYSIS OF VARIANCE (WITHIN SUBJECT FACTORS ARE
                      ACCEPTED).  CURRENT VERSION WILL HANDLE 8 FACTORS,
                      AND 2050 OBSERVATIONS.  NEEDS TRANG.  FORTRAN.
                      F.NASH.  R=693.
  36   MY0176  BLOCK  SUBROUTINE TO OUTPUT BLOCK CHARACTERS ON LINE PRINTER
                      SUPPLIED WITH DECK OF BLOCK CHARACTERS NINE WIDE,
                      EIGHT HIGH. NEEDS IBSRCH.  FORTRAN.  F.NASH.  R=198.
  37   MY0176  QKCOPY SUBROUTINE TO DO DOUBLE BUFFERED COPYING. COPIES ANY
                      RECORD SIZE FROM ONE SEQUENTIAL FILE TO ANOTHER.
                      NEEDS IOEROR.  FORTRAN.  F.NASH.  R=112.
  38   MY0176  CLOSE  SUBROUTINE TO REPLACE ANSII FORTRAN CLOSE.  WILL NOT
                      BUT BECOMES A NO-OP.  NEEDS ABORT.  FORTRAN.  F.NASH.
                      R=38.
  39   MY0176  QKPLOT SUBROUTINE TO DRAW GRAPH OF X,Y DATA PAIRS ON CALCOMP
                      PLOTTER.  NEEDS XEROX PLOT SYMBIONT AND QKSCAN.
                      MULTIPLE OPTIONS TO SPECIFY ANNOTATION, LABELLING,
                      SCALING AND GRAPH TYPE (ALL OF WHICH CAN BE DEFAULTED
                      ).  FORTRAN.  F.NASH.  R=460.
  40   MY0176  PLNAME SUBROUTINE TO INITIALIZE CALCOMP PLOTTER PEN POSITION
                      AND IDENTIFY PLOT.  NEEDS XEROX PLOT SYMBIONT.
                      FORTRAN.  F.NASH.  R=57.
  41   MY0176  BSUD   SUBROUTINE TO YIELD MEAN,MEDIAN,VARIANCE,STANDARD
                      DEVIATION,COEFFICIENT OF VARIATION,KURTOSIS,AND
                      NORMALITY STATISTICS FOR UNGROUPED DATA.  NEEDS TRANG
                      AND TAP.  FORTRAN.  M.MARSHALL.  R=235.
  42   MY0176  MREGP  PROGRAM TO PERFORM MULTIPLE REGRESSION WITH
                      OPTIONS FOR ELIMINATION OF NON-SIGNIFICANT VARIABLES,
                      AND CALCOMP PLOTS. MAX OF 12 INDEPENDENT VARIABLES,
                      AND 150 DEPENDENT OBSERVATIONS.  REQUIRES TRANG,TIME,
                      FAP.  FORTRAN.  M.MARSHALL.  R=664.
  43   MY0176  L:88X0 REPLACEMENT FOR ANSI FORTRAN PAUSE/STOP ROUTINE. THIS
                      ROUTINE WRITES THE PAUSE (AND ANY MESSAGE OR NUMBER)
                      BUT DOES NOT GO INTO A WAIT STATE.  IT WAS WRITTEN
                      TO ELIMINATE THE HALTS INCORPORATED INTO CONPLT AND
                      MAPAT OF THE CONTOUR MAP PLOTTING SYSTEM (USERS GRP.
                      NO. 890827) WHICH IS SUPPLIED ONLY IN ROM FORM.
                      XSYMBOL.  J.THOMSON.   R=47.
                      A CALCOMP PLOTTER.  USEFUL IN DOING MULTIPLE RUNS OF
                      CONPLT AND MAPAT.  REQUIRES XEROX SYMBIONT PLOT SUBS,
                      AND PLNAME.  FORTRAN.  J.THOMSON.  R=66.
  45   MY0176  QK3D   SUBROUTINE TO PLOT 3 DIMENSIONAL CALCOMP PLOTS.
                      MULTIPLE OPTIONS (ALL OF WHICH CAN BE DEFAULTED) TO
                      PROVIDE ANNOTATION, SCALING AND LABELLING.  NEEDS XDS
                      SYMBIONT PLOT ROUTINES, NUMBER (FROM SIGMA PLOT
                      LIBRARY - 890723), AND QKSCAN.  FORTRAN.  F.NASH.
                      R=688.
  46   MY0176  QKSCAN SUBROUTINE TO CHECK IF A GIVEN VALUE IS CONTAINED IN
                      ALL ELEMENTS OF A VECTOR.  FORTRAN.  F.NASH.  R=35.
  47   JY1676  ARANK  SUBROUTINE TO SORT A REAL PRECISION VECTOR INTO
                      ASCENDING ORDER, AS WELL AS, KEEPING TRACK OF THE
                      ORIGINAL ORDER OF EACH ELEMENT.  FORTRAN.  F.NASH.
                      R=58.
  48   JY1676  RSHELL SUBROUTINE TO SORT A REAL PRECISION VECTOR INTO
                      ASCENDING ORDER.  FORTRAN.  F.NASH.  R=49.
  49   JY1676  RBSRCH SUBROUTINE TO DO A BINARY SEARCH ON A REAL PRECISION
                      VECTOR.  FORTRAN.  F.NASH.  R=72.
  50   JY1676  TWAWR  PROGRAM TO PERFORM A TWO WAY ANALYSIS OF VARIANCE
                      WITHOUT REPLICATION.  NEEDS TIME AND TRANG.  FORTRAN.
                      M.MARSHALL.  R=211.
  51   JY1676  KRANK  THIS IS A VERSION OF KRANK FROM THE SDS NUMERICAL
                      SUBROUTINE PACKAGE ... IT CONTAINS THE FIX FOR CALLS
                      TO VRANKS AND TIECORE,  AND THE FIX FOR A COMPUTATION
                      ERROR AS NOTED IN APPLIED STATISTICS (1974), 23,
                      NO. 2, P.226.  FORTRAN.  F.NASH.  R=72.
  52   JY1676  L-R    PROGRAM TO PERFORM A LINEAR REGRESSION ON X,Y DATA
                      PAIRS.  WILL HANDLE REPLICATED X VALUES AND ANY
                      NUMBER OF OBSERVATIONS (MAX=32767).  REQUIRES TAP,
                      FAP, TRANG, AND TIME.  FORTRAN.  M.MARSHALL.  R=464.
  53   JY1676  DUNCAN PROGRAM TO PERFORM DUNCAN'S MULTIPLE RANGE TEST..
                      UNEQUAL N PER TREATMENT IS ACCEPTED.  MAX. OF 100
                      TREATMENTS,  MAX. OF 32767 OBSERVATIONS.  NEEDS
                      TRANG AND TIME.  FORTRAN.  F.NASH.  R=499.
  54 * JU0777  COPYCC PROGRAM TO LIST CONTROL COMMAND RECORDS WHICH OCCUR
                      IN A FILE.  THE NUMBER OF NON-CONTROL RECORDS TO BE
                      LISTED MAY BE SPECIFIED.  XSYMBOL (S24RBM REQUIRED)
                      S.LAMOREE.  R=347
  55 * JU0777  LOAD   PROGRAM TO COPY EBCDIC OR BINARY RECORDS TO A
                      SPECIFIED FILE, AS WELL AS PROVIDING A LISTING.
                      XSYMBOL (S24RBM REQUIRED).  S.LAMOREE.  R=261
  56 * JU0777  MOUNT  PROGRAM TO CHECK IF A RAD OR DISK AREA IS CURRENTLY
                      MOUNTED.  IF SO, THE PROGRAM SIMPLY EXITS, OTHERWISE
                      THE OPERATOR IS REQUESTED TO MOUNT THE DEVICE AND
                      AREA.  XSYMBOL (S24RBM REQUIRED).  S.LAMOREE. R=1095
  57 * JU0777  REMOVE PROGRAM TO REQUEST THE OPERATOR TO DISMOUNT A
                      SPECIFIED RAD OR DISK AREA AND DEVICE.  IF THE AREA
                      IS CURRENTLY DISMOUNTED, THE PROGRAM SIMPLY EXITS.
                      XSYMBOL (S24RBM REQUIRED).  S.LAMOREE.  R=177.
  58 * JU0777  SJOB   PROGRAM TO ASSIGN 'CC' TO A SPECIFIED COMMAND FILE
                      CARDS.  XSYMBOL (S24RBM REQUIRED).  S.LAMOREE. R=177
  59 * JU0777  RSPON  SUBROUTINE TO SOLICIT A YES/NO RESPONSE FROM
                      OPERATORS CONSOL. FORTRAN. F.NASH. R=47.
  60 * JU0777  TICKMK SUBROUTINE TO DRAW CALCOMP PLOTTER TICKMARKS. MARKS
                      CAN BE ON EITHER SIDE OR CENTRED ABOUT EITHER X OR Y
                      AXIS AND ANY LENGTH. NEEDS WHERE AND PLOT. FORTRAN
                      M. MARSHALL. R=63
  61 * JU0777  ANOT   SUBROUTINE TO ANNOTATE TICKMARKS ON CALCOMP PLOTTER.
                      ANNOTATION CAN BE ABOVE/BELOW X AXIS: LEFT/RIGHT OF
                      Y AXIS WITH DECIMALS. NEEDS NUMBER,PLOT,AND WHERE.
                      FORTRAN. M. MARSHALL. R=68.
  62 * JU0777  TGRID  SUBROUTINE TO DRAW GRID LINE WITH TICKMARKS IN X / Y
                      + / - DIRECTIONS ON CALCOMP PLOTTER. NEEDS TICKMK,
                      ANOT,PLOT,NUMBER. FORTRAN. M. MARSHALL. R=154
  63 * JU0777  ANNAXI SUBROUTINE TO DRAW AND ANNOTATE A MONTHLY AXIS ON
                      CALCOMP PLOTTER. AXIS IN POSITIVE X DIRECTION, TICKS
                      AT DAY ONE OF EACH MONTH, 3 LETTER MONTH MNEMONIC
                      CENTRED BETWEEN TICKMARKS. NEEDS PLOT,SYMBOL,TICKMK.
                      FORTRAN. J. SIBERT. R=105
  64 * JU0777  WINDOW SYSTEM OF SUBROUTINES TO SELECT EBCDIC RECORDS VIA
                      USER DEFINED CRITERIA USING BOOLEAN LOGIC
                      EXPRESSIONS. NEEDS NCOMP,MOVE,A1INT. FORTRAN. F.NASH
                      R=452.
  65 * JU0777  BLOCKIT PROGRAM TO CREATE,COPY,LIST,EDIT,WINDOW BLOCKED OR
                      UNBLOCKED EBCDIC SEQUENTIAL FILES. NEEDS SUBROUTINES
                      USED BY WINDOW,ALSO NEEDS COMMER (FILE 20),MAGBUF
                      (FILE 34),ABORT(FILE 15),TIME(FILE16) AND COMMERC-
                      IAL SUBROUTINE PACKAGE. FORTRAN. F.NASH. R=1872.
  66 * JU0777  IHAFIL FUNCTION,FORTRAN CALLABLE TO FILL LEFT OR RIGHT HALF
                      OF A WORD WITH A GIVEN VALUE. XSYMBOL. F.NASH. R=62
  67 * JU0777  QKSORT SUBROUTINE ,FORTRAN CALLABLE INTERFACE TO SORT 530.
                      300 WORD BACKGROUND PROGRAM THAT SETS UP REQUIRED
                      FILES, TRIGGERS A RESIDENT FOREGROUND PROGRAM WHICH
                      LOADS XEROX SORT INTO NON-RESIDENT FOREGROUND.
                      MODIFICATIONS INVOLVE NEED FOR C00 VERSION OF SORT,
                      MAILBOX LOCATION,ANS FORTRAN IV,A UP AREA AND ENOUGH
                      BP AREA TO HOLD 2.5 TIMES INPUT FILE SIZE. XSYMBOL.
                      F. NASH. R=533.
  68 * JU0777  SETEQ  SUBROUTINE TO MOVE 'N' CONSECUTIVE WORDS FROM ONE
                      ARRAY TO ANOTHER.  FORTRAN.  J.BEUKEMA.  R=17.
  69 * JU0777  INITLZ SUBROUTINE TO INITIALIZE CONSECUTIVE WORDS OF AN
                      ARRAY WITH A GIVEN VALUE.  FORTRAN.  J.BEUKEMA. R=17
  70 * JU0777  IBSRAR SUBROUTINE TO PERFORM AN INTEGER BINARY SEARCH FOR
                      AN ARRAY IN A TABLE OF ARRAYS.  NEEDS ICMPAR.
                      FORTRAN.  J.BEUKEMA.  R=55.
  71 * JU0777  ICMPAR SUBROUTINE TO LEXICOGRAPHICALLY COMPARE TWO INTEGER
                      ARRAYS.  FORTRAN.  J.BEUKEMA.  R=22.
  72 * JU0777  CMPARE SUBROUTINE TO LEXICOGRAPHICALLY COMPARE TWO REAL
                      ARRAYS.  FORTRAN.  J.BEUKEMA.  R=16.
  73 * JU0777  INDEX  SUBROUTINE TO SEQUENTIALLY SEARCH AN INTEGER ARRAY
                      FOR A GIVEN VALUE.  FORTRAN.  J.BEUKEMA.  R=37.

                      DISK FILES THAT REQUIRE BLOCKING BUFFERS.  USEFUL
                      IN MANAGING SAY 'N' FILES WHEN LESS THAN 'N'
                      BLOCKING BUFFERS ARE AVAILABLE.  FORTRAN.
                      J.BEUKEMA.  R=258.

