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