With Version 7.0 of the Intel compiler CO5BOLD compiles.
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
(includes SSE 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 directive are activated. Note that the
UIO routines should be compiled without OpenMP support (even if they do not contain
any OpenMP directives themselfes).
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):