The memory requirement is largely dependent on the array sizes required.
See RFM Memory Size for details.
In most situations, all that is then needed to compile the RFM is
to change to the directory containing the source code and then type
While the above should always work, Gareth Thomas (Oxford) suggests the
following for improved performance:
The version of ifort I'm using is 9.0.
ifort also has optimizations for other type CPU types (like SSE), and
optimizes for "Pentium 4" processors by default. I think SSE and SSE2
are AMD specific extensions, but I'm not sure.
[NB: this compiler requires RECLEN=22]
The NAG compiler is known to have problems with a couple of features
of the RFM source code. These have been changed in RFM v4.27 but in earlier versions you'll
need to make the following changes yourself.
Specifically, the use of the intrinsic function
DFLOAT (which should be replaced by DBLE)
and the use of 'X' in format fields (which should be replaced
by '1X').
11FEB09: Martin Kaufmann (FZ Juelich) has investigated using RFM v4.25
with different compilers:
[Report]
Any queries or reports on possible new bugs
should be addressed to: Unpacking the RFM tar file
The source code is distributed as a compressed (with gzip)
tar file.
To unpack the code, place the tar file (eg named
rfm_v4.28.tar.gz) into an empty directory and type
This will expand to produce a single program
module (rfm.for) plus about 250
subroutines (*.for) and include files (*.inc).
Compiling the RFM
There is a single machine-dependent part of the source code which is
the RECL parameter in the FORTRAN OPEN
statement required when opening
the (direct access) HITRAN binary file.
This usually has the value 88 although Alpha machines
and the Intel FORTRAN compiler require a value 22. The appropriate
value RECLEN is set in the include file reclen.inc.
Check that this is set to the correct value for your machine before
compiling (if in doubt, 88 is a good bet).
which will create an executable called rfm
On a machine with sse2 (which will be one of the flags listed under
/proc/cpuinfo), compiling the RFM with:
produces an executable which runs approximately twice as fast as that
produced by "g77 -O2 *.for".
Making Local Modifications
There is a CHARACTER*11 field VERSN (set
as the first executable statement in the main program module rfm.for)
which is written as part of the output file
headers. To allow traceability
between spectra generated by different versions of the RFM code,
any local modifications to the RFM code should be reflected in this field.
E.g., to represent a local Oxford modification 13 to the
standard version '4.25', a suggested change is:
Queries & Bug Reports
A list of all reported bugs (and fixes) is maintained on
www.atm.ox.ac.uk/RFM/rfm_bugs.html,
and the descriptions of
each Driver Table Section and
Flag also include any related bugs.
A.Dudhia
AOPP, Clarendon Laboratory
Parks Rd,
Oxford OX1 3PU
England
email: dudhia@atm.ox.ac.uk