This file provides very provisional installation instructions for the Melkes library package. The instructions are provisional for several reasons: The installation has been done on only a few systems. The author is not acquainted with the various automatic configuration tools, or with common standards for building Fortran-90 libraries on multiple platforms. It is a certainty that these installation instructions will be revised in the course of 2001 based on outside advice. At the end of this file are found alternative instructions for a basic compile-and-run of an entire code, without creating a library. For now, here are the tentative instructions for library creation. Let the main melkes directory, in which lives this INSTALL file, be called $MELKES. The library source code is found in $MELKES/src. Do the following % cd $MELKES/src % make all 'Make' must invoke the GNU make command; this may be found in some location such as /usr/local/gnu, or it may have the name 'gmake' instead of 'make'. If we are on a system for which the Makefile is successful then this action will produce in the directory $MELKES/src a bunch of object (*.o) files, a corresponding bunch of module information (*.mod) files, and a library file "libmelkes.a". The library and module information files should then be moved to some suitable library directory, but for now they are just left in $MELKES/src. The Makefile in $MELKES/src also allows % make obj to make only the object files, and % make clean to clean the directory, which implies removal of all *.o, *.mod and *.a files. If installation is successful then it should be possible to compile and run the testing program $MELKES/mtest.F90 and the timing program $MELKES/mtime.F90. For illustration, program mtest.F90 would be compiled, linked and executed as follows. % cd $MELKES % $FC -o mtest $FFLAGS -Isrc mtest.F90 -Lsrc -lmelkes % ./mtest Here, $FC is the Fortran-90/95 compiler command and $FFLAGS are the standard optimization flags. Explicitly, I have found the following to work on some systems at least. On SunOS systems $FC = f95, or $FC = /opt/SUNWspro/bin/f95 $FFLAGS = -fast On Compaq OSF1 systems $FC = f95 $FFLAGS = -O On IBM AIX systems $FC = xlf95 $FFLAGS = -O4 -D__ibm (The __ibm macro is required for some conditional compilations) On SGI IRIX and IRIX64 systems $FC = f90 $FFLAGS = -O -macro_expand On Cray Unicos systems --- I have not yet done a successful library build on Cray Unicos. However, the appropriate compile options are $FC = f90 $FFLAGS = -F -DMELKES_DONT_WANT_R4 (The "MELKES_DONT_WANT_R4" macro specifies that we don't want 32-bit versions of the codes.) Here follow emergency instructions if the library build should fail. It is possible, and not too expensive, to bypass the library build and just compile the whole melkes package together with a main program. Examples are indicated in the header section to the main programs $MELKES/mtest.F90 and $MELKES/mtime.F90. By un-commenting a bunch of "include" directives at the top of those main programs, the whole Melkes suite of codes gets pre-pended to the main program and the main program and library are compiled together to provide just the executable. The appropriate commands, after editing mtest.F90 and/or mtime.F90 to activate the "include" lines, are then % cd $MELKES % $FC -o mtest $FFLAGS -Isrc mtest.F90 % ./mtest and likewise for mtime.F90. The compiler command and flags are as indicated earlier for each of the mentioned systems. Bas Braams, Oct 8, 2001.