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
little_endian.
With
big_endian.
The appropriate UIO modules are uio_mac_intel_module.f90 in the little_endian
case and uio_mac_sun_module.f90 in the big_endian case.
The compiler is called with ifc.
Important switches are:
-Vaxlib: Link proper library to make the machine understand
e.g. call flush(6).
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 raytas in file MSrad3D.F90.
See Sect. 3.7.
-Drhd_shortrad_dir1_l01=1: Optimization:
Transpose arrays and use routine rhd_shortrad_dir3 for 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 `__ctype_b''' errors.
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.