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.