10.1.1 Original Program Listing (O)

The o switch requests an annotated listing of the original program. For example:

 KAP/OpenVMS_F90   V3.2 k310806 19990326    ATIMESB  Source  29-Mar-1999 09:31:22
 Page 1

 Footnotes  Actions   DO Loops  Line

                                 1
                                 2   C Simple Matrix Multiply example.
                                 3
                                 4     PROGRAM ATIMESB
                                 5
                                 6     PARAMETER M=500, N=400, P=500
                                 7
                                 8     DIMENSION A(1:M,1:N),B(1:N,1:P),C(1:M,1:P)
                                 9
                                10
                                11   C Initialize the matrices
                                12
 1                    +---------13    DO 10 J=1,N
 2          SO        !+--------14      DO 10 I=1,M
            SO        !*        15      A(I,J) = 1.5
                      !*________16   10   CONTINUE
                                17
 1                    +---------18    DO 20 J=1,P
 2          SO        !+--------19      DO 20 I=1,N
            SO        !*        20      B(I,J) = 3.0
                      !*________21   20   CONTINUE
                                22
                                23   C Compute C = A * B
                                24
            SO                  25    CALL MATMUL(A, M, B, N, C, P)
                                26    END

 Abbreviations Used
  SO       scalar optimization

 Footnote List
   1: not vectorized             Not an inner loop.
   2: scalar optimization        Loop unrolled 4 times to improve scalar performance.

 KAP/OpenVMS_F90   V3.2 k310806 19990326    ATIMESB  Source  29-Mar-1999  09:31:22
 Page 2

 Footnotes     Actions     DO    Line
                           Loops
                                 27
                                 28
                                 29   SUBROUTINE MATMUL(A, LDA, B, LDB, C, LL)
                                 30   REAL A(LDA,LDB), B(LDB,LL), C(LDA,LL)
                                 31   INTEGER LDA,LDB,LL
                                 32
 1 2 3 4 5 6   NO SO        +----33   DO 20 J=1,LL
 1 3 4 5 6     NO LR SO     !+---34     DO 20 I=1,LDA
               SO           !*   35     C(I,J) =0.0
 1 5 6 7       NO LR SO INF !*+--36       DO 20 K=1,LDB
 8             DD SO        !*!  37       C(I,J) = C(I,J) + ( A(I,K) * B(K,J) )
                            !*!__38 20   CONTINUE
                                 39
                                 40    RETURN
                                 41
                                 42    END

 Abbreviations Used
  NO       not optimized
  LR       loop reordering
  DD       data dependence
  SO       scalar optimization
  INF      informational

 Footnote List
   1: not optimized          Loop was asserted serial by directive.
   2: not vectorized         Not an inner loop.
   3: scalar optimization    Cleanup-loop for loop unrolling added.
   4: scalar optimization    Loop unrolled 3 times to improve scalar performance.
   5: scalar optimization    Strip loop for strip mining with block size 24.
   6: scalar optimization    Block loop for strip mining with block size 24.
   7: informational          Unrolling of this loop was not done because
                             heuristic says size is ok as is.
   8: data dependence        Data dependence involving this line due to variable C.


Previous Page | Next Page | Contents | Index |
Command-Line Qualifiers

Copyright © Digital Equipment Corporation. 1999. All Rights Reserved.