Overview


Numfort is a library for numerical computations in linear algebra,
signal processing and telecommunications, written in modern Fortran.

The function API is the same as that of Matlab, so that, you can do
such things in Fortran itself:

t = linspace(-10,10,0.01)
y = sin(t) + cos(2*t)
z = freqz(y)

A = randn(10,5)
B = svd(A)
C = cdf_calc(A(:,1))


INSTALLATION
-------------

Pre-requisites:
 *  Fortran-2008 compiler. GNU Fortran, Intel Fortran are ok.
 *  Unix-like OS ( we only need 'mkdir', 'rm' and 'ar' commands )

The build system is written in Fortran itself.
Unpack the .tar.gz or .zip archive you downloaded.
Pick a compiler of your choice.

First compile "build.f90" in the topmost folder

[shell] $ cd numfort/
[shell] $ gfortran  build.f90 -o build       # any Fortran compiler is OK

If the above command itself fails, then you are out of luck.
Numfort makes use of F2008 features, which are also used inside of build.f90.
So, if build.f90 cannot be compiled, you cannot compile libnumfort.a either.

The above command creates an executable named "build" (or build.exe).
Use that to build the library now

[shell] $ ./build lib --compiler gfortran       # any compiler in your $PATH is ok

This creates libnumfort.a in the lib/ directory. For more help and options:

[shell] $ ./build help

There are also tests to verify the library routines. These are useful, for ex, 
to show how to link to the library.

# Assuming liblapack.a and libblas.a are in /usr/local/lib
[shell] $ ./build test --compiler gfortran --libs " -llapack -lblas "        \
                       --path  /usr/local/lib

You can use Intel MKL as well:
[shell] $ ./build test --compiler ifort --libs " -lmkl_sequential -lmkl_core -lmkl_gf_lp64 "

Additional compilation flags, include paths, etc. can be passed via environment
variables F90FLAGS and LDFLAGS.

Enjoy :)

--Satish.BD    < bdsatish .AT. gmail .DOT. com >