本来这个问题真的没必要写的,可是真的困扰我太久%>_<%,决定还是记录一下。

首先,最权威清晰的安装文档还是官方的:

Building the NetCDF-4.2 and later Fortran libraries (写此文时,最近版为4.2)

那这个文档最开始就告诉我们,自NetCDF库4.2版本以后,Fortran的库和C的库就要分开build啦!而且要装Fortran的库必须先装好C的库。

所以先装C的库咯:仍然官方文档:

Getting and Building NetCDF-C (写此文时,最新版本为4.3.2)

那这个文档告诉我们:要装NetCDF-C的库,有三个(其实是两个)必须装的:zlib,HDF5,(curl)。

综上,需要下载4个tar的包。点我们下载:zilb & hdf5  netcdf-c-4.3.2  netcdf-fortran-4.2

参照官方文档,zlib和hdf5的安装比较简单,指定一下安装路径即可:

build zlib:

$ ./configure --prefix=${DIR1}
 $ make check install

build HDF5:

$ ./configure --with-zlib=${DIR1} --prefix=${DIR1}
$ make

$ make check
$ make install

其中,比较容易出问题的是HDF5的安装,参阅HDF5官方文档

成功之后,就可以进行netcdf-c和netcdf-fortran库的安装了,这里有个问题要注意:编译安装库时候的编译器要和你以后编译你的Fortran代码使用的编译器一致,否者以后在编译Fortran源代码其中用到netcdf库时会出错。以我为例:我平时用Intel的编译器,所以此时在安装这两个库的时候,分别用Intel C++ Composer和Intel Fortran Composer进行编译(后面简称icc和ifort)

Intel 编译器的下载地址

User and Reference Guide for the Intel® C++ Compiler 14.0

User and Reference Guide for the Intel® Fortran Compiler 14.0

Using Intel Compilers for Linux Under Redhat Enterprise Linux or CentOS

安装好了icc和ifort以后均需要设置一下环境变量:(最好添加到~/.bashrc文件中)

source <compiler_install_dir>/bin/compilervars.sh intel64

接下来就是用Intel编译器编译安装netcdf库了:

Building NetCDF* with the Intel® compilers官方文档

关键就是设置几个编译选项:

export CC=icc
export CXX=icpc
export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
export F77=ifort
export FC=ifort
export F90=ifort
export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel'
export CPP='icc -E'
export CXXCPP='icpc -E'

对于c库:

export DIR1=/snfs01/ff/netcdf_4.3.2
$ CPPFLAGS=-I${DIR1}/include LDFLAGS=-L${DIR1}/lib ./configure --prefix=${DIR1} --disable-dap-remote-tests
$ make check install

对于Fortran库:

首先仍然如上设置编译选项,然后假设你的c库安装在路径${DIR1}:

export LD_LIBRARY_PATH=${DIR1}/lib:${LD_LIBRARY_PATH}

然后和c库的编译过程一样:

CPPFLAGS=-I${DIR1}/include LDFLAGS=-L${DIR1}/lib ./configure --prefix=${DIR1}
make
make check
make install

装好了NetCDF-Fortran库了以后如何使用?参考文档:

NetCDF Fortran 90 Interface Guide

Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)的更多相关文章

  1. Linux下通过源码编译安装程序

    本文简单的记录了下,在linux下如何通过源码安装程序,以及相关的知识.(大神勿喷^_^) 一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件: ...

  2. Linux下通过源码编译安装程序(configure/make/make install的作用,然后在/etc/profile文件里修改PATH环境变量)

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  3. 在Linux下用源码编译安装apache2

    Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2 ...

  4. Linux 下 PHP 扩展Soap 编译安装

    1.进入 PHP 的软件包 pdo 扩展目录中(注:不是 PHP 安装目录) [root@tester /]# /home/tdweb/php-5.4.34/ext/soap 执行 phpize 命令 ...

  5. Linux 下 PHP 扩展 PDO 编译安装

    1.进入 PHP 的软件包 pdo 扩展目录中(注:不是 PHP 安装目录) [root@tester /]# /home/tdweb/php-5.4.34/ext/pdo_mysql 执行 phpi ...

  6. ifort + mkl + impi (全套intel)编译安装量子化学软件GAMESS 2022 R1版本

    说明:linux下编译软件都需要先配置好该软件依赖的系统环境.系统环境可以通过软件的安装说明了解,例如:readme.md等文件或网页.这个前提条件很重要!后面正式编译出错基本都可以归结到系统环境配置 ...

  7. linux下如何源码编译安装vim

    1. 获取源码 git clone https://github.com/vim/vim.git ~/vim cd ~/vim 2. 配置 ./configure --prefix=/home/jel ...

  8. Linux 下 PHP 扩展 cURL 编译安装

    下载 cURL http://pan.baidu.com/s/1hqrHWkG (curl-7.39.0.tar.gz) 3.98MB 解压: tar zxvf curl-7.39.0.tar.gz ...

  9. Linux下非root用户如何安装软件

    Linux下非root用户如何安装软件 从windows转移到Linux的用户最开始总会有各种不适,因为这种不适最终放弃linux的不在少数.对于这类人只能说可惜,还没有领略到linux的美好就过早放 ...

随机推荐

  1. Java Logger(java日志)

    目录 1. 简介2. 安装3. log4j基本概念3.1. Logger3.2. Appender3.2.1. 使用ConsoleAppender3.2.2. 使用FileAppender3.2.3. ...

  2. BCB常用文件与字符串函数

    VCL库函数简介 一.BORLAND C++ BUILDER VCL的内存管理函数 1. AllocMem 在队中分配指定字节的内存块,并将分配的每一个字节初始化为 0.函数原型如下: void * ...

  3. lua的split函数

    function split(s, delim) then return end local t = {} while true do local pos = string.find (s, deli ...

  4. [Quick-x]cocos2dx下的彩色文本显示--RichLabel

    部分关键代码与思路参考 http://www.cocoachina.com/bbs/read.php?tid=218977&page=1 感谢原作者 i7909 代码下载地址:https:// ...

  5. 今日思考:MVC系列框架之Struts存在的意义是什么?

    Struts其实就是MVC的代名词,那么提到MVC就不得不提早期的ModelⅠ.那时候JSP页面中混杂了大量的JAVA Scriptlet脚本语句,为了可维护性考虑,有人提出了ModelⅡ,也即现在的 ...

  6. C# 控件双缓冲控制 ControlStyles 枚举详解

    ControlStyles 枚举 .NET Framework 4    指定控件的样式和行为. 此枚举有一个 FlagsAttribute 特性,通过该特性可使其成员值按位组合. 命名空间:  Sy ...

  7. 方法Equals和操作符==的区别

    http://www.codeproject.com/Articles/584128/What-is-the-difference-between-equalsequals-and-Eq When w ...

  8. Spring 事务中 readOnly 的解释

      spring 中事务的PROPAGATION_REQUIRED,Readonly的解释  (2012-11-21 16:29:38) 转载▼ 标签:  杂谈                  一. ...

  9. [58 Argo]让argo跑起来

    接上一章,使用命令mvn jetty:run启动Argo,进入localhost的页面: 58在这里给了几种常见的访问和传值方法的示例,当点击到第三条<区分queryString和form参数& ...

  10. 一台电脑同时运行多个tomcat配置方法

    当第一个tomcat启动后,后面tomcat的server.xml中的端口不管怎么改,仍然会报端口冲突.后来在dos下运行才发现所有的tomcat都会去找CATALINA_HOME和CATALINA_ ...