STATIC: Installation
 
 

The source code of static is designed to be compiled into a serial version for use on single processor PCs, workstations, and vector computers, or into a scalable parallel version for use on multiprocessor systems. Both versions use identical input files and produce essentially identical output. Users choose between the serial and scalable versions at build time by choosing the appropriate Makefile (see below).

static is written in Fortran-77, using MPI calls for scalable parallel performance, and a fake MPI library when running the serial version. In serial mode the code has been tested on a variety of CPUs, using various operating systems and compilers. It should be possible to run this code on any computer with a valid Fortran-77 compiler, provided the makefile is edited to reflect the appropriate compile and link options.

When compiled as a scalable parallel code, static uses the Message Passing Interface (MPI) standard for passing information between processors. It should, therefore, be quite portable between systems. The program runs on the following platforms:

Scalar Platforms

The static code should compile easily on other architectures using the native Fortran-77 compiler. The code makes calls to BLAS (Basic Linear Algebra Subprograms) and LAPACK (Linear Algebra PACKage). If these are not available on the target machine, you may try using the ATLAS (Automatically Tuned Linear Algebra Software) libraries. Alternatively, we provide Fortran versions of the necessary BLAS and LAPACK routines with our distribution.

The program will be tested on other computer architectures. Porting should involve only the changes in the makefile to reflect the system's MPI, Fortran, and linker installation. In the meantime, users are encouraged to attempt to port this code to other systems using MPI and Fortran-77.


Installing and compiling the code

The source code is found here Once you have this package, break out the individual files using the command

tar -xvf staticsource.tar.gz

Copy all the files including the files P1, P2, P3, and the appropriate makefile into a working directory.

There are three parameter files, P1, P2 and P3, which should be edited to reflect the type of calculation you wish to perform.

Now that the parameter files have been properly edited, the program may be compiled using make.

You will need the mpifake.h

If one of the makefiles matches your system, say for the SP2, you can directly compile the program:

$ make -f makefile.aix.parallel

works on an IBM. Note that many routines have multiple options, in which case you can specify one of them on the command line. For example, to use the ATLAS libraries with the Absoft Linux compiler, edit the NLIB statement in the makefile to point to the proper libraries, and then give the command

$ make -f makefile.absoft newblas

If your system does not appear on the list above, edit the makefile which most closely matches your system, and run make on that file. Alternatively, you can simply tell make what your specific Fortran compiler is by overriding the CFT parameter. The default value is CFT=f77, but if you are using, for example, GNU Fortran, you can specify the GNU compiler as follows:

$ make CFT=gfortran

When changing compilers or compiler options, it is best to do a clean command, e.g.

$ make -f makefile.absoft clean

before starting compilation. This removes all the old object files and forces recompilation of every routine. Note that you do not have to do a clean if you are only changing values of the P[1,2,3] files, as the makefile will determine which routines need to be recompiled.

More information and options for this program are contained in the INSTALLATION file contained in the distribution.

IMPORTANT: On a single processor machine static uses the mpifake.f file to mimic several MPI subroutines, and mpifake.h to mimic the mpif.h header file. In order for this to work your makefile must copy mpifake.h to mpif.h before any routines are compiled. See makefile.absoft for one way to accomplish this. Note that, as far as the code is concerned, mpif.h could be an empty file.


static Home Page   Introduction   Installation   List of Files   Usage   Input Files   Output Files   Trouble Shooting   Appendix