/[MITgcm]/MITgcm/tools/build_options/linux_amd64_gfortran
ViewVC logotype

Contents of /MITgcm/tools/build_options/linux_amd64_gfortran

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.26 - (show annotations) (download)
Wed Oct 1 23:12:14 2014 UTC (9 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65f, checkpoint65g, HEAD
Changes since 1.25: +3 -3 lines
remove "-Wno-unused-dummy-argument" flag in -ieee or -devel case

1 #!/bin/bash
2
3 # $Header: /u/gcmpack/MITgcm/tools/build_options/linux_amd64_gfortran,v 1.25 2014/06/09 15:57:31 jahn Exp $
4 # $Name: $
5
6 # Build options for gfortran compiler (GNU) on Linux AMD64 platform
7 #
8 # Tested with gcc-gfortran v4.1.x as shipped with Fedora Core 6,7,8
9 # with gcc-gfortran v4.3.x as shipped with Fedora Core 9,10
10 #
11 # OpenMP : Tested on dickens with gcc-gfortran v4.3.2 as shipped with FC 10
12 # on baudelaire with gcc-gfortran v4.4.5 as shipped with FC 13
13 # on danton with gcc-gfortran v4.5.1 as shipped with FC 14
14 # with gcc-gfortran v4.7.x as shipped with FC 17
15 # with gcc-gfortran v4.8.1 as shipped with FC 19
16 # on acesgrid with gcc-gfortran v4.6.0 as shipped with FC 15
17 #
18 # MPI : Tested on acesgrid (Fedora Core 15), using:
19 # module load gcc (Version 4.6.0)
20 # and with mpich1:
21 # module load mvapich
22 # or with mpich2:
23 # module load mvapich2
24 # or with openmpi:
25 # module load openmpi
26 # and on baudelaire.csail.mit.edu (FC13), using:
27 # export MPI_GCC_DIR=/srv/software/gcc/gcc-packages/gcc-4.4.5/mpich2/mpich2-1.3
28 # export MPI_INC_DIR=$MPI_GCC_DIR/include
29 # export PATH=$MPI_GCC_DIR/bin:$PATH
30 #
31 # and on IRIDIS at Southampton
32 # http://www.southampton.ac.uk/isolutions/computing/hpc/iridis/
33 # with
34 # module load openmpi/1.4.3/gcc-4.3.3
35 # and
36 # export MPI_INC_DIR=$MPIROOT/include
37
38 #-------
39 # run with OpenMP: needs to set environment var. OMP_NUM_THREADS
40 # and generally, needs to increase the thread stack-size:
41 # - sh,bash:
42 # > export OMP_NUM_THREADS=2
43 # > export GOMP_STACKSIZE=400m
44 # - csh,tcsh:
45 # > setenv OMP_NUM_THREADS 2
46 # > setenv GOMP_STACKSIZE 400m
47 #-------
48
49 if test "x$MPI" = xtrue ; then
50 CC=${CC:=mpicc}
51 FC=${FC:=mpif77}
52 F90C=${F90C:=mpif90}
53 else
54 CC=gcc
55 FC=gfortran
56 F90C=gfortran
57 fi
58
59 DEFINES='-DWORDLENGTH=4 -DNML_TERMINATOR'
60 EXTENDED_SRC_FLAG='-ffixed-line-length-132'
61 F90FIXEDFORMAT='-ffixed-form'
62 GET_FC_VERSION="--version"
63 OMPFLAG='-fopenmp'
64
65 NOOPTFLAGS='-O0'
66 NOOPTFILES=''
67
68 CFLAGS='-O0'
69 #- Requires gfortran from 2006 onwards for -fconvert=big-endian
70 FFLAGS="$FFLAGS -fconvert=big-endian -fimplicit-none"
71 #- for big setups, compile & link with "-fPIC" or set memory-model to "medium":
72 #CFLAGS="$CFLAGS -fPIC"
73 #FFLAGS="$FFLAGS -fPIC"
74 #- with FC 19, need to use this without -fPIC (which cancels -mcmodel option):
75 CFLAGS="$CFLAGS -mcmodel=medium"
76 FFLAGS="$FFLAGS -mcmodel=medium"
77 #- might want to use '-fdefault-real-8' for fizhi pkg:
78 #FFLAGS="$FFLAGS -fdefault-real-8 -fdefault-double-8"
79
80 if test "x$IEEE" = x ; then #- with optimisation:
81 #- full optimisation
82 FOPTIM='-O3 -funroll-loops'
83 NOOPTFILES="$NOOPTFILES ini_masks_etc.F"
84 #- can use -O2 (safe optimisation) to avoid Pb with some gcc version of -O3:
85 #FOPTIM='-O2 -funroll-loops'
86 else
87 # these may also be useful, but require specific gfortran versions:
88 # -Wnonstd-intrinsics for gfortran <= 4.3
89 # -Wintrinsics-std for gfortran >= 4.4
90 # -Wno-tabs for gfortran >= 4.3
91 # -Wno-unused-dummy-argument for gfortran >= 4.6
92 #FFLAGS="$FFLAGS -Waliasing -Wampersand -Wsurprising -Wline-truncation"
93 #- or simply:
94 FFLAGS="$FFLAGS -Wall"
95 #- to get plenty of warnings: -Wall -Wextra (older form: -Wall -W) or:
96 #FFLAGS="$FFLAGS -Wconversion -Wimplicit-interface -Wunused-labels"
97 if test "x$DEVEL" = x ; then #- no optimisation + IEEE :
98 FOPTIM='-O0'
99 else #- development/check options:
100 FOPTIM='-O0 -g -fbounds-check'
101 FOPTIM="$FOPTIM -ffpe-trap=invalid,zero,overflow -finit-real=inf"
102 fi
103 fi
104
105 F90FLAGS=$FFLAGS
106 F90OPTIM=$FOPTIM
107
108 INCLUDEDIRS=''
109 INCLUDES=''
110 LIBS=''
111
112 if [ "x$NETCDF_ROOT" != x ] ; then
113 INCLUDEDIR="${NETCDF_ROOT}/include"
114 INCLUDES="-I${NETCDF_ROOT}/include"
115 LIBDIR="${NETCDF_ROOT}/lib"
116 LIBS="-L${NETCDF_ROOT}/lib"
117 elif [ "x$NETCDF_HOME" != x ]; then
118 INCLUDEDIR="${NETCDF_HOME}/include"
119 INCLUDES="-I${NETCDF_HOME}/include"
120 LIBDIR="${NETCDF_HOME}/lib"
121 LIBS="-L${NETCDF_HOME}/lib"
122 elif [ "x$NETCDF_INC" != x -a "x$NETCDF_LIB" != x ]; then
123 NETCDF_INC=`echo $NETCDF_INC | sed 's/-I//g'`
124 NETCDF_LIB=`echo $NETCDF_LIB | sed 's/-L//g'`
125 INCLUDEDIR="${NETCDF_INC}"
126 INCLUDES="-I${NETCDF_INC}"
127 LIBDIR="${NETCDF_LIB}"
128 LIBS="-L${NETCDF_LIB}"
129 elif [ "x$NETCDF_INCDIR" != x -a "x$NETCDF_LIBDIR" != x ]; then
130 INCLUDEDIR="${NETCDF_INCDIR}"
131 INCLUDES="-I${NETCDF_INCDIR}"
132 LIBDIR="${NETCDF_LIBDIR}"
133 LIBS="-L${NETCDF_LIBDIR}"
134 elif test -d /usr/include/netcdf-3 ; then
135 INCLUDES='-I/usr/include/netcdf-3'
136 LIBS='-L/usr/lib/netcdf-3 -L/usr/lib64/netcdf-3'
137 elif test -d /usr/include/netcdf ; then
138 INCLUDES='-I/usr/include/netcdf'
139 elif test -d /usr/local/netcdf ; then
140 INCLUDES='-I/usr/local/netcdf/include'
141 LIBS='-L/usr/local/netcdf/lib'
142 elif test -d /usr/local/include/netcdf.inc ; then
143 INCLUDES='-I/usr/local/include'
144 LIBS='-L/usr/local/lib64'
145 elif test -d /usr/include/netcdf.inc ; then
146 INCLUDES='-I/usr/include'
147 LIBS='-L/usr/lib64'
148 fi
149
150 if [ -n "$MPI_HOME" -a -z "$MPI_INC_DIR" ]; then
151 MPI_INC_DIR="$MPI_HOME/include"
152 fi
153 if [ -n "$MPI_INC_DIR" -a "x$MPI" = xtrue ] ; then
154 INCLUDES="$INCLUDES -I$MPI_INC_DIR"
155 INCLUDEDIRS="$INCLUDEDIRS $MPI_INC_DIR"
156 #- used for parallel (MPI) DIVA
157 MPIINCLUDEDIR="$MPI_INC_DIR"
158 #MPI_HEADER_FILES='mpif.h mpiof.h'
159 fi

  ViewVC Help
Powered by ViewVC 1.1.22