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

Annotation of /MITgcm/tools/build_options/linux_amd64_gfortran

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


Revision 1.8 - (hide annotations) (download)
Wed Mar 24 21:36:23 2010 UTC (14 years, 1 month ago) by yunx
Branch: MAIN
Changes since 1.7: +4 -1 lines
This specifies location of correct netcdf libraries on machine greenplanet at
UCI.  It needs to come before /usr/include/netcdf-3, which is also present but
contains the wrong libraries.  There is a small possiblity this change will
break netcdf libraries for machines that happen to have /sopt/netcdf/netcdf3-gcc-serial
directory with wrong libraries.  Please let me know if someone runs into this
situation and I will revert back and look for a different solution.

1 edhill 1.1 #!/bin/bash
2 jmc 1.7
3 yunx 1.8 # $Header: /u/gcmpack/MITgcm/tools/build_options/linux_amd64_gfortran,v 1.7 2009/04/15 22:45:29 jmc Exp $
4 edhill 1.1 # $Name: $
5 jmc 1.7
6 edhill 1.1
7 jmc 1.5 # Tested with gcc-gfortran v4.1.x as shipped with Fedora Core 6,7,8
8     # with gcc-gfortran v4.3.x as shipped with Fedora Core 9,10
9     # It fixes the ' \' versus ' &' terminator ;
10     # with older versions (v4.0): namelist problems with syntax such as:
11 edhill 1.1 # fields(1,1) = 'UVELSLT ','VVELSLT ','WVELSLT ',
12 jmc 1.5 # which results in run-time errors.)
13 edhill 1.1
14 jmc 1.7 # OpenMP : Tested on dickens with gcc-gfortran v4.3.2 as shipped with FC 10
15     #-------
16     # run with OpenMP: needs to set environment var. OMP_NUM_THREADS
17     # and generally, needs to increase the thread stack-size:
18     # - sh,bash:
19     # > export OMP_NUM_THREADS=2
20     # > export GOMP_STACKSIZE=400m
21     # - csh,tcsh:
22     # > setenv OMP_NUM_THREADS 2
23     # > setenv GOMP_STACKSIZE 400m
24     #-------
25 edhill 1.1
26     FC=gfortran
27 ce107 1.2 F90C=gfortran
28 edhill 1.1 CC=gcc
29 ce107 1.2 DEFINES='-DWORDLENGTH=4 -DNML_TERMINATOR'
30 edhill 1.1 CPP='cpp -traditional -P'
31     NOOPTFLAGS='-O0'
32 jmc 1.4 EXTENDED_SRC_FLAG='-ffixed-line-length-132'
33 jmc 1.7 OMPFLAG='-fopenmp'
34 edhill 1.1
35 ce107 1.2 if test "x$DEVEL" != x ; then
36     FFLAGS='-g -Wall -W -ffpe-trap=invalid,zero,overflow -fbounds-check'
37     else
38     FFLAGS=''
39     fi
40    
41     # Requires gfortran from 2006 onwards for -fconvert=big-endian
42     FFLAGS="$FFLAGS -fconvert=big-endian -fimplicit-none"
43    
44 edhill 1.1 if test "x$IEEE" = x ; then
45     # No need for IEEE-754
46 ce107 1.3 FOPTIM='-O3 -funroll-loops'
47 edhill 1.1 else
48     # Try to follow IEEE-754
49 jahn 1.6 # these may also be useful, but require specific gfortran versions:
50     # -Wnonstd-intrinsics for gfortran <= 4.3
51     # -Wintrinsics-std for gfortran >= 4.4
52     # -Wno-tabs for gfortran >= 4.3
53     FFLAGS="$FFLAGS -Waliasing -Wampersand -Wsurprising -Wline-truncation"
54 jmc 1.5 # to get plenty of warnings :
55     # FFLAGS="$FFLAGS -Wconversion -Wimplicit-interface -Wunused-labels"
56 ce107 1.2 FOPTIM='-O0'
57 jmc 1.5 # for automatic testing with testreport (but no relation with IEEE arithmetic):
58     FOPTIM="$FOPTIM -g -ffpe-trap=invalid,zero,overflow -fbounds-check"
59 edhill 1.1 fi
60 ce107 1.2 F90FLAGS=$FFLAGS
61     F90OPTIM=$FOPTIM
62     CFLAGS=$FOPTIM
63    
64     if [ "x$NETCDF_ROOT" != x ] ; then
65     INCLUDEDIR="${NETCDF_ROOT}/include"
66     INCLUDES="-I${NETCDF_ROOT}/include"
67     LIBDIR="${NETCDF_ROOT}/lib"
68     LIBS="-L${NETCDF_ROOT}/lib"
69     elif [ "x$NETCDF_HOME" != x ]; then
70     INCLUDEDIR="${NETCDF_HOME}/include"
71     INCLUDES="-I${NETCDF_HOME}/include"
72     LIBDIR="${NETCDF_HOME}/lib"
73     LIBS="-L${NETCDF_HOME}/lib"
74     elif [ "x$NETCDF_INC" != x -a "x$NETCDF_LIB" != x ]; then
75     NETCDF_INC=`echo $NETCDF_INC | sed 's/-I//g'`
76     NETCDF_LIB=`echo $NETCDF_LIB | sed 's/-L//g'`
77     INCLUDEDIR="${NETCDF_INC}"
78     INCLUDES="-I${NETCDF_INC}"
79     LIBDIR="${NETCDF_LIB}"
80     LIBS="-L${NETCDF_LIB}"
81     elif [ "x$NETCDF_INCDIR" != x -a "x$NETCDF_LIBDIR" != x ]; then
82     INCLUDEDIR="${NETCDF_INCDIR}"
83     INCLUDES="-I${NETCDF_INCDIR}"
84     LIBDIR="${NETCDF_LIBDIR}"
85     LIBS="-L${NETCDF_LIBDIR}"
86 yunx 1.8 elif test -d /sopt/netcdf/netcdf3-gcc-serial; then
87     INCLUDES='-I/sopt/netcdf/netcdf3-gcc-serial/include'
88     LIBS='-L/sopt/netcdf/netcdf3-gcc-serial/lib'
89 ce107 1.2 elif test -d /usr/include/netcdf-3 ; then
90 edhill 1.1 INCLUDES='-I/usr/include/netcdf-3'
91     LIBS='-L/usr/lib/netcdf-3 -L/usr/lib64/netcdf-3'
92     elif test -d /usr/include/netcdf ; then
93     INCLUDES='-I/usr/include/netcdf'
94     elif test -d /usr/local/netcdf ; then
95     INCLUDES='-I/usr/local/netcdf/include'
96     LIBS='-L/usr/local/netcdf/lib'
97 ce107 1.2 elif test -d /usr/local/include/netcdf.inc ; then
98     INCLUDES='-I/usr/local/include'
99     LIBS='-L/usr/local/lib64'
100 edhill 1.1 fi

  ViewVC Help
Powered by ViewVC 1.1.22