7 |
# export OMP_SLAVE_STACK_SIZE=400m |
# export OMP_SLAVE_STACK_SIZE=400m |
8 |
# export OMP_NUM_THREADS=2 |
# export OMP_NUM_THREADS=2 |
9 |
# |
# |
10 |
|
# Note: use just -O2 optimisation to avoid some wierd problems with -O3 |
11 |
|
# on aces (open64/4.1 & 4.2) (ideal_2D_ocean) |
12 |
|
|
13 |
CC=opencc |
CC=opencc |
14 |
FC=openf90 |
FC=openf90 |
18 |
DEFINES='-DWORDLENGTH=4 -DUSE_OMP_THREADING' |
DEFINES='-DWORDLENGTH=4 -DUSE_OMP_THREADING' |
19 |
CPP='cpp -traditional -P' |
CPP='cpp -traditional -P' |
20 |
MAKEDEPEND=/usr/X11R6/bin/makedepend |
MAKEDEPEND=/usr/X11R6/bin/makedepend |
21 |
NOOPTFLAGS='-O0 -m32 -g -openmp' |
NOOPTFLAGS='-O0 -g' |
22 |
NOOPTFILES='' |
# to avoid a bug in ealier version (4.1) of compiler with openMP: |
23 |
|
NOOPTFILES='mon_set_iounit.F mon_init.F' |
24 |
|
|
25 |
if test "x$DEVEL" != x ; then |
if test "x$DEVEL" != x ; then |
26 |
FFLAGS='-m32 -convert big_endian -openmp -ffortran-bounds-check -trapuv -g' |
FFLAGS='-m32 -convert big_endian -openmp -ffortran-bounds-check -trapuv -g' |
30 |
|
|
31 |
if test "x$IEEE" = x ; then |
if test "x$IEEE" = x ; then |
32 |
# No need for IEEE-754 |
# No need for IEEE-754 |
33 |
FOPTIM='-O3 -LNO:fusion=2 -OPT:roundoff=1:IEEE_arithmetic=3 -OPT:early_mp=ON' # -funsafe-math-optimizations' |
FOPTIM='-O2 -LNO:fusion=2 -OPT:roundoff=1:IEEE_arithmetic=3 -OPT:early_mp=ON' # -funsafe-math-optimizations' |
34 |
else |
else |
35 |
# Try to follow IEEE-754 |
# Try to follow IEEE-754 |
36 |
FOPTIM='-O3 -LNO:fusion=2 -OPT:roundoff=0:IEEE_arithmetic=1 -fmath-errno -fno-fast-math -OPT:early_mp=ON' |
FOPTIM='-O2 -LNO:fusion=2 -OPT:roundoff=0:IEEE_arithmetic=1 -fmath-errno -fno-fast-math -OPT:early_mp=ON' |
37 |
fi |
fi |
38 |
|
|
39 |
F90FLAGS=$FFLAGS |
F90FLAGS=$FFLAGS |
40 |
F90OPTIM=$FOPTIM |
F90OPTIM=$FOPTIM |
41 |
CFLAGS='-O3 -m32 -openmp' |
CFLAGS='-O2 -m32 -openmp' |
42 |
GSLLIB='-lgsl -lgslcblas' |
GSLLIB='-lgsl -lgslcblas' |
43 |
|
|
44 |
if [ "x$NETCDF_ROOT" != x ] ; then |
if [ "x$NETCDF_ROOT" != x ] ; then |