Next: About this document ...
Up: Mofia 2.0 Implementation Notes
Previous: Module dependencies
Installation of Mofia on a GNU/Linux system using the Absoft compiler was considerably more
involved than the installation on the alpha platform. This is not
so much a reflection on the Absoft compiler as a reflection of our
starting point.
With the alpha we started with a version working
with DEC f77, while the Linux version had been compiled with
g77. Absoft and g77 appeared to be incompatible
because of conflicts with the f2c library required by
g77. Therefore it was required that all the relevant packages -
YBOS, BRU, CFM, GPLOT and CERNLIB all be compiled with Absoft f90.
Subsequent to this, it was discovered that Absoft f90 code could be
successfully linked using libg2c.
Here are some of the required mods to make CERNLIB compile with Absoft:
- No inline comments in #include lines or use modified drivers
run_linux.c.cern invoking char *cpp = "/lib/cpp -P -traditional".
- ACTION=READ and FILE= in I/O (instead of DEC READONLY and NAME=)
- POINTER instead of
- Use READ(CHARVAR, format) i to convert numbers to char instead of
function calls.
- A dummy subroutine name is needed to force loading of BLOCK DATA
from libraries.
The required libraries (tarred and gziped) for cernlib can be obtained by
ftp from the e614 account on lin01.triumf.ca (usual password
construction) in the directory e614soft_f90/triumf. The cernlib
sources are in a separate file and should not be required. The
other libraries will be available from CVS.
The Absoft code has been compiled using some DEC conventions
rather than default Absoft ones. This is not necessary and perhaps
not desireable but it works. It does require more elaborate
Makefiles on GNU/Linux. These conventions are using the .f90
extension for source files with preprocessor directives (Absoft
standard is .F90) and object files produced with lower case with
underscore for entry names. With these conventions the source
files have the same names on both platforms, and source files needed
by the Absoft xfx debugger are produced.
I have found problems (segmentation errors) with zebra routines and therefore with
geant when compiled with f90 or even Absoft f77 or f2c. The g77
version seems to work reliably. The problems exist whether geant is
linked with the Absoft-compiled cernlib or the g77-compiled one and
libg2c. However, if the Zebra code is compiled with f90 but without
optimization (omitting the -B100 -O switches) it works fine. The
cern/2000a/libpacklib.a has had its zebra routines compiled in
this way and works with GEANT.
Next: About this document ...
Up: Mofia 2.0 Implementation Notes
Previous: Module dependencies
Art Olin
2001-04-20