With Version 7.0 and 7.1 of the Intel compiler CO5BOLD compiles. Version 8.0 still causes touble.
The native format on Intel machines is
big_endian. The appropriate UIO modules are
big_endiancase. The compiler is called with
Important switches are:
-Vaxlib: Link proper library to make the machine understand e.g.
fpp: Activate the preprocessor (silently).
-O3: General optimization flag.
-tpp6 -xK: Optimization especially for Pentium III (and Athlon, includes SSE vector commands).
-tpp7 -xW: Optimization especially for Pentium IV (includes SSE2 vector commands).
-ip: Optimization: activate interprocedural optimization within each source file. This enables inlining.
-DMSrad_raytas=2: Optimization: choose non-default version of loop in
SUBROUTINE raytasin file
MSrad3D.F90. See Sect. 3.7.
-Drhd_shortrad_dir1_l01=1: Optimization: Transpose arrays and use routine
rhd_shortrad_dir3for rays in x1 direction. See Sect. 3.7.
-openmp: Parallelization: OpenMP directives are activated. Note that the UIO routines should be compiled without OpenMP support (even if they do not contain any OpenMP directives themselves).
-i_dynamic: Helpful against ``undefined reference to `
Using the Intel compiler there is a problem with the UIO modules when OpenMP is activated. This a bit weird because the UIO modules do not contain any OpenMP directives. However, this means that OpenMP can be safely deactivated for these modules. A proposed compiling sequence is (all modules activated):
In some cases it migh be helpful to set
when encountering problems with OpenMP ,see the Release Notes of the Intel compiler.