last modified: 17-DEC-1993 | catalog | categories | new | search |


TOOLPACK1, Tools for Development and Maintenance of FORTRAN 77 Program

top ]
top ]
To submit a request, click below on the link of the version you wish to order. Only liaison officers are authorised to submit online requests. Rules for requesters are available here.
Program name Package id Status Status date
TOOLPACK1 NESC1056/02 Tested 17-DEC-1993

Machines used:

Package ID Orig. computer Test computer
NESC1056/02 DEC VAX series DEC VAX 6000
top ]

TOOLPACK1 consists of the following categories of software; (1) an integrated collection of tools intended to support the development and maintenance of FORTRAN 77 programs, in particular moderate-sized collections of mathematical software; (2) several user/Toolpack interfaces, one of  which is selected for use at any particular installation; (3) three  implementations of the tool/system interface, called TIE (Tool Interface to the Environment). The tools are written in FORTRAN 77 and are portable among TIE installations. The source contains symbolic constants as macro names and must be expanded with a suitable macro expander before being compiled and loaded. A portable macro expander is supplied in TOOLPACK1.

The tools may be divided into three functional areas: general, documentation, and FORTRAN processing. One tool, the macro processor, Can de used in any of these categories.

   General Tools

ISTDC This data comparison tool is designed mainly for  comparing files of numeric values, though it is also            capable of comparing files with embedded text.

ISTET Expands tabs. Processes a file to remove tab characters            and replace them with spaces.

   ISTFI   This tool finds all the include files that a file needs.
ISTGP Searches multiple files for occurences of a regular            expression.

ISTHP This tool will provide limited help information about  tools. The user enters regular expressions which are  matched against keyword lists to trigger text output.  The information in the help system is based on that            provided in the Tool Quick Reference Guide.

ISTMP The macro processor may be used to preprocess a file.  The processor provides macro replacement, inclusion,  conditional replacement, and processing capabilities for  complex file processing. (This tool also has uses in            FORTRAN processing and documentation preparation.)

ISTSP This is a TIE-conforming version of the SPLIT utility to            split up  the concatenated files used on the tape.

ISTSV This is a save/restore utility to save and restore sub-            trees of the Portable File Store (PFS).

   ISTTD   This is a text comparison tool.

ISTVC This is a simple text file version controller. Version  files may be set up and recalled either by version            number or data/time.

   Documentation Generation Tools.

ISTAL This documentation generation aids is a preprocessor that  can be used to generate FORTRAN specific information from  intermediate files created by other tools. The  information that can be generated includes callgraphs,  cross reference listings, segment execution frequencies,  and symbol information. ISTAL can also strip marked areas  of comments from source code for inclusion into  documentation. Commands to ISTAL are embedded in the  document intermixed with standard text. ISTAL will also  produce information formatted for direct display when            used interactively.

ISTCB This is a small tool that acts as a comparator; change  bar requests are inserted into a document wherever it is            found to differ from the original.

ISTDX This tool extracts previously marked documentation from a            FORTRAN program.

ISTRF This is a text formatter similar to the Unix roff  facility. The formatter takes in unformatted text and  embedded formatting commands and produces formatted            output text suitable for printing.

   FORTRAN 77 Oriented Tools

ISTAN This is an instrumentor for Fortran 77 that permits the  collection of run time execution frequency and tracing            information, and assertion violation counts.

ISTCN This tool changes names in a FORTRAN 77 program at the            token stream level.

ISTCR This tool changes names in a FORTRAN 77 program at the            symbol table level.

ISTDS This is a declaration standardizer that rebuilds the  declarative parts of a FORTRAN 77 program unit according            to a programmable template.

ISTED This is a line-based editor derived from the Software  Tools ED editor. ISTED has additional capabilities to  assist the FORTRAN 77 programmer, including a macro  facility with all keywords predefined. The editor  includes programming capabilities and some intrinsic            functions.

ISTFD This is a comparison tool for token streams rather than  source text. This allows the tool to ignore layout and            (optionally) comments.

ISTFR Converts the format of real, double precision, and            complex constants to a standard form.

ISTGI This tool will change all intrinsic function references  within FORTRAN 77 code to their generic forms (where            this is legal or possible).

ISTIN Inserts the contents of include files in to a file            marking the bounds with source embedded directives.

ISTJS Joins strings in FORMAT statements, optionally converts            Hollerith to string and can convert X descriptors.

ISTLS This tool changes long FORTRAN names to the ANSI standard  of six characters. When a name longer than six characters  is encountered, the tool prompts the user for a  replacement. This mapping is recorded in a file so that  any further occurences of that long name can be replaced            automatically.

ISTLX This is a low-level tool that scans FORTRAN 77 source  text and produces a token stream and separate comment  file. The token stream does not include information  about layout but provides identification of keywords and            string/numeric values within the original source.

ISTME Manipulates FORTRAN expressions to reduce the depth of            the intermediate value stack.

ISTMF This is a differencing program. It takes as input two  FORTRAN programs--one in source form, the other in token  stream form and produces a merged output source. The            differences are markedwith comments.

ISTMP The macro processor may be used to process Fortran  source text. The 'eval' expression evaluation facility  of ISTMP includes the FORTRAN intrinsic functions in  addition to arithmetic facilities. As ISTMP is loaded  with the host libraries the intrinsic functions will be  the same as those that the processed program will use;  this can be useful in the expansion of fixed constants  within portable tools. (This tool also has uses in            general macro expansion and documentation preparation).

ISTPF This is a portability verifier for FORTRAN 77 based on            the FORTRAN 66 tool PFORT.

ISTPL This is a FORTRAN 77 formatter or "pretty printer." The  options for this tool may be set or changed using the            separate menu-driven polish options editor ISTPO.

   ISTPO   This is the polish options editor (see ISTPL).

ISTPP Ensures the consistency of PARAMETER statements over            FORTRAN program units.

ISTPT This is an automatic precision converter for Fortran 77.  It can convert between REAL and DOUBLE PRECISION changing            intrinsics, constants, formats, and declarations.

ISTSA This is a semantic analyzer which checks conformance of            code to the FORTRAN 77 standard.

ISTST This tool takes as input a Fortran program, analyzes the  flow of control, and rebuilds the program in a structured            form.

ISTUN Reverses the effect of ISTIN. Removes included files  which are marked by source embedded directives with            include statements.

   ISTYP   This is a parse tree builder.

   ISTYF   This is a parse tree flattener.

   DO Loop Unrolling Tools

   ISTCD   This tool combines consecutive DO loops.

   ISTSB   Recombines and substitutes expressions.

   ISTUD   Unrolls DO loops.
top ]
top ]

In order to run the  TOOLPACK tools, an implementation of TIE must be running on the host computer system. The three implementations of TIE are FORTRAN 77, C, and a version for VAX/VMS in PASCAL. The FORTRAN 77 implementation contains macro constants that must be specified for each host machine. In addition, several host-dependent routines must be supplied by the installer and various host-sensitive routines must be checked. Installation guides for TIE and the tools are included with the documentation.
One of the user/Toolpack interfaces is a collection of Unix shell scripts. The other two are written in FORTRAN and conform to TIE.
top ]

Running time varies with problem size. NESC executed the supplied test command procedures in an interactive session using a small input FORTRAN program of about 50 lines in approximately 60 seconds on a DEC VAX6220 running under VMS 5.1. The three tutorial examples described in the Introductory Guide require  about 35 seconds.
top ]

User documentation and installation guides are in machine-readable form.
top ]

The tools source code needs to be split up using the SPLIT utility program and the results preprocessed using the TIEMAC macro expander utility. Both of these  programs are provided.
top ]
Package ID Status date Status
NESC1056/02 17-DEC-1993 Tested at NEADB
top ]

- R.W. Cowell, S.J. Hague and R.M. Iles:
  Toolpack/1 Release 2 Introductory Guide
  NAG NP1277 (ANL-86-83), second Edition (October 1986).
- Wayne R. Cowell:
  Users' Guide to Toolpack/1 Tools for Data Dependency Analysis and
  Program Transformation
  ANL-88-17 (September 1988).
- Wayne R. Cowell and Christopher P. Thompson:
  Tools to Aid in Discovering Parallelism and Localizing Arithmetic
  in Fortran Programs
  Draft ANL Report, received (August 1988).
- Wayne R. Cowell and Burton S. Garbow:
  Users' Guide to Toolpack/1 (Release 2) in a Unix Environment
  ANL-87-12 (March 1987).
- TOOLPACK1, NESC No. 1056.VX11B TOOLPACK1 Release 2.4 Tape
Description and Implementation Information for DEC VAX VMS Systems    NESC Note 91-41 (January 30, 1991).
NESC1056/02, included references:
- W.R. Cowell and B.S. Garbow:
  User's Guide to TOOLPACK/1 (Release 2) in a Unix Environment
  ANL-87-12 (March 1987).
- W.R. Cowell:
  User's Guide to TOOLPACK/1 Tools for Data Dependency Analysis and
  Program Transformation
  ANL-88-17 (september 1988).
- W.R. Cowell, S.J. Hague and R.M.J. Iles:
  TOOLPACK/1 Release 2 Introductory Guide
  NP1277 (October 1986).
- W.R. Cowell and C.P. Thompson:
  Tools to Aid in Discovering Parallelism and Localizing Arithmetic
  in Fortran Programs (Draft)
- L. Reed:
  TOOLPACK1 Release 2.4 Tape Description and Implementation
  Information for DEC VAX VMS Systems and
  NESC Note 91-41 (January 30, 1991).
top ]
The different tools were tested by NEA-DB on a DEC VAX-6000 computer.
top ]
Package ID Computer language
NESC1056/02 FORTRAN-77
top ]
top ]

Installation of TIE on the host computer is required prior to implementation of TOOLPACK1. Guides for TIECODE, machine-specific versions of TIE, and for installing the tools are provided on the transmittal tape in a form formatted for line printer. Unformatted copies are also provided for formatting using the TOOLPACK1 tools ISTRF and the Toolpack Documentation Macros, TDM.DAT. NESC implemented TOOLPACK1 in the DEC VAX virtual memory environment using the Pascal-based TIEVMS system interface.
top ]

       Wayne R. Cowell
       Mathematics and Computer Sciences Division
       Argonne National Laboratory
       9700 South Cass Avenue
       Argonne, Illinois 60439
top ]
File name File description Records
NESC1056_02.001 Toolpack information file 1144
NESC1056_02.002 The split tool 102
NESC1056_02.003 The Toolpack/1 simple pre-processor 808
NESC1056_02.004 TIEC User and Installation documentation 652
NESC1056_02.005 The TIE Installers' Guide 1822
NESC1056_02.006 The Tool Installers' Guide 3447
NESC1056_02.007 TIEVMS User and Installation documentation 587
NESC1056_02.008 What is TIE? 652
NESC1056_02.009 The files for the TIE directory 314
NESC1056_02.010 The files for the COMMON directory 4478
NESC1056_02.011 The files for the PFS directory 2961
NESC1056_02.012 The files for the HOST directory 267
NESC1056_02.013 The files for the DIRECT directory 42
NESC1056_02.014 The files for the EMBEDDED directory 165
NESC1056_02.015 The files for the SUPPORT directory 608
NESC1056_02.016 The Pascal source files for TIEVMS 1501
NESC1056_02.017 The macro def. and TIEMAC compatible files 838
NESC1056_02.018 The example script files for tool operations 212
NESC1056_02.019 The routines from the TIECODE COMMON file 1305
NESC1056_02.020 Documentation of a C version of WINDOW lib 633
NESC1056_02.021 A C version of the WINDOW Supplementary lib 2243
NESC1056_02.022 The C code and include files for TIEC 4272
NESC1056_02.023 Script file documentation and utilities 1189
NESC1056_02.024 Ross 3.2 script files 1325
NESC1056_02.025 Berkley 4.1 script files 1258
NESC1056_02.026 The access functions supplementary library 10396
NESC1056_02.027 The string manipulation supplementary lib 1865
NESC1056_02.028 The table handling supplementary library 2002
NESC1056_02.029 The screen and window handling suppl. lib. 5291
NESC1056_02.030 Miscellaneous smaller tools 4163
NESC1056_02.031 The DO loop unrolling tools 7499
NESC1056_02.032 The documentation generation aid 3317
NESC1056_02.033 The Fortran 77 instrumentor 5021
NESC1056_02.034 The command executor 1792
NESC1056_02.035 The name changer ISTCN and ISTCR 912
NESC1056_02.036 The data file comparison tool 1581
NESC1056_02.037 The declaration standardiser 2106
NESC1056_02.038 The editor 9569
NESC1056_02.039 The Fortran differencer 1146
NESC1056_02.040 The tool to turn intrinsics 157
NESC1056_02.041 The long name changer 527
NESC1056_02.042 The Fortran 77 scanner 4432
NESC1056_02.043 The merge Fortran differencer 1046
NESC1056_02.044 The macro processor 3947
NESC1056_02.045 The PFORT 77 tool 3318
NESC1056_02.046 The polish tool 4488
NESC1056_02.047 The polish option generator 1173
NESC1056_02.048 The precision transformer 1612
NESC1056_02.049 The text formatter file 2580
NESC1056_02.050 The semantic analyser 3980
NESC1056_02.051 The save/restore tool 597
NESC1056_02.052 The Fortran structurer 1558
NESC1056_02.053 The text differencer 403
NESC1056_02.054 The attribute viewing utility 1139
NESC1056_02.055 The version controller 1204
NESC1056_02.056 The ISTVS and ISTVW viewing tools 847
NESC1056_02.057 The parse tree viewing utility 577
NESC1056_02.058 The parse tree flattener 155
NESC1056_02.059 The parse tree builder 5748
NESC1056_02.060 The monolithic tools 1262
NESC1056_02.061 The experimental command interpreter 14552
NESC1056_02.062 The symbolic differentiator tool 6321
NESC1056_02.063 The experimental simple expert systems 1790
NESC1056_02.064 A pre-release version of the NEWTON system 7207
NESC1056_02.065 Toolpack/1 Target Fortran 77 Definition 378
NESC1056_02.066 Flow of control documentation 359
NESC1056_02.067 Tool Writers guide 921
NESC1056_02.068 What is TIE? 490
NESC1056_02.069 Experimental expert system guide 266
NESC1056_02.070 Miscellaneous smaller tools documentation 542
NESC1056_02.071 Monolithic Tool Guide 360
NESC1056_02.072 ISTAL documentation 983
NESC1056_02.073 ISTAN documentation 885
NESC1056_02.074 ISTCE documentation 653
NESC1056_02.075 ISTCI documentation 1094
NESC1056_02.076 ISTCN/CR documentation 508
NESC1056_02.077 ISTDC documentation 216
NESC1056_02.078 DO Loop Unrolling tools documentation 682
NESC1056_02.079 ISTDS documentation 512
NESC1056_02.080 ISTED documentation 1850
NESC1056_02.081 ISTFD documentation 110
NESC1056_02.082 ISTGI documentation 81
NESC1056_02.083 ISTJF documentation 112
NESC1056_02.084 ISTLS documentation 322
NESC1056_02.085 ISTLX documentation 627
NESC1056_02.086 ISTMF documentation 67
NESC1056_02.087 ISTMP documentation 306
NESC1056_02.088 ISTPF documentation 263
NESC1056_02.089 ISTPL/ISTPO documentation 990
NESC1056_02.090 ISTPT documentation 258
NESC1056_02.091 ISTRF documentation 533
NESC1056_02.092 ISTSA documentation 477
NESC1056_02.093 ISTST documentation 249
NESC1056_02.094 ISTSV documentation 112
NESC1056_02.095 ISTTD documentation 57
NESC1056_02.096 ISTVA documentation 223
NESC1056_02.097 ISTVC documentation 106
NESC1056_02.098 ISTVS documentation 168
NESC1056_02.099 ISTVT documentation 132
NESC1056_02.100 ISTYF documentation 82
NESC1056_02.101 ISTYP documentation 737
NESC1056_02.102 ACCESS supplementary library guide 2195
NESC1056_02.103 Quick reference guide 1820
NESC1056_02.104 STRING supplementary library guide 689
NESC1056_02.105 TIE Routine Definitions 2276
NESC1056_02.106 TABLES supplementary library guide 832
NESC1056_02.107 WINDOW supplementary library guide 1082
NESC1056_02.108 TIEC User and Installation documentation 410
NESC1056_02.109 TIECODE installers guide 1532
NESC1056_02.110 Tool Installers' Guide 2095
NESC1056_02.111 TIEVMS User and Installation documentation 364
NESC1056_02.112 Notes on the incomplete Newton Dynamic Debug 62
NESC1056_02.113 Routines that map a subtree of the parsetree 1070
NESC1056_02.114 Routines that fill the dependency sets 2572
NESC1056_02.115 Include files for tools 107
NESC1056_02.116 Dependency analysis and prog. transformation 675
NESC1056_02.117 Dependency analysis and prog. transformation 1715
NESC1056_02.118 Dependency analysis and prog. transformation 1718
NESC1056_02.119 Dependency analysis and prog. transformation 1465
NESC1056_02.120 Dependency analysis and prog. transformation 1114
NESC1056_02.121 Dependency analysis and prog. transformation 2160
NESC1056_02.122 Dependency analysis and prog. transformation 1336
NESC1056_02.123 Polish option files 948
NESC1056_02.124 Documentation and scripts 3228
NESC1056_02.125 Utility programs used by the scripts 107
NESC1056_02.126 Miscellaneous utility routines 3822
top ]
  • P. General Mathematical and Computing System Routines

Keywords: FORTRAN, dec computers, interactive computing, programming, utility routines.