Known problems when installing
- Fails to compile with OpenMP on Brodie (SX8 at l'IDRIS). When compiling the GCM in OpenMP mode (alone or in mixed MPI/OpenMP mode), compilation fails when compiling routine
physiq
with the following error message :f90 fatal: Limitation : memory could not allocate.
sxf90 fatal : /SX/usr/lib/f90com command error : 1During compilation, then compiler needs some space to generate intermediate elementsle. Available space and memory are (to some extent) those of the user and are limited (the
ulimit -a
command will give you these limits). For instance on Brodie (the SX8 at IDRIS) :$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) 20971520
max locked memory (kbytes, -l) 8192
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) 3600
max user processes (-u) 200
virtual memory (kbytes, -v) 1048576The allowed virtual memory is to limited for the compilation of the (huge)
physiq
routine. Fortunately, users can (to some extent) change theses limits and thus increase virtual memory, for instance with :ulimit -v 2000000
Which solves the problem.
-
When using the
-arch linux-32bit
option ofmakelmdz_fcm
, you get many error messages of the likes of :PGF90-S-0450-Argument number 4 to ymds2ju: kind mismatch
(linux-32bit_96x72x19_t4_phylmd_seq/.config/ppsrc/dyn/bilan_dyn.f:
354)IOIPSL has probably been compiled with option -r8 (I.e. reals are by default set as double precision; this is the default when installing the model on Linux machines). Add this same option to line
%BASE_FFLAGS
ofarch-linux-32bit.fcm
. You must also have aNC_DOUBLE
parameter on line%FPP_DEF
. -
With the
-arch linux-32bit
option ofmakelmdz_fcm
, if you get error messages like :/usr/lib/libc.a(iofclose.o):(.eh_frame+0x11): undefined reference to
`__gcc_personality_v0'Remove option
-Wl,-Bstatic
from line%LD_FLAGS
inarch-linux-32bit.fcm
. -
With the
-arch linux-32bit
option ofmakelmdz_fcm
, if you get error messages like :PGF90-S-0069-Illegal implied DO expression
(linux-32bit_32x24x9_phylmd_seq/.config/ppsrc/phys/regr_lat_time_climoz_m.f90:
119)You probably have an old version of the
pgf90
compiler, like version 6 or an earlier version. The error is due to a bug in the compiler, which has been fixed in more recent versions. - If you get the following erors when running
makelmdz_fcm
:ERROR: bld.cfg: LINE 44:
It is probably because you are using version 1.3 of FCM or an even more recent version. Install and use version 1.2.
dir::lib: label not recognised.
ERROR: bld.cfg: LINE 45:
dir::bin: label not recognised. - If, with the PGI Fortran compiler, you obtain during compilation error messages of the likes of :
Lowering Error: unexpected data type at load
This seems to result from a bug in the compiler, which has been corrected with version 9.0.4 of that compiler.
[ast=0,asttype=0,datatype=0]
Lowering Error: unknown source type for conversion to integer
[ast=4,asttype=1,datatype=0]
PGF90-F-0000-Internal compiler error. Errors in Lowering 6
(libo/AMD64_CICLAD_64x44x40_phylmd_seq/.config/ppsrc/phys/regr_lat_time_climoz_m.f90: 330)
PGF90/x86-64 Linux 7.1-6: compilation aborted - Under Mac OS X, with option
-arch gfortran -parallel omp
ofmakelmdz_fcm
, you have the following error message :Undefined symbols:
This is a know issue when compiling in OpenMP with
"___emutls_get_address", referenced from:
...
ld: symbol(s) not foundgcc
under Mac OS X, independently from LMDZ. This problem occurs when using thethreadprivate
directive. There is no easy solution to this problem (note that the program installs and runs with no problem in sequential mode).