Navigation : Top/netcdf with Intel Fortan for Linux

netcdf with Intel Fortran for Linux

netcdf with Intel Fortran 9.0 for Linux

  1. netcdf 3.6.0ではコンパイルできなかった.
  2. netcdf-3.6.1をダウンロ−ドして展開.
  3. 以下の環境を設定し,
    • ./configure --prefix=/usr/local/netcdf-ifort
    • make check (netcdf-3.6.0まではmake testだった)
    • make install
      setenv  FC                 ifort
      setenv  FC90               ifort
      setenv  FFLAGS             "-g -O2 -mp -recursive"
      setenv  CC                 icc
      setenv  CXX                icpc
      setenv  CFLAGS             "-g -O"
      setenv  CXXFLAGS           "-g"
      setenv  CPPFLAGS           "-DpgiFortran"

netcdf with Intel Fortran 8.1 for Linux

source /opt/intel_fc_80/bin/ifortvars.csh

setenv FC       "ifort"
setenv FFLAGS   "-g -O2 -mp -recursive"
setenv CPPFLAGS "-DNDEBUG -DpgiFortran" 
setenv CC       gcc 
setenv CXX      g++ 
setenv CFLAGS   "-g -O2 -march=pentium3"

netcdfを展開する。

./configure --prefix=/usr/local/netcdf

netcdf with Intel Fortran 7.0 for Linux

g77用のnetcdfと共存してIFC(F90)用のnetcdf環境を構築。

  1. netcdf(3.5.1)をダウンロード
  2. 以下の環境を設定。
    • 'CPPFLAGS=-DNAGf90Fortran'は重要。
#
# intel C and Fortran Version 7.1
#
setenv   IA32ROOT        '/opt/intel/compiler70/ia32'
setenv   FC              $IA32ROOT/bin/ifc
setenv   FC90            $IA32ROOT/bin/ifc
setenv   CC              $IA32ROOT/bin/icc
setenv   CXX             $IA32ROOT/bin/icc
setenv   CPPFLAGS        '-DNAGf90Fortran'
setenv   INTEL_FLEXLM_LICENSE /opt/intel/licenses/
set      path = ( $path $IA32ROOT/bin )
set      LIBRARY_PATH = ( $LD_LIBRARY_PATH $IA32ROOT/lib ) 

alias  f77      'ifc -O3'
alias  f77o     'ifc -o \!* \!*.f -O3'
  • MakeしてCompile
    ./configure --prefix=/usr/local/netcdf-ifc
    make clean
    make
    make install
    
    g77用のnetcdfと混在させるため、libファイルの名前を変更
    mv /usr/local/netcdf-ifc/lib/libnetcdf.a /usr/local/netcdf-ifc/lib/libnetcdf-ifc.a 
    mv /usr/local/netcdf-ifc/lib/libnetcdf_c++.a /usr/local/netcdf-ifc/lib/libnetcdf-ifc_c++.a
    
  • 最後に環境設定
    emacs /etc/ld.so.confで以下の行を追加
    - /usr/local/netcdf-ifc/lib
    /sbin/ldconfig -v
  • コンパイルの例
    ifc -o TEST test.f90 -I/usr/local/netcdf-ifc/include -L/usr/local/netcdf-ifc/lib -lnetcdf-ifc