VX/FPT - Reports

FPT generates reports for program documentation.

They include:

Diagnostic reports are also generated by the quality assurance checks, which show inconsistencies in sub-program arguments, COMMON block organisation, memory alignment, data initialisation and related issues. Please see Quality Assurance for descriptions of the checks carried out.

 

File List

FPT lists the files which make up the program. The complete file specification is shown, and FPT indicates whether the file is a primary file, and INCLUDE file, a library file (and whether the file is used) or a template file, used only by FPT and not required when the program is built. For example:

Input Files
===========

F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DLX.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\CALCTIME.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\CHAR4.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\COMT.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DL_WDATS.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DL_WSEP.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\RDCODE.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\YES_ANS.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\NEXTPACK.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\READFILE.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DL_WASCI.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DL_WMATL.FOR
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\FPT\INTERACT.FTM      Template
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\DATASTOR.CMN          Include file
F:\BASELINE\PRODUCTS\DLX\VNEW_VER\VFORTRAN\XDATS.CMN             Include file
D:\ACL\ACL\ALC_LIB\WWRITE.FOR                                    Library
D:\ACL\ACL\ALC_LIB\WREAD.FOR                                     Library
D:\LIBS\CONCEPT.FOR                                              Unused library

 

Sub-program List

The sub-programs are listed in alphabetical order, showing the sub-program declaration statement and arguments. For example:

Sub-program Listing
===================

	SUBROUTINE CALCTIME(RUNNO,STREAMNO,LOGINT,
	1 KTIME,RTIME,N_VAR)

Arguments
RUNNO      CALCTIME        Formal Input Argument
                                               INTEGER   *4
STREAMNO   CALCTIME        Formal Input Argument
                                               INTEGER   *4
LOGINT     CALCTIME        Formal Input Argument
                                               INTEGER   *4
KTIME      CALCTIME        Formal Input Argument
                                               INTEGER   *2      (*)
RTIME      CALCTIME        Formal Input-Output Argument
                                               REAL      *4      (1:50000)
N_VAR      CALCTIME        Formal Input Argument
                                               INTEGER   *4

-------------------------------------------------------------------------------

	CHARACTER*4 FUNCTION CHAR4(KCONCEPT)
        CHARACTER*4 CHAR4

Arguments
KCONCEPT   CHAR4           Formal Input Argument
                                               INTEGER   *4
        :
        :

 

Call Structure

FPT lists the sub-programs alphabetically, showing the call relationships between them. For example:

Call Relationships
==================


SUBROUTINE CALCTIME
-------------------

Called by:
   DL_WMATL       DL_WASCI       DL_WSEP        DL_WDATS

Sub-programs Called:
   YES_ANS


FUNCTION CHAR4
--------------

Called by:
   NEXTPACK

Sub-programs Called:
   None


SUBROUTINE COMT
---------------

Called by:
   NEXTPACK

Sub-programs Called:
   None


PROGRAM DLX
-----------

Sub-programs Called:
   IOSARGUMENT    IUPPERCASE     IACTUALLENGTH  IOSDIRCHANGE   IOSDATE
   IOSTIME        ISTRINGTOINTEGER              YES_ANS        NEXTPACK
   DL_WASCI       DL_WMATL       DL_WSEP        DL_WDATS

        :
        :

The call tree is shown for each program and for each sub-program which is not called. The depth of the tree displayed is controlled by the user. For example:

Call Tree: DLX
==============
    0   DLX
    1   !  IOSARGUMENT
    1   !  IUPPERCASE
    1   !  IACTUALLENGTH
    1   !  IOSDIRCHANGE
    1   !  IOSDATE
    1   !  IOSTIME
    1   !  ISTRINGTOINTEGER
    1   !  YES_ANS
    1   !  NEXTPACK
    2   !  !  READFILE
    2   !  !  CHAR4
    2   !  !  COMT
    2   !  !  YES_ANS
    2   !  !  RDCODE
    1   !  DL_WASCI
    2   !  !  IOSDIRMAKE
    2   !  !  INFOERROR
    2   !  !  CALCTIME
    3   !  !  !  YES_ANS
    1   !  DL_WMATL
    2   !  !  IOSDIRMAKE
    2   !  !  INFOERROR
    2   !  !  CALCTIME
    3   !  !  !  YES_ANS
    2   !  !  IACTUALLENGTH

        :
        :

 

Symbol Table

The symbol table is shown in alphabetical order, collated for the entire program. For example:

Symbol Table
============

Name      Sub-prog/Struct  Use/COMMON  Address  Type     Size   Value/Bounds
----      ---------------  ----------  -------  ----     ----   ------------

ABSVAL     RDCODE          Local               INTEGER   *4

ASK_RUN    DLX             Local               LOGICAL   *4

ASK_STREAM DLX             Local               LOGICAL   *4

ASK_VAR    DLX             Local               LOGICAL   *4

BASE_STOR  DLX             Local               INTEGER   *4

BATCHRUN   READFILE        Formal Input Argument
                                               LOGICAL   *4

BATCHRUN   DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                           DATASTOR   1526828  LOGICAL   *4

C          COMT            Formal Input Argument to Statement Function: ISCOM
                                               CHARACTER *1

C          COMT            Formal Input Argument to Statement Function:
                            ISLETTER           CHARACTER *1

C          COMT            Formal Input Argument to Statement Function: ISDIGIT
                                               CHARACTER *1

CALCTIME   Global          Subroutine          UNTYPED

        :
        :

 

COMMON Listing

FPT lists the objects in COMMON blocks in address order. For example:

Common Block Address Allocation
===============================


COMMON DATASTOR

Address  Sub-progs           Name        Type      Size    Bounds       Access
-------  ---------           ----        ----      ----    ------       ------

  0      DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             N_STREAM    INTEGER   *4                    R W

  4      DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             N_TIMES     INTEGER   *4                    R W

  8      DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             TIM_BASE    INTEGER   *4      (1:10)        R W

  48     DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             N_VBL       INTEGER   *4                    R W

  52     DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             N_DATA      INTEGER   *4                    R W

  56     DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             K_VBL       INTEGER   *4      (1:184,1:10)  R W

  7416   DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             N_VARS      INTEGER   *4      (1:10)        R W

  7456   DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             DAT_BASE    INTEGER   *4      (1:1840)      R W

  14816  DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             K_TIME      INTEGER   *2      (1:756000)    R W

  1526816DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             KSTD_FRM    INTEGER   *4                    R W

  1526820DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             ERRLEVEL    INTEGER   *4                    R W

  1526824DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             ERRREPRT    INTEGER   *4                    R W

  1526828DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             BATCHRUN    LOGICAL   *4                    R W

  1526832DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             OUT_DATS2   LOGICAL   *4                    R W

  1526836DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             R_DATA      REAL      *4      (1:1080000)   R W


COMMON DATASTCH

Address  Sub-progs           Name        Type      Size    Bounds       Access
-------  ---------           ----        ----      ----    ------       ------

  0      DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             TRIALNME    CHARACTER *8                    R W

  8      DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             TRIAL_ID    CHARACTER *32                   R W

  40     DL_WMATL,DL_WASCI,NEXTPACK,DL_WSEP,DL_WDATS,CALCTIME,DLX
                             OUPT_DIR    CHARACTER *60                   R W


        :
        :

 

Resource Listing

FPT shows the resources which it has used. The program size is reported as the number of lines of code, the number of comment lines and the number of statements.

A diagnostic summary is reported, and contains a measure of code quality. This is computed as a weighted sum of the number of errors and warnings per thousand lines of input (the 'millibug').

The FPT run-time is also reported. Note that the long total run-time in this case was incurred because FPT was run interactively. Most of the time was spent waiting for the user.


  Resource                          Available    Used  Remaining Percentage

  Memory buffers                        2500        34      2466   98.64
  Files                                              1
  Sub-programs                                       1
  Statements                                         6
  Symbol table                                       3
  Name table                                         4
  Statement label table                              1
  COMMON block table                                 1
  Array dimension table                              1
  Cross reference table                              2
  Other linked lists                                 1
  Real numbers                                       0
  Program code                                      13
  Disk buffer records                   2500         4      2496   99.84
  Comment records                                    4
  Disk record accesses                              41
  Dictionary character storage       2000000     15507   1984493   99.22
  Input lines processed                           3044
  Code lines                                      1795
  Comment lines                                   1249
  Statements                                      1568


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



Execution Time

  FSMINI - Initialisation                           0.06
  READDP - Analysis of DATAPOOL Listing             0.00
  LEXER  - Lexical analysis                         0.27
  SSA    - Static semantic analysis                 0.17
  IGNMSZ - Ignoring defaulting of sizes             0.00
  FSWRSM - Writing of symbol table                  0.22
  FSWRCM - Writing of COMMON allocation             0.05
  SHOSBP - Report of sub-programs                   0.28
  COMPSI - Comparison of sub-programs               0.00
  FPTCAL - Report of call structure                 0.11
  CONLIN - Checking of continuation lines           0.00
  FPTSIZ - Data size conversion                     0.00
  CHANGE - Systematic code changes                  0.00
  DECALL - Revision of declarations                 0.00
  CHAPAR - Revision PARAMETER declarations          0.00
  RENSYM - Renaming of symbols                      0.00
  ACCDBA - Building access database                 0.00
  INSRTT - Inserting run-time trace                 0.00
  ALICHK - Alignment check                          0.00
  EQVCHK - Equivalence check                        0.00
  NAMCHK - Name usage consistency check             0.00
  ARGCHK - Argument consistency check               0.00
  USECHK - Symbol usage check                       0.00
  TYPCHK - Data type coercion check                 0.00
  FPTINL - Sub-program inline expansion             0.00
  DADICT - Construction of Data Dictionary          0.00
  NMLGEN - Building NAMELIST for COMMONS            0.00
  UNWIND - Unwinding of DO loops                    0.00
  FPTRNL - Renumbering of labels                    0.00
  ADPART - AD100 Partitioning                       0.00
  FSWRIT - Writing of output                        0.66
  RESRPT - Resource reporting                       0.06
  Total Elapsed Time                              172.48



Diagnostic Summary

          Total diagnostics 0          Highest severity    0


Code Quality Index

         Error weighting                  10
         Total lines                    3044
         Index per 1000 lines          0.000

         No errors detected



End of processing

For further information, please refer to the VX/FPT Reference Manual or contact Sector7.

Back to the VX/FPT Home Page