Contents

1 Introduction

1.1 Overview

1.2 Installation

1.3 Licensing

1.4 Configuration Files

1.5 Command line Arguments

1.6 Exit Codes

2 SPAG - Renovation & Analysis

2.1 Introduction

2.1.1 What does it do?

2.1.2 Code Restructuring

2.1.3 Code Replication

2.1.4 Translation to Fortran 95

2.1.5 Adding or Rewriting Declarations

2.1.6 Translation of VAX Structures

2.1.7 Clutter Removal

2.1.8 Renaming Variables

2.1.9 Define a Corporate Style

2.1.10 Dynamic Analysis

2.1.11 Dynamic Memory Monitoring

2.1.12 Coverage Analysis

2.1.13 Symbol Table Files

2.2 Source Language

2.3 Organizational Considerations

2.4 The SPAG Command Line

2.5 The SPAG Configuration File

2.6 SPAG Configuration Data

2.7 Using SPAG

2.7.1 Adding Declarations

2.7.2 Adding Declarations to INCLUDEd files

2.7.3 Rewriting Declarations

2.7.4 Interface Modules

2.7.5 Include File Modules

2.7.6 COMMON block Modules

2.7.7 Removing Clutter

2.7.8 Renaming Symbols

2.7.9 The 'ASIS' Directive

2.7.10 The ANCHOR Directive

2.7.11 Comments in Restructured Code

2.7.12 Using Case to make Programs more Readable

2.7.13 Symbol Table Output

2.7.14 VMS Text Libraries

2.7.15 Some Pitfalls

2.8 Dynamic Analysis

2.8.1 What is it?

2.8.2 Worked Example

2.8.3 Dynamic Analysis using SPAG

2.8.4 COMMON Variables

2.8.5 Initialized COMMON Variables

2.8.6 Summary

2.8.7 False Positives

2.8.8 Mixed Code

2.8.9 EQUIVALENCE & Dynamic Analysis

2.8.10 Static or Dynamic?

2.9 Coverage Analysis

2.10 Dynamic Memory Monitoring

2.11 Processing Fortran 95 Modules

3 GXCHK - Global Cross Checks

3.1 Introduction

3.2 The GXCHK Command Line

3.3 The GXCHK Configuration File

3.4 GXCHK Configuration Data

3.5 Using GXCHK

3.5.1 COMMON Variable Consistency

3.5.2 Symbol Table Size

3.5.3 Name Clashes

3.5.4 GXCHK Messages

3.5.5 Some Pitfalls

3.6 Interface Summaries

3.6.1 What Are They?

3.6.2 Dummy Arguments

3.6.3 External Subprograms

3.6.4 COMMON Variables

3.6.5 Local Variables and PARAMETERs

3.7 Year 2000 Date Variables

4 CVRANAL - Coverage Analysis

4.1 Introduction

4.2 The CVRANAL Command Line

4.3 The CVRANAL Configuration File

4.4 CVRANAL Configuration Data

4.5 Using CVRANAL

4.5.1 Source Code Changes

4.5.2 Execution Count Overflow

5 QMERGE - Version Selection

5.1 What Does it Do?

5.2 The QMERGE Command Line

5.3 Specifying Conditions

5.4 Source Code Directives

6 QSPLIT

6.1 Use of QSPLIT

6.2 Example of Merged File

7 AUTOMAKE - Automated Compile & Link for Fortran and C

7.1 Introduction

7.1.1 What does it do?

7.1.2 How does it do that?

7.1.3 How do I set it up?

7.1.4 What can go wrong?

7.2 Running AUTOMAKE

7.3 The AUTOMAKE Configuration File

7.4 Multi-Phase Compilation

7.5 Notes

Appendix A - Symbol Table Format

Appendix B - Probe Routines

Appendix C - The AUTOMAKE Configuration File Editor