Compaq Fortran

Release Notes for Compaq Tru64 UNIX Systems


April 2001

This document contains information about Compaq Fortran for Compaq® Tru64tm UNIX® (formerly DIGITAL® UNIX) Alpha Systems.

Software Version: Compaq Fortran
Version 5.4A

Compaq Computer Corporation
Houston, Texas


First release, June 1994
Revision, September 1994 Revision, December 1994 Revision, March 1995 Revision, May 1995 Revision, March 1996 Revision, December 1996 Revision, September 1997 Revision, March 1998 Revision, December 1998 Revision, July 1999 Revision, December 1999 Revision, July 2000 Revision, September 2000 Revision, January 2001 Revision, April 2001

Compaq Computer Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description.

Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Compaq or an authorized sublicensor.

Compaq shall not be liable for technical or editorial errors or omissions contained herein. The information in this document is subject to change without notice.

© 2001 Compaq Computer Corporation. All Rights Reserved.

COMPAQ, the Compaq Logo, DEC, DECnet, DIGITAL, VAX, and VMS are registered in the U.S. Patent and Trademark Office.

AlphaGeneration, AlphaServer, Bookreader, DECchip, DEC Fortran, DECwindows, DEC FUSE, DECwindows, OpenVMS, Tru64, ULTRIX, and VAX FORTRAN are trademarks of Compaq Computer Corporation.

Microsoft, PowerStation, NT, and Windows are either trademarks or registered trademarks of Microsoft Corporation.

CRAY is a trademark of Cray Research, Inc.
IEEE is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc.
Linux is a trademark of Linus Torvalds.
OpenMP is a trademark of the OpenMP Architecture Review Board.
PostScript is a trademark of Adobe Systems, Inc.
Motif, OSF, and OSF/1 are trademarks of the Open Software Foundation, Inc.
UNIX is a trademark in the United States and other countries of The Open Group.

All other trademarks and registered trademarks are the property of their respective holders.

This document is available on CD-ROM.

Contents


Chapter 1
Compaq Fortran Version 5.4A Release Notes

This chapter contains release notes for Compaq Fortran Version 5.4A (changes for this release are described in Section 1.5).

This chapter contains the following sections:

1.1 Product Terminology Changes

This document uses the following new or changed product names:

1.2 Overview

Compaq Fortran conforms to the Fortran 95 Standard, Fortran 90 Standard, and previous Fortran standards. It also includes support for High Performance Fortran (HPF), and contains many but not all of Compaq Fortran 77's extensions to the FORTRAN-77 standard. Except in rare instances, a valid FORTRAN-77 program is also a valid Fortran 95 program.

Compaq Fortran fully supports the Fortran 95 Standard (ISO/IEC 1539-1:1997(E)) and the multi-vendor OpenMPtm Fortran Specification, including support for directed parallel processing using OpenMP directives on shared memory multiprocessor systems.

The Compaq Fortran User Manual for Tru64 UNIX and Linux Alpha Systems contains a detailed description of Compaq Fortran 77 source language compatibility. Provided the types and shapes of the actual and formal arguments agree, routines compiled with Compaq Fortran 77 can call (or be called by) routines compiled with Compaq Fortran.

1.3 Installation and Minimum Operating Systems Version

Compaq Fortran Version 5.4A requires Version 4.0 (or later) of the Compaq Tru64 UNIX operating system. Use of non-NUMA parallel features requires Version 4.0D (or later) of the Compaq Tru64 UNIX system. Use of NUMA (Non-Uniform Memory Access) parallel features requires Version 5.1 (or later) of the Compaq Tru64 UNIX operating system.

For a detailed description of the installation procedure, see the Compaq Fortran Installation Guide for Tru64 UNIX Systems.

You may also send comments, questions and suggestions about the Compaq Fortran product to the following mail address:


  fortran@compaq.com 

Please note that this address is for informational inquiries and is not a formal support channel.

If you have Internet access and a World Wide Web (WWW) browser, you are welcome to view the Compaq Fortran home page, located at:

http://www.compaq.com/fortran

1.4 Software Versions

This section describes the contents of Compaq Fortran Version 5.4.

1.4.1 Contents of the Version 5.4A kit

The Compaq Fortran Version 5.4A kit consists of the following setld sets:

The Compaq Fortran DFABASE and DFACOM subsets include the Compaq Fortran 95/90 and Compaq Fortran 77 compilers and associated documentation. The DFADOC subset contains the compiler command manpages and release notes.

The XMD subsets contain the CXML routines, included in the Compaq Fortran kit as external routines.

CXML is distributed as a Development kit that allows you to link an application program with the CXML library and then run the executable image. No license is required. The CXML subsets are independent from one another, except that the user must link in the CXML library (either serial or parallel) after linking with the SCIPORT library.

1.4.2 Contents of High Performance Fortran in Version 5.4A

The following new Compaq Fortran features are now supported for HPF programs:

The HPFLIBS subset contains High Performance Fortran (HPF) support and contains:

In order to use the HPF Scalar libraries, the HPFLIBS subset must be installed.

1.4.3 Miscellaneous Information about the Version 5.4A Kit

For more information including disk space requirements, see Section 3.1.1.

If you need to delete an older version of the Compaq Fortran Run-Time Library, delete the older subset before you install a new version. If you have installed multiple versions of the Run-Time Library and you delete one, you must reinstall the desired Run-Time Library version before you can correctly link Fortran programs.

The Compaq Fortran kit again includes the OTABASE subset (Compaq Compiled Code Support Library). The new OTABASE subset supports the use of parallel directives.

The following changes occurred to the OSFCMPLRS operating system subset starting with Compaq Tru64 UNIX (formerly DIGITAL UNIX) Version 4.0:

1.5 New Features, Corrections, and Known Problems in Version 5.4A

Version 5.4A is a minor release that includes corrections to problems discovered since Version 5.4 was released and certain new features.

For the Version 5.4A subset numbers, see Section 1.4.

The following topics are discussed:

1.5.1 Version 5.4A New Features

The following new Compaq Fortran features are now supported:

From DFA540 V5.4-1265-46ABA to DFA541 V5.4A-1472-46B2F, the following corrections have been made:

1.5.2 Version 5.4 New Features

The following new Compaq Fortran features are now supported:

1.5.3 Version 5.4 Important Information

Some important information to note about this release:

1.5.4 Version 5.4 Corrections

From DFA531 ECO 01 final X5.3-1120 -44A7B to DFA540 FT1 T5.4-1130-46A7R, the following corrections have been made:

From DFA540 FT1 T5.4-1130-46A7R to DFA540 FT2 T5.4-1170-46A97, the following corrections have been made:

From DFA540 FT2 T5.4-1170-46A97 to DF540 FT3 T5.4-1195-46AAC, the following corrections have been made:

From DFA540 FT3 T5.4-1195-46AAC to DFA540 V5.4-1265-46ABA, the following corrections have been made:

From DFA540 V5.4-1265-46ABA to DFA540 V5.4-1283-46ABA, the following corrections have been made:

1.5.5 Version 5.4 Known Problems

The following known problems exist with Compaq Fortran Version 5.4:

1.6 Known Limitations

The following limitations exist in Version 5.4A:

1.7 New Features, Corrections, and Known Problems in Version 5.3

Version 5.3 is a minor release that includes corrections to problems discovered since Version 5.2 was released and certain new features.

The following topics are discussed:

1.7.1 Version 5.3 ECO 02 New Features

The following new Compaq Fortran features are now supported:

From DFA531 ECO 01 X5.3-1120-44A7B to DFA532 ECO 02 X5.3-1155-44A8I, the following corrections have been made:

1.7.2 Version 5.3 ECO 01 New Features

The following new Compaq Fortran features are now supported:

The following new f90 command options are now supported:

Some important information to note about this release:

From released version V5.3-915-449BB to ECO 01 FT1 X5.3-953-44A17, the following corrections have been made:

From DFA531 ECO 01 FT1 X5.3-953-44A17 to FT2 T5.3-1034-44A3V, the following corrections have been made:

From DFA531 ECO 01 FT2 T5.3-1034-44A3V to final X5.3-1120 -44A7B, the following corrections have been made:

1.7.3 Version 5.3 ECO 01 HPF New Features

The following information pertains to HPF using MPI.

Overview of HPF and MPI

The Compaq Fortran compiler now generates code that uses MPI as its message-passing library instead of PSE's HPF-specific support. The compiler provides a choice of three different variants of MPI: one for Compaq's SC supercomputer systems, one that supports shared-memory and Memory Channeltm interconnects, and public domain MPI for other interconnects that include Ethernet and FDDI.

It is now possible to write HPF programs that also call or use MPI (such as distributed-memory libraries that invoke MPI). The compiler's MPI runtime library uses its own private MPI "communicator" so it won't interfere with other MPI code. A new example program, /usr/examples/hpf/call_mpi.f90, illustrates this.

You enable the new MPI-based runtime library, that supports Compaq Fortran's HPF directives, by adding the -wsf_target option. This option, which requires an argument, belongs in the compilation and link commands.

Compiling HPF Programs for MPI

You must now specify which variant of MPI support you wish to use for HPF programs by including the option -wsf_target with an MPI selection (argument target ) in the command to the f90 compiler. An example is next that selects Compaq MPI.


% f90 -wsf 2 -wsf_target cmpi -c lu.f90

An expansion of this example is next that invokes both the compiler and linker.


% f90 -wsf 2 -wsf_target cmpi -o lu lu.f90

The values of target in the option -wsf_target target appear next with their explanations.
target Explanation
smpi SC (Quadrics) MPI
This MPI comes installed on SC-series systems. It works with the SC's RMS software that provides a set of commands for launching MPI jobs, scheduling these jobs on SC clusters, and performing other miscellaneous tasks.
cmpi Compaq MPI
This MPI is a version that is specifically tuned for Alpha systems. It is distributed as a Compaq layered product. Compaq MPI supports only Memory Channel clusters and shared-memory (SMP) machines.
gmpi Generic MPI
This target is for use with MPICH V1.2.0 or other compatible libraries. MPICH is a public domain implementation of the MPI specification that is available for many platforms. You can obtain this implementation from http://www-unix.mcs.anl.gov/mpi/mpich/. MPICH V1.2.0 supports many interconnection networks including Ethernet, FDDI, and other hardware. Using Compaq Fortran and HPF with this MPI is, officially, not supported. Compaq does not guarantee support of problems caused by specifying -wsf_target gmpi . However, Compaq remains quite interested in receiving problem reports and will attempt to respond to them.

If the command to the f90 compiler includes -wsf_target target , then the command must also include -wsf .

Another way of specifying the version of MPI to the compiler, instead of using the option -wsf_target , is to set the environment variable DECF90_WSF_TARGET to a value in the first column of the previous table. For example, the command


% f90 -wsf 2 -wsf_target cmpi -c lu.f90

is equivalent to the commands


% setenv DECF90_WSF_TARGET cmpi
% f90 -wsf 2 -c lu.f90

If an f90 command contains -wsf_target with a value (such as cmpi) and environment variable DECF90_WSF_TARGET is set to a different value, then the value in the f90 command overrides the value of the environment variable.

Using the environment variable to select the desired MPI variant is the recommended method. This will require the fewest changes to existing scripts for building HPF programs, and will allow users generating code for more than one MPI variant to do so more easily. Compaq additionally recommends setting the environment variable in your shell initialization file (e.g. .cshrc if you use 'csh'), particularly if you usually use only one MPI variant.

A table, showing all changes to HPF-related compiler options between Fortran V5.3 and V5.3 ECO 01, is next.
Fortran V5.3 Fortran V5.3 ECO 01
-assume bigarrays No change
-assume nozsize No change
-hpf_matmul Deleted
-nearest_neighbor No change
-nowsf_main No change (but currently does not work)
-pprof Use only with -wsf_target pse
-show hpf* No change
-show wsfinfo No change
-wsf No change
--- -wsf_target target

Linking HPF Programs with MPI

You must now specify which variant of MPI support you wish to use for HPF programs by including the option -wsf_target with an MPI selection (argument target ) in the link command. An example is next.


% f90 -wsf 2 -wsf_target cmpi -o lu lu.o

The values of target come from the table in the section "Compiling HPF Programs for MPI".

If you specified generic MPI at compilation time, either by including the -wsf_target gmpi option or by setting the environment variable DECF90_WSF_TARGET to gmpi, you must specify a path to the desired generic MPI library during linking. Do this in one of these ways:

An example of a link command for a generic MPI library is next.


% f90 -wsf 2 -wsf_target gmpi -o lu lu.o /usr/users/me/libmpich.a

In addition, you must have the Developer's Tool Kit software installed on your computer to link properly with the option -wsf_target gmpi .

Finally, programs linked with -wsf_target and an MPI target must be linked with -call_shared (which is the default); the -non_shared option does not link correctly.

Running HPF Programs Linked with MPI

The dmpirun command executes program files created with the -wsf_target cmpi option. Include the -n n option in the command line where n is the same value of -wsf n in the compilation command line. Or, if no value was given with the -wsf option, then set n to the desired number of peers. Also include the name of the program file.

An example is next where the compilation command line included -wsf 4 and the name of the program file is heat8.


% dmpirun -n 4 heat8

If your AlphaServer SC system is running with Revision A of the Quadrics switch, your boot log will contain the message:


  elan0: Rev A Elite network detected - disabling adaptive routing (1) 

To make MPI programs (including HPF programs generated with the "-wsf_target smpi" option) run properly with Revision A hardware, you need to set the LIBELAN_GROUP_HWBCAST environment variable to DISABLE; for example, from csh:


% setenv LIBELAN_GROUP_HWBCAST DISABLE

The manpage dmpirun contains a full description of this command.

The prun command executes program files created with the -wsf_target smpi option. Include the -n n option in the command line where n is the same value of -wsf n in the compilation command line. Or, if no value was given with the -wsf option, then set n to the desired number of peers. Also include the name of the program file.

An example is next where the compilation command line included -wsf 4 and the name of the program file is heat8.


% prun -n 4 -N 4 heat8

The mpirun command executes program files created with the -wsf_target gmpi option. Include the -np n option in the command line where n is the same value of -wsf n in the compilation command line. Also include the name of the program file. The mpirun command varies according to where you installed the generic MPI.

An example is next where the compilation command line included -wsf 4 and the name of the program file is heat8.


% /usr/users/me/mpirun -np 4 heat8

In the /usr/examples/hpf directory, there is a sample script that will launch an HPF program for any variant of MPI. This script, called "hpfrun", will even determine the number of processors a source program was compiled for (if that was specified at compile time), and invoke the proper MPI run command with the number of processors specified. Portions of the script, or the entire script, may be useful for users automating the building and running of HPF programs.

Cleaning up After Running HPF Programs Linked with MPI

Execution of the dmpirun command (but not the prun and mpirun commands) may leave various system resources allocated after the program has completed. To free them, give the mpiclean with no arguments. An example is next.


% mpiclean

Changing HPF Programs for MPI

There two changes you should make to Fortran source files before compiling them for MPI. If a module contains an EXTRINSIC (HPF_LOCAL) statement and it executes on a system different from peer 0, then its output intended for stdout may (depending on the variant of MPI used) go instead to /dev/null. Change such modules or your execution commands to have the extrinsic subroutine do input/output only from peer 0.


Next Contents