      Software Product  Description   C ___________________________________________________________________   P PRODUCT NAME:  Compaq Fortran Version 7.5 for OpenVMS Alpha Systems SPD 56.18.12   Software Product  Description   C ___________________________________________________________________   N PRODUCT NAME:  Compaq Fortran for OpenVMS Alpha Systems           SPD 56.18.12   DESCRIPTION   F This is the Software Product Description (SPD) for Compaq Fortran Ver-E sion 7.5 for OpenVMS[TM] Alpha) Systems. Compaq Fortran contains both D the Compaq Fortran 95/90 Version 7.5 software and the Compaq FortranC 77 Version 7.5 software as well as the Compaq Extended Math Library C (CXML). In the following description, Compaq Fortran refers to Com- F paq Fortran 95/90 unless a specific reference to the 95/90 or 77 prod-? uct is needed to distinguish between the two software products.   C Compaq Fortran is an implementation of the Fortran programming lan- D guage that supports the FORTRAN 66, FORTRAN 77, Fortran 90, and For-C tran 95 standards. Compaq Fortran 95/90 and Compaq Fortran 77 fully   support the following standards:   o  ANSI X3.9-1966 (FORTRAN 66)   o  ANSI X3.9-1978 (FORTRAN 77)    o  ISO 1539-1980(E) (FORTRAN 77)   o  MIL-STD-1753   D o  FIPS-69-1 (Compaq Fortran meets the requirements of this standardE    by conforming to the ANSI Standard and by including a flagger. The C    flagger optionally produces diagnostic messages for compile-time   C                                                       February 2002        D    elements that do not conform to the Full-Level ANSI Fortran Stan-	    dard.)   C Compaq Fortran 95/90 supports all of the standards that Compaq For- 2 tran 77 supports plus the following new standards:    o  ANSI X3.198-1992 (Fortran 90)  & o  ISO/IEC 1539-1:1997(E) (Fortran 95)   COMPAQ FORTRAN  E Compaq Fortran supports extensions to the ISO and ANSI standards, in- E cluding a number of extensions defined by Compaq Fortran for the var- D ious Compaq Fortran platforms (operating system/architecture pairs).E In addition to Compaq OpenVMS Alpha systems, Compaq Fortran platforms  include:  - o  Compaq Visual Fortran for Windows systems.   , o  Compaq Fortran for Linux[R] Alpha systems  C o  Compaq Fortran and Compaq Fortran 77 on Compaq Tru64[TM] UNIX[R]     Alpha systems  0 o  Compaq Fortran 77 for OpenVMS VAX[TM] systems  D Major additions to the FORTRAN 77 standard introduced by the Fortran 90 standard include:   o  Array operations   . o  Improved facilities for numeric computation  % o  Parameterized intrinsic data types    o  User-defined data types  8 o  Facilities for modular data and procedure definitions   o  Pointers   $ o  The concept of language evolution  "                                  2       H o  Support for DATE_AND_TIME intrinsic for obtaining dates using a four-    digit year format  E Compaq Fortran contains full support for the Fortran 95 standard, in-  cluding the following features:   ! o  FORALL statement and construct   / o  Automatic deallocation of ALLOCATABLE arrays   $ o  DIM argument to MAXLOC and MINLOC    o  PURE user-defined subprograms  G o  ELEMENTAL user-defined subprograms (a restricted form of a pure pro- 
    cedure)  ) o  Pointer initialization (initial value)   * o  The NULL intrinsic to nullify a pointer  ( o  Derived-type structure initialization    o  CPU_TIME intrinsic subroutine  0 o  KIND argument to CEILING and FLOOR intrinsics  G o  Nested WHERE constructs, masked ELSEWHERE statement, and named WHERE 
    constructs   % o  Comments allowed in namelist input   1 o  Generic identifier in END INTERFACE statements   C o  Minimal width field editing using a numeric edit descriptor with 
    0 width  F o  Detection of Obsolescent and/or Deleted features listed in the For-G    tran 95 standard. Compaq Fortran flags these obsolescent and deleted %    features, but fully supports them.   @ Compaq Fortran includes the following features and enhancements:  G o  Full support for 64-bit address space, including 64-bit static space   "                                  3       F o  Support for providing cross-reference information to the DEC Source0    Code Analyzer component of DECset for OpenVMS  : o  Support for linking against static and shared libraries  F o  Support for creating shareable code to be put into a shared library  " o  Support for stack-based storage  ( o  Support for dynamic memory allocation  F o  Support for reading and writing binary data files in nonnative for-F    mats, including IEEE[R] (little-endian and big-endian), VAX, IBM[R]=    System\360, and CRAY[R] integer and floating point formats   D o  User control over IEEE floating point exception handling, report-    ing, and resulting values  F o  Control for memory boundary alignment of items in COMMON and fields0    in structures and warnings for unaligned data  G o  Directives to control listing page titles and subtitles, object file D    identification field, COMMON and record field alignment, and some    attributes of COMMON blocks  2 o  Ability to CALL an external function subprogram  " o  7200 Character Statement Length  " o  Free form unlimited line length  5 o  Mixing Subroutines/Functions in Generic Interfaces   I o  Composite data declarations using STRUCTURE, END STRUCTURE, and RECORD C    statements, and access to record components through field refer-     ences  D o  Explicit specification of storage allocation units for data types    such as:          INTEGER*4        LOGICAL*4        REAL*4       REAL*8       COMPLEX*8   "                                  4       C o  Support for 64-bit signed integers using INTEGER*8 and LOGICAL*8   H o  Support for 128-bit floating-point real numbers (reals) using REAL*16    and COMPLEX*32    o  A set of data types:   
    -  BYTE  0    -  LOGICAL*1, LOGICAL*2, LOGICAL*4, LOGICAL*8  0    -  INTEGER*1, INTEGER*2, INTEGER*4, INTEGER*8      -  REAL*4, REAL*8, REAL*16   7    -  COMPLEX*8, COMPLEX*16, DOUBLE COMPLEX, COMPLEX*32       -  POINTER (CRAY style)  E o  Data statement style initialization in type declaration statements   " o  AUTOMATIC and STATIC statements  D o  Bit constants to initialize LOGICAL, REAL, and INTEGER values and4    participate in arithmetic and logical expressions  2 o  Built-in functions %LOC, %REF, %VAL, and %DESCR   o  VOLATILE statement    o  Bit manipulation functions   C o  Binary, hexadecimal, and octal constants and Z and O format edit +    descriptors applicable to all data types   ? o  I/O unit numbers that can be any nonnegative INTEGER*4 value   D o  Variable amounts of data can be read from and written to STREAM,    files, which contain no record delimiters   o  ENCODE and DECODE statements   4 o  ACCEPT, TYPE, and REWRITE input/output statements  - o  DEFINE FILE, UNLOCK, and DELETE statements   3 o  USEROPEN subroutine invocation at file OPEN time   "                                  5       H o  Support for reading nondelimited character strings as input for char-    acter NAMELIST items    o  Debug statements in source   F o  Generation of a source listing file with optional machine code rep-'    resentation of the executable source   4 o  Variable format expressions in a FORMAT statement  D o  Optional run-time bounds checking of array subscripts and charac-    ter substrings   D o  31-character identifiers that can include dollar sign ($) and un-    derscore (_)   E o  Support for executing in-line assembler code using the ASM intrin-     sics   J o  Support for the supercomputer intrinsics POPCNT, POPPAR, LEADZ, TRAILZ,    and MULT_HIGH  D o  Language elements that support the various extended range and ex-:    tended precision floating point architectural features:  E    -  32-bit VAX F_floating data type, with an 8-bit exponent and 24- M       bit mantissa, which provides a range of 0.293873588E-38 to 1.7014117E38 3       and a precision of typically 7 decimal digits   E    -  64-bit VAX D_floating data type, with an 8-bit exponent and 56- D       bit mantissa, which provides a range of 0.2938735877055719D-38D       to 1.70141183460469229D38 and a precision of typically 16 dec-E       imal digits. Calculations with D_floating data on Alpha systems B       use G_floating precision (53-bit instead of 56-bit mantissa)  F    -  64-bit VAX G_floating data type, with an 11-bit exponent and 53-E       bit mantissa, which provides a range of 0.5562684646268004D-308 C       to 0.89884656743115785407D308 and a precision of typically 15        decimal digits  F    -  32-bit IEEE S_floating data type, with an 8-bit exponent and 24-E       bit mantissa, which provides a range of 1.17549435E-38 (normal- I       ized) to 3.40282347E38 (the IEEE denormalized limit is 1.40129846E- 7       45) and a precision of typically 7 decimal digits   "                                  6       C    -  64-bit IEEE T_floating data type, with an 11-bit exponent and E       53-bit mantissa, which provides a range of 2.2250738585072013D- D       308 (normalized) to 1.7976931348623158D308 (the IEEE denormal-E       ized limit is 4.94065645841246544D-324) and a precision of typ-        ically 15 decimal digits  E    -  128-bit IEEE extended Alpha X_floating data type, with a 15-bit D       exponent and a 113-bit mantissa, which provides a range of ap-F       proximately 6.48Q-4966 to 1.18Q4932 and a precision of typically       33 decimal digits   D    -  The following combinations of floating types may be specified:  !       -  F, G and X (the default)          -  F, D and X (VAX)          -  S, T and X (IEEE)   o  Command line control for:  H    -  The size of default INTEGER, REAL, and DOUBLE PRECISION data items  D    -  The levels and types of optimization to be applied to the pro-
       gram  1    -  The directories to search for INCLUDE files   ?    -  Inclusion or suppression of various compile-time warnings   C    -  Inclusion or suppression of run-time checking for various I/O        and computational errors  G    -  Control over whether compilation terminates after a specific num- "       ber of errors has been found  >    -  Choosing whether executing code will be thread-reentrant  F o  Internal procedures can be passed as actual arguments to procedures  ; o  Kind types for all of the hardware-supported data types:   .    -  For 1-, 2-, 4-, and 8-byte LOGICAL data:            LOGICAL (KIND=1)   "                                  7                 LOGICAL (KIND=2)           LOGICAL (KIND=4)           LOGICAL (KIND=8)   .    -  For 1-, 2-, 4-, and 8-byte INTEGER data:            INTEGER (KIND=1)           INTEGER (KIND=2)           INTEGER (KIND=4)           INTEGER (KIND=8)   (    -  For 4-, 8-, and 16-byte REAL data:            REAL (KIND=4)          REAL (KIND=8)          REAL (KIND=16)   E    -  For single precision, double precision, and quad-precision COM-        PLEX data:            COMPLEX (KIND=4)           COMPLEX (KIND=8)           COMPLEX (KIND=16)  9 o  The following features found in Compaq Visual Fortran:   4    -  # Constants-constants using other than base 10  '    -  C Strings-NULL terminated strings   C    -  Conditional Compilation And Metacommand Expressions ($define, -       $undefine, $if, $elseif, $else, $endif)   ;    -  $FREEFORM, $NOFREEFORM, $FIXEDFORM-source file format   "    -  $INTEGER, $REAL-selects size  :    -  $FIXEDFORMLINESIZE-line length for fixed form source  (    -  $STRICT, $NOSTRICT-F90 conformance      -  $PACK-structure packing   F    -  $ATTRIBUTES ALIAS-external name for a subprogram or common block  ;    -  $ATTRIBUTES C, STDCALL-calling and naming conventions   "                                  8       6    -  $ATTRIBUTES VALUE, REFERENCE-calling conventions  9    -  \ Descriptor-prevents writing an end-of-record mark   E    -  Ew.dDe and Gw.dDe Edit Descriptorssimilar to Ew.dEe and Gw.dEe   5    -  $DECLARE and $NODECLARE (same as IMPLICIT NONE)   B    -  $ATTRIBUTES EXTERN-variable allocated in another source file  6    -  $ATTRIBUTES VARYING-variable number of arguments  /    -  $ATTRIBUTES ALLOCATABLE-llocatable array   8    -  Mixing Subroutines/Functions in Generic Interfaces  0    -  $MESSAGE-output message during compilation      -  $LINE (same as Cs #line)   5    -  INT1 converts to one byte integer by truncating   5    -  INT2 converts to two byte integer by truncating   6    -  INT4 converts to four byte integer by truncating      -  COTAN returns cotangent   /    -  DCOTAN returns double precision cotangent   7    -  IMAG returns the imaginary part of complex number   "    -  IBCHNG reverses value of bit  .    -  ISHA shifts arithmetically left or right  $    -  ISHC performs a circular shift  )    -  ISHL shifts logically left or right   C Compaq Fortran takes advantage of OpenVMS facilities to include the D following features and enhancements in both Compaq Fortran 95/90 and Compaq Fortran 77:  C o  Language elements for keyed and sequential access to OpenVMS RMS     indexed organization files   "                                  9       F o  The ability to specify an OpenVMS text library module in an INCLUDE    statement  C o  Support for calls to OpenVMS system service and Run-Time Library 
    procedures   @ o  Generation of symbol tables for the OpenVMS Symbolic Debugger  C o  LIB$ESTABLISH and LIB$REVERT are provided as intrinsic functions ;    for compatibility with Compaq Fortran exception handling   H o  Support for providing error diagnostics to the DEC Language-Sensitive)    Editor component of DECset for OpenVMS   E Compaq Fortran 77 contains the following extensions to the FORTRAN 77 	 standard:   $ o  Support for recursive subprograms   o  IMPLICIT NONE statements    o  INCLUDE statement   o  NAMELIST-directed I/O    o  DO WHILE and ENDDO statements  8 o  Use of exclamation point (!) for end of line comments  ) o  Generation of Cross Reference Listings   D o  Support for NTT Technical Requirement TR550001, Multivendor Inte-E    gration Architecture (MIA) Version 1.1, Division 2, Part 3-2, Pro-     gramming Language FORTRAN   o  Support for automatic arrays   H o  Support for the SELECT CASE - CASE - CASE DEFAULT - END SELECT state-    ments  D o  Support for the EXIT and CYCLE statements and for construct names    on DO - END DO statements  2 o  Reporting of unused and uninitialized variables  "                                 10       H o  Support for DATE_AND_TIME intrinsic for obtaining dates using a four-    digit year format  F Compaq Fortran 77 takes advantage of OpenVMS facilities to include the$ following features and enhancements:  I o  Support for translation of CDD/Repository records into Fortran records   C o  Support for the extraction of program design information in com- C    ments using the DEC Source Code Analyzer component of DECset for 
    OpenVMS  F Compaq Fortran provides a multiphase optimizer that is capable of per-D forming optimizations across entire programs. Specific optimizationsE performed by both Compaq Fortran 95/90 and Compaq Fortran 77 include:    o  Constant folding   E o  Optimizations of arithmetic IF, logical IF, and block IF-THEN-ELSE   * o  Global common subexpression elimination  . o  Removal of invariant expressions from loops  > o  Global allocation of general registers across program units  8 o  In-line expansion of statement functions and routines  , o  Optimization of array addressing in loops   o  Value propagation  - o  Deletion of redundant and unreachable code    o  Loop unrolling    o  Thorough dependence analysis   F o  Software pipelining to rearrange instructions between different un-    rolled loop iterations   - o  Optimized interface to intrinsic functions   "                                 11       C o  Loop transformation optimizations that apply to array references     within loops, including:       -  Loop blocking       -  Loop distribution       -  Loop fusion       -  Loop interchange      -  Loop scalar replacement       -  Outer loop unrolling  A Specific optimizations performed by Compaq Fortran 95/90 include:    o  Array temporary elimination  I Both Compaq Fortran 95/90 and Compaq Fortran 77 are shareable, re-entrant E compilers that operate under the OpenVMS operating system. They glob- F ally optimize source programs while taking advantage of the native in-4 struction set and the OpenVMS virtual memory system.  # COMPAQ EXTENDED MATH LIBRARY (CXML)   D Compaq Extended Math Library (CXML) is a set of mathematical subpro-C grams that are optimized for Compaq architectures. Included subpro-  grams cover the areas of:    o  Basic Linear Algebra   ) o  Linear System and Eigenproblem Solvers    o  Sparse Linear System Solvers   
 o  Sorting   o  Random Number Generation    o  Signal Processing  "                                 12       C The Basic Linear Algebra library includes the industry-standard Ba- D sic Linear Algebra Subprograms (BLAS) Level 1, Level 2, and Level 3.F Also included are subprograms for BLAS Level 1 Extensions, Sparse BLAS) Level 1, and Array Math Functions (VLIB).   C The Linear System and Eigenproblem Solver library provides the com- C plete LAPACK v2 package developed by a consortium of university and H government laboratories. LAPACK is an industry-standard subprogram pack-H age offering an extensive set of linear system and eigenproblem solvers.D LAPACK uses blocked algorithms that are better suited to most modernE architectures, particularly ones with memory hierarchies. LAPACK will - supersede LINPACK and EISPACK for most users.   C The Sparse Linear System library provides both direct and iterative E sparse linear system solvers. The direct solver package supports both C symmetric and nonsymmetric sparse matrices stored using the skyline D storage scheme. The iterative solver package contains a basic set ofC storage schemes, preconditioners, and iterative solvers. The design E of this package is modular and matrix-free, allowing future expansion  and easy modification by users.   E The Signal Processing library provides a basic set of signal process- J ing functions. Included are one-, two-, and three-dimensional Fast FourierD Transforms (FFT), group FFTs, Cosine/Sine Transforms (FCT/FST), Con-+ volution, Correlation, and Digital Filters.   D Many CXML subprograms are optimized for the supported hardware plat-E forms. Optimization techniques include traditional optimizations such D as loop unrolling and loop reordering. CXML subprograms also provideC efficient management of the hierarchical memory system, using tech-  niques such as the following:   = o  Reuse of data within registers to minimize memory accesses    o  Efficient cache management   D o  Use of blocked algorithms that minimize translation buffer misses    and unnecessary paging     "                                 13       E Since CXML routines can be called from all languages that support the D OpenVMS calling standard, the library provides optimized computationD for applications written in these languages. Where appropriate, mostD subprograms are available in both real and complex versions, as wellC as in both single and double precision. CXML for OpenVMS Alpha sup- / ports both IEEE and VAX floating-point formats.     Basic Linear Algebra Subprograms  E Linear algebra operations are fundamental to many mathematical appli- K cations, and several libraries of linear algebra subprograms exist through- G out the computer industry. The CXML BLAS library contains the most com- & monly used linear algebra subprograms.  C The CXML linear algebra library contains five groups of subprograms  at three levels:  2 o  Basic Linear Algebra Subprograms (BLAS) Level 1   o  BLAS Level 1 Extensions  ! o  BLAS Level 1 Sparse Extensions    o  BLAS Level 2    o  BLAS Level 3   9 BLAS Level 1 (Scalar/Vector and Vector/Vector Operations)   C BLAS Level 1 provides a set of elementary vector functions, operat- C ing on one or two vectors. These are typically very small routines, C and they make less efficient use of the computing resources of mod- = ern computer architectures than the Level 2 and 3 operations.   6 CXML provides the 15 standard BLAS Level 1 operations:  E o  The index of the element of a vector having maximum absolute value   = o  The sum of the absolute values of the elements of a vector   $ o  Inner product of two real vectors  "                                 14       D o  Scalar plus the extended precision inner product of two real vec-    tors   2 o  Conjugated inner product of two complex vectors  4 o  Unconjugated inner product of two complex vectors  E o  Square root of the sum of squares (norm) of the elements of a vec-     tor  & o  Scalar times a vector plus a vector   o  Copy one vector to another    o  Apply a Givens rotation  ) o  Apply a modified Givens plane rotation   0 o  Generate elements for a Givens plane rotation  9 o  Generate elements for a modified Givens plane rotation   % o  Product of a vector times a scalar   # o  Swap the elements of two vectors   2 BLAS Level 1 Extensions (Vector/Vector Operations)  D When developing mathematical algorithms using the BLAS Level 1, sci-C entists and engineers found that several additional constructs were C used on a regular basis. These constructs are well known throughout 1 the computer industry as BLAS Level 1 Extensions.   3 CXML contains 13 BLAS Level 1 Extension operations:   5 o  Index of element having the minimum absolute value   , o  Index of element having the maximum value  , o  Index of element having the minimum value  , o  Largest value of the elements of a vector  - o  Smallest value of the elements of a vector   5 o  Largest absolute value of the elements of a vector   "                                 15       6 o  Smallest absolute value of the elements of a vector  0 o  Sum of the values of the elements of a vector  1 o  Set all elements of a vector equal to a scalar   ) o  Constant times a vector set to another     vector (y = a x)   . o  Euclidean norm with no intermediate scaling  1 o  Sum of the squares of the elements of a vector   C o  Constant times a vector plus a vector set to another vector (z =     a x + y)   9 BLAS Level 1 Sparse Extensions (Vector/Vector Operations)   E This group of operations is similar to the BLAS Level 1 routines, but C is designed to work on sparse vectors (vectors in which most of the I elements are zero). Six of the routines are from industry standard Sparse 1 BLAS 1, and the remaining three are enhancements.   , The nine sparse BLAS Level 1 operations are:  - o  Scalar times a sparse vector plus a vector   + o  Sum of a sparse vector and a full vector   5 o  Inner product of a sparse vector and a full vector   , o  Gather a sparse vector from a full vector  C o  Gather a sparse vector from the scaled elements of a full vector   C o  Gather a sparse vector from a full vector and zero corresponding     elements of full vector  = o  Apply Givens rotation to a sparse vector and a full vector   - o  Scatter a sparse vector into a full vector   7 o  Scale and scatter a sparse vector into a full vector   "                                 16       ' BLAS Level 2 (Matrix/Vector Operations)   F The BLAS Level 2 codes make more effective use of the data in the reg-E isters, reducing the number of register loads and stores required. In E addition, loop unrolling techniques are used to minimize cache misses E and page faults. The BLAS Level 2 subprograms use the following types  of operations:   o  Matrix/vector products   # o  Rank-1 and rank-2 matrix updates   / o  Solutions of triangular systems of equations   C Six types of matrices are supported by these BLAS Level 2 routines:   
 o  General   o  General band    o  Symmetric/Hermitian   o  Symmetric/Hermitian band   
 o  Triangular    o  Triangular band  ' BLAS Level 3 (Matrix/Matrix Operations)   D The BLAS Level 3 routines operate at a level that makes the most ef-G ficient use of machine resources. CXML optimizes these routines by par- E titioning matrices into blocks and computing matrix/matrix operations E on each block. This approach avoids excessive memory accesses by pro- F viding full reuse of data while each block is in the cache or the reg-E isters. BLAS Level 3 routines provide this kind of blocking for three  basic types of operations:   o  Matrix/matrix products   3 o  Rank-k and rank-2k updates of a symmetric matrix   "                                 17       C o  Solving triangular systems of equations with multiple right-hand     sides  E Three types of matrices are supported by these BLAS Level 3 routines:   
 o  General   o  Symmetric/Hermitian  
 o  Triangular   7 A set of additional matrix-matrix routines is provided:    o  Add two matrices   # o  Subtract one matrix from another   / o  Transpose a matrix, in-place or out-of-place    Array Math Functions  C The Array Math Functions provide a set of basic math functions that F operate on arrays of numbers rather than on scalars. On vector and su-D perscalar architectures, such functions have a performance advantageD over a loop of scalar operations. The library includes the following- array functions for double precision numbers:    o  Sine of array   o  Cosine of array   o  Cosine and sine of array    o  Exponent of array   o  Logarithm of array    o  Square root of array    o  Reciprocal of array  "                                 18        LAPACK Library Contents   C LAPACK is a library of linear algebra subprograms intended to solve G a wide range of problems in linear algebra. LAPACK can be used to solve H dense systems of linear equations, linear least squares problems, eigen-E value problems, and singular value problems. It is also useful in do- D ing other computations such as matrix factorizations and estimations of condition numbers.   G The CXML LAPACK library provides the complete LAPACK v2 package. CXMLs F version of LAPACK is provided as a packaged library, compiled, tested,D and ready to use. Combined with the optimized BLAS Level 3 routines,G the CXML LAPACK will provide optimal performance on all supported plat- E forms. LAPACK should be used in place of LINPACK and EISPACK, because + it is more efficient, accurate, and robust.   H LAPACK supports both real and complex, single and double precision data./ It operates on the following types of matrices:   
 o  Bidiagonal    o  General band    o  General unsymmetric   o  General tridiagonal   o  Hermitian   o  Hermitian, packed storage  ( o  Upper Hessenberg, generalized problem   o  Upper Hessenberg   
 o  Orthogonal    o  Orthogonal, packed storage   - o  Symmetric/Hermitian positive definite band   ( o  Symmetric/Hermitian positive definite  8 o  Symmetric/Hermitian positive definite, packed storage  4 o  Symmetric/Hermitian positive definite tridiagonal  "                                 19        o  Symmetric band    o  Symmetric, packed storage   o  Symmetric tridiagonal   o  Symmetric   o  Triangular band  " o  Triangular, generalized problem   o  Triangular, packed storage   
 o  Triangular    o  Trapezoidal  
 o  Unitary   o  Unitary, packed storage  ) LAPACK provides the following operations:    o  Triangular factorization   % o  Unblocked triangular factorization   E o  Solve a system of linear equations (based on triangular factoriza-     tion)  : o  Compute the inverse (based on triangular factorization)  G o  Compute a split Cholesky factorization of a symmetric/Hermitian pos-     itive definite band matrix   # o  Unblocked computation of inverse    o  Estimate condition number  - o  Refine initial solution returned by solver   , o  Perform QR factorization without pivoting   o  Unblocked QR factorization   A o  Solve linear least squares problem (based on QR factorization)   D o  Solve the linear equality constrained least squares (LSE) problem  "                                 20       . o  Solve the Gauss-Markov linear model problem  , o  Perform LQ factorization without pivoting   o  Unblocked LQ factorization   B o  Solve underdetermined linear system (based on LQ factorization)  D o  Generate a real orthogonal or complex unitary matrix as a product    of Householder matrices  < o  Unblocked generation of real orthogonal or unitary matrix  C o  Multiply a matrix by a real orthogonal or complex unitary matrix 0    by applying a product of Householder matrices  D o  Unblocked version of multiplication of a matrix by a real orthog-F    onal or complex unitary matrix by applying a product of Householder    matrices   2 o  Reduce a square matrix to upper Hessenberg form  / o  Unblocked version of square matrix reduction   ? o  Reduce a symmetric matrix to real symmetric tridiagonal form   * o  Reduce a band matrix to bidiagonal form  2 o  Unblocked version of symmetric matrix reduction  1 o  Reduce a rectangular matrix to bidiagonal form   ? o  Reduce a band symmetric/Hermitian matrix to tridiagonal form   F o  Reduce a symmetric/Hermitian-definite banded generalized eigenprob-    lem to standard form   B o  Compute various norms of a complex Hermitian tridiagonal matrix  D o  Compute eigenvalues and optional Schur factorization or eigenvec-    tors using QR algorithm  5 o  Compute selected eigenvectors by inverse iteration   0 o  Compute eigenvectors from Schur factorization  D o  Compute eigenvectors using the Pal-Walker-Kahan variant of the QL    or QR algorithm  "                                 21       D o  For a pair of N-by-N real nonsymmetric matrices, compute the gen-G    eralized eigenvalues, the real Schur form, and the left and/or right     Schur vectors  D o  For a pair of N-by-N real nonsymmetric matrices, compute the gen-E    eralized eigenvalues, and the left and/or right generalized eigen- 
    vectors  A o  Solve the generalized nonsymmetric eigenproblem Ax = lambda Bx   D o  Solve the generalized definite banded eigenproblem Ax = lambda Bx  C o  Solve the generalized symmetric/Hermitian-definite banded eigen- 
    problem  F o  Solve the symmetric eigenproblem using divide-and-conquer algorithm  F o  Compute singular values and, optionally, singular vectors using the    QR algorithm   B o  Compute the generalized (quotient) singular value decomposition  E o  Compute the generalized singular value decomposition (GSVD) on the &    M-by-N matrix A and P-by-N matrix B  6 o  Solve a generalized linear regression model problem    Sparse System Solver Subprograms  C The CXML Sparse System Solver library contains a set of subprograms G that can be used to solve sparse linear systems of equations. Two pack- : ages providing direct and iterative methods are supported.  $ Direct Method Sparse Solver Package:  E The direct solver package includes skyline (profile) solvers for sym- C metric and nonsymmetric matrices. Separate factorization and solver D routines are provided to allow repeated use of the solver for multi-F ple right hand sides, without repeating the factorization. To make theE subprograms easier to use, both simple and expert driver routines are % provided. Functions provided include:    o  LDU factorization  "                                 22        o  Solve   o  Norm evaluation   o  Condition number estimation   o  Iterative refinement    o  Simple and expert drivers  F These storage schemes are supported for symmetric and nonsymmetric ma- trices:    o  Profile-in storage   E o  Structurally symmetric, profile-in storage (for nonsymmetric only)    o  Diagonal-out storage   ' Iterative Method Sparse Solver Package:   E For the iterative method, the library provides a modular set of stor- D age schemes, preconditioners, and solvers. These solvers and precon-C ditioners are easily accessed through an integrated driver routine.   E Six iterative sparse solvers for real, double precision data are sup-  plied:  + o  Preconditioned conjugate gradient method   9 o  Preconditioned least squares conjugate gradient method   $ o  Preconditioned biconjugate method  3 o  Preconditioned conjugate gradient squared method   5 o  Preconditioned generalized minimum residual method   + o  Preconditioned transpose free QMR method   D Routines for three storage schemes are provided, or the user can de-D velop routines to employ a custom storage scheme. The supplied stor- age schemes include:   o  Symmetric diagonal   "                                 23        o  Unsymmetric diagonal    o  General storage by rows  D Three preconditioners are supplied, which can be selectively appliedC to the data. Users can also supply custom preconditioners. The pre-  conditioners supplied include:   o  Diagonal    o  Polynomial (Neumann)   * o  Incomplete LU with zero diagonals added   Sorting Subprograms   G Two sort subprograms using the Quicksort algorithm and two general pur- 5 pose radix sort subprograms are provided, as follows:   : o  Sort elements of a vector using the Quicksort algorithm  ? o  Sort an indexed vector of data using the Quicksort algorithm   ) o  Sort data using a radix sort algorithm   > o  Sort an indexed vector of data using a radix sort algorithm  8 All of the above sorts operate on data stored in memory.   Random Number Subprograms   7 CXML provides four random number generator subprograms:   D o  Produce a vector of uniform [0,1], long-period random numbers us-C    ing the LEcuyer multiplicative method. Two auxiliary input rou- G    tines are provided to allow this subprogram to be called from within #    a parallel section of a program.   C o  Produce a vector of N(0,1), normally-distributed random numbers. E    Two auxiliary input routines are provided to allow this subprogram <    to be called from within a parallel section of a program.  "                                 24       E o  Produce single precision random numbers using a linear multiplica-     tive algorithm   E o  Produce single precision random numbers using a Lehmer multiplica-     tive generator    Signal Processing Subprograms   C The CXML Signal Processing library contains a set of subprograms in & four basic areas of signal processing:    o  Fast Fourier Transforms (FFT)  5 o  Fast Cosine and Fast Sine Transforms (FCT and FST)    o  Convolution and correlation   o  Digital filters  6 Fast Fourier Transforms and Cosine and Sine Transforms  F CXML provides one-dimensional, two-dimensional, three-dimensional, andE group FFT routines and one-dimensional FCT/FST routines. Each routine  is supplied in two forms:   D o  The first form computes the transform in one unit operation. ThisF    is convenient for programs requiring speed on only one or a few op-    erations.  G o  The second form is provided for programs requiring speed on repeated D    operations. With this form, each routine is subdivided into threeC    routines. One routine builds the rotation factors, a second rou- H    tine applies them to perform the transform, and a third routine deal-C    locates any virtual memory allocated in the first routine. Thus, F    for repeated operations, the rotation factors need to be built only    once.        "                                 25        Convolution and Correlation   D CXML provides routines for computing one-dimensional discrete convo-F lutions and correlations. These routines can process both periodic and nonperiodic data.    Digital Filters   D CXML provides support for one-dimensional, nonrecursive digital fil-F tering. Based on the Kaisers Sinh-Bessel algorithm, these routines al-C low programming of bandpass, bandstop, low-pass, and high-pass fil-  ters.    Cray SciLib Portability Support   D SCIPORT is a Compaq Computer Corporation implementation of v7 of theD Cray Research scientific numerical library, SciLib. SCIPORT providesC 64 bit single-precision and 64-bit integer interfaces to underlying C CXML routines for Cray users porting programs to Alpha systems run- E ning OpenVMS. SCIPORT also provides equivalent versions of almost all E Cray Math Library and CF77 (Cray Fortran 77) Math intrinsic routines.   F In order to be completely source code compatible with SciLib, the SCI-E PORT library calling sequence supports 64-bit integers passed by ref- H erence. However, internally, SCIPORT uses 32 bit integers. Consequently,: some run-time uses of SciLib are not supported by SCIPORT.   SCIPORT provides the following:   D o  64-bit versions of all Cray SciLib single-precision BLAS Level 1,     Level 2, and Level 3 routines  " o  All Cray SciLib LAPACK routines  8 o  All Cray SciLib Special Linear System Solver routines  - o  All Cray SciLib Signal Processing routines   1 o  All Cray SciLib Sorting and Searching routines   "                                 26       D These routines are completely interchangeable with their Cray SciLibF counterparts up to the runtime limit on integer size, and with the ex-E ception of the ORDERS routine, require no program changes to function D correctly. Owing to endian differences of machine architecture, spe-D cial considerations must be given when the ORDERS routine is used to! sort multibyte character strings.    RUN-TIME LIBRARY REDISTRIBUTION   E The Compaq Fortran kit may include updated Run-Time Library shareable D images. Compaq grants the user a nonexclusive royalty-free worldwideD right to reproduce and distribute the executable version of the Run-F Time Library (the RTLs), provided that the user does all of the fol- lowing:   E o  Distributes the RTLs only in conjunction with and as a part of the E    users software application product that is designed to operate in     the OpenVMS environment.   E o  Does not use the name, logo, or trademarks of Compaq to market the '    users software application product.   F o  Includes the copyright notice of Compaq Fortran on the users prod-C    uct disk label and/or on the title page of the documentation for      software application product.  I o  Agrees to indemnify, hold harmless, and defend Compaq from and against C    any claims or lawsuits, including attorneys fees, that arise or H    result from the use or distribution of the software application prod-    uct.   D Except as expressly provided herein, Compaq grants no implied or ex-I press license under any of its patents, copyrights, trade secrets, trade- @ marks, or any license or other proprietary interests and rights.  E The RTL image is designated as DEC$FORRTL.EXE. Compaq Fortran may in- C clude a separate installation kit for the purpose of installing the E Compaq Fortran Run-Time Library. This kit, installable with the POLY- F CENTER[R] Software Installation Utility (a component of OpenVMS), must2 be used to install the RTL image on other systems.  "                                 27        HARDWARE REQUIREMENTS    Processors Supported:   E Any Alpha system that is capable of running OpenVMS Alpha Version 7.1 	 or later.   C ___________________________________________________________________   C Table_1:_Disk_Space_Requirements_(Block_Cluster_Size_=_1)__________   C TASK____________SIZE_______________________________________________   ' Compiler In-    50,000 blocks (25.0 MB)  stallation:   ' Compiler        40,200 blocks (20.1 MB) 
 Permanent:  ( CXML Instal-    150,000 blocks (75.0 MB) lation:   ( CXML Perma-     150,000 blocks (75.0 MB)C nent:______________________________________________________________   E These counts refer to the disk space required on the system disk. The D sizes are approximate; actual sizes may vary depending on the users8 system environment, configuration, and software options.   CLUSTER ENVIRONMENT   C This layered product is fully supported when installed on any valid F and licensed VMScluster* configuration without restrictions. The HARD-F WARE REQUIREMENTS sections of this products Software Product Descrip-E tion and System Support Addendum detail any special hardware required  by this product.  H *  VMScluster configurations are fully described in the VMScluster Soft-D    ware Product Description (SPD 42.18.xx) and include CI, Ethernet,:    DSSI, FDDI, SCSI and Mixed Interconnect configurations.  "                                 28        SOFTWARE REQUIREMENTS   5 For All Systems Using Terminals DECwindows Interface:   + o  OpenVMS Alpha Operating System V7.1-V7.3   ( For All Workstations Running DECwindows:  + o  OpenVMS Alpha Operating System V7.1-V7.3    OpenVMS Optional Components   G The OpenVMS Alpha operating system can be configured to include or omit D certain components. Compaq Fortran requires the following components to be included:    o  Programming Support   o  Utilities  C The default for OpenVMS Alpha installation is to include all compo-  nents.   SOFTWARE LICENSING INFORMATION  C This software is furnished only under license. For more information E about licensing terms and policies of Compaq, contact your local Com-  paq office.   # LICENSE MANAGEMENT FACILITY SUPPORT   B Compaq Fortran supports the License Management Facility of Compaq.  C License units for Compaq Fortran are allocated on an Unlimited Sys- " tem Use plus Concurrent Use basis.  F Each Concurrent Use license allows any one individual at a time to use the layered product.    "                                 29        OPTIONAL SOFTWARE   ( o  DECset V11.1-V12.4A for OpenVMS Alpha  & o  KAP Fortran V3.2A for OpenVMS Alpha  ( o  CDD/Repository V5.3 for OpenVMS Alpha   GROWTH CONSIDERATIONS   D The minimum hardware/software requirements for any future version ofC this product may be different from the requirements for the current  version.   DISTRIBUTION MEDIA  C This product is available on the Compaq CD-ROM Software Library for C OpenVMS Alpha (QA-03XAA-H8). Documentation in printed format can be D ordered separately (see the Compaq Fortran read first cover letter or the online release notes).    SOFTWARE WARRANTY   F This software is provided by Compaq with a 90 day conformance warrantyF in accordance with the Compaq warranty terms applicable to the license	 purchase.   F The above information is valid at time of release. Please contact your8 local Compaq office for the most up-to-date information.   ORDERING INFORMATION   Software Licenses:  $    Unlimited System Use: QL-MV1A*-AA    Concurrent Use: QL-100AA-3B!    Concurrent 5 Pack: QL-100AA-3C "    Concurrent 10 Pack: QL-100AA-3D    "                                 30        Software Documentation:   2    Compaq Fortran 95/90 Documentation: QA-MV1AA-GZ/    Compaq Fortran 77 Documentation: QA-MV1AB-GZ   % Software Product Services: QT-MV1*-**   F *  Denotes variant fields. For additional information on available li-D    censes, services, and media, refer to the appropriate price book.  F The above information is valid at time of release. Please contact your8 local Compaq office for the most up-to-date information.   SOFTWARE PRODUCT SERVICES   D A variety of service options are available from Compaq. For more in-, formation, contact your local Compaq office.  F The above information is valid at time of release. Please contact your8 local Compaq office for the most up-to-date information.   TRADEMARK INFORMATION   O Copyright 2002 Compaq Computer Corporation Information Technologies Group, L.P.   H COMPAQ, the Compaq logo, Alpha, OpenVMS, VAX, VMS, and Tru64, are trade-I marks of Compaq Information Technologies Group, L.P. in the United States  and/or other countires.   C Confidential computer software. Valid license from Compaq or autho- E rized sublicensor required for possession, use or copying. Consistent H with FAR 12.211 and 12.212, Commercial Computer Software, Computer Soft-C ware Documentation, and Technical Data for Commercial Items are li- D censed to the U.S. Government under vendor's standard commercial li- cense.  E Compaq shall not be liable for technical or editorial errors or omis- D sions contained herein. The information in this document is providedC "as is" without warranty of any kind and is subject to change with- C out notice. The warranties for Compaq products are set forth in the   "                                 31       E express limited warranty statements accompanying such products. Noth- F ing herein should be construed as constituting an additional warranty.  B Microsoft, NT, and Windows are trademarks of Microsoft Corporation- in the United States and/or other countries.)   > Intel and KAP are trademarks or registered trademarks of Intel7 Corporation in the United States and/or other countries     > Oracle is a registered trademark and Oracle CDD/Repository and@ Oracle CDD/Administrator are trademarks of Oracle Corporation. )  6 CRAY is a registered trademark of Cray Research, Inc.)  @ IBM is a registered trademark of International Business Machines
 Corporation.)   A IEEE is a registered trademark of the Institute of Electrical and  Electronics Engineers, Inc.)  3 Linux is a registered trademark of Linus Torvalds.)   ? OpenMP is a trademark of the OpenMP Architecture Review Board.)     A UNIX is a trademark of The Open Group in the United States and/or  other countries.)   = All other product names mentioned herein may be trademarks or 5 registered trademarks of their respective companies.)                   "                                 32                                                                                       "                                 33