30 |
FFLAGS='-Pstack -sxace' |
FFLAGS='-Pstack -sxace' |
31 |
# automatic inlining for routines < 50 lines (default) and in the same file |
# automatic inlining for routines < 50 lines (default) and in the same file |
32 |
# where they are to be inlined (we do not have too many of those) |
# where they are to be inlined (we do not have too many of those) |
33 |
FFLAGS=$FFLAGS' -pi' |
FFLAGS="$FFLAGS -pi" |
34 |
|
|
35 |
# This is how you inline external routines if they are longer than 50 lines |
# This is how you inline external routines if they are longer than 50 lines |
36 |
# and live in a separate file (the actual routines depend on the packages |
# and live in a separate file (the actual routines depend on the packages |
40 |
FEXTRAFLAGS='-pi auto fullmsg exp=barrier,ucase,timestep_tracer,ilnblnk,ifnblnk,cycle_tracer,pressure_for_eos,sw_temp,sw_ptmp,gsw_pt_from_ct rexp=fool_the_compiler,fool_the_compiler_r8,bar2,sw_adtg,gsw_ct_from_pt,gsw_gibbs_pt0_pt0 expin=barrier.f,timestep_tracer.f,fool_the_compiler.f,bar2.f,utils.f,cycle_tracer.f,pressure_for_eos.f,seawater.f,gsw_teos10.f' |
FEXTRAFLAGS='-pi auto fullmsg exp=barrier,ucase,timestep_tracer,ilnblnk,ifnblnk,cycle_tracer,pressure_for_eos,sw_temp,sw_ptmp,gsw_pt_from_ct rexp=fool_the_compiler,fool_the_compiler_r8,bar2,sw_adtg,gsw_ct_from_pt,gsw_gibbs_pt0_pt0 expin=barrier.f,timestep_tracer.f,fool_the_compiler.f,bar2.f,utils.f,cycle_tracer.f,pressure_for_eos.f,seawater.f,gsw_teos10.f' |
41 |
# additional candidates for inlining are parts of packages that are not |
# additional candidates for inlining are parts of packages that are not |
42 |
# always used, therefore use this at your own risk: |
# always used, therefore use this at your own risk: |
43 |
#FEXTRAFLAGS=${FEXTRAFLAGS}' -pi fullmsg exp= expin=' |
#FEXTRAFLAGS="${FEXTRAFLAGS} -pi fullmsg exp= expin=" |
44 |
# |
# |
45 |
# Note: explicit inlining requires that all files (*.f) are already |
# Note: explicit inlining requires that all files (*.f) are already |
46 |
# available, so that the building sequence should be |
# available, so that the building sequence should be |
49 |
#-- additional options: |
#-- additional options: |
50 |
# include a formated code listing and a listing of compiler transformations |
# include a formated code listing and a listing of compiler transformations |
51 |
# in *.L files |
# in *.L files |
52 |
#FFLAGS=$FFLAGS' -R2' |
#FFLAGS="$FFLAGS -R2" |
53 |
# assume a loop count of 5,000,000 instead of estimating it from field |
# assume a loop count of 5,000,000 instead of estimating it from field |
54 |
# declarations and include details messages about vectorization (if -R2 |
# declarations and include details messages about vectorization (if -R2 |
55 |
# specified) |
# specified) |
59 |
# default automatic optimization level |
# default automatic optimization level |
60 |
#FOPTIM='-C vopt' |
#FOPTIM='-C vopt' |
61 |
|
|
62 |
|
# these files require lower optimization |
63 |
|
NOOPTFILES='ini_forcing.F mom_calc_visc.F' |
64 |
|
NOOPTFILES="$NOOPTFILES ptracers_dyn_state_data_mod.F ptracers_dyn_state_mod.F" |
65 |
if test "x$IEEE" = x ; then |
if test "x$IEEE" = x ; then |
66 |
# highest automatic optimization level, handle with care |
# highest automatic optimization level, handle with care |
67 |
FOPTIM='-C hopt' |
FOPTIM='-C hopt' |
68 |
# these files require lower optimization |
NOOPTFLAGS='-C vopt' |
|
NOOPTFILES='ini_forcing.F mom_calc_visc.F' |
|
|
NOOPTFLAGS='-C vopt' |
|
69 |
else |
else |
70 |
FOPTIM='-C vsafe' |
if test "x$DEVEL" = x ; then #- no optimisation + IEEE : |
71 |
|
FOPTIM='-C vsafe' |
72 |
|
NOOPTFLAGS=$FOPTIM |
73 |
|
else #- development/check options: |
74 |
|
# enable runtime checking of array bounds and arguments of routines |
75 |
|
FOPTIM='-C vsafe -g -eC -eP' |
76 |
|
NOOPTFLAGS=$FOPTIM |
77 |
|
# remove extra flags and explicit inlining |
78 |
|
FEXTRAFLAGS= |
79 |
|
fi |
80 |
fi |
fi |
81 |
|
|
82 |
# awi specific paths and stuff (available only after "module load sxnetcdf") |
# awi specific paths and stuff, available only after "module load sxnetcdf" |
83 |
INCLUDES="-I/SX/usr/include -I${SX_NETCDF_INC}" |
INCLUDES="-I${SX_NETCDF_INC}" |
84 |
LIBS="-L${SX_NETCDF_LIB} -lnetcdf" |
LIBS="-L${SX_NETCDF_LIB} -lnetcdf" |
85 |
|
|
86 |
if test "x$MPI" = xtrue ; then |
if test "x$MPI" = xtrue ; then |
87 |
# this is needed for compiling on the compute nodes |
# path to mpi header files, available only after "module load sxmpi" |
88 |
INCLUDES="$INCLUDES -I${SX_BASE_MPI}/include" |
INCLUDES="$INCLUDES -I${SX_BASE_MPI}/include" |
89 |
fi |
fi |
90 |
|
|