wavewatch3_4.18 安装netcdf4过程记录

声明:2019.5.13 目前对于wavewatch4.18版本,虽然都安装成功了,但是在w3_make的时候仍然会报错,正在解决此问题

先供上两篇参考教程

https://blog.csdn.net/schumacher2016/article/details/80850240

https://blog.csdn.net/zhaohaibo_/article/details/88249104

https://blog.csdn.net/tuhuolong/article/details/7843352


        WAVEWATCH3需要调用netcdf,netcdf4.1.3以后需要手动安装,zlib,hdf5,netcdf-c,netcdf-fortran,且后一个分别依赖前一个,因此要按顺序安装。

        之前在服务器上远程安装了NETCDF4.6.2,已安装成功,但是在运行WAVEWATCH3_4.18编译程式ww3_ounf时,会出现错误,现将netcdf重新安装,版本4.3.2,主要参考黄学智教程https://blog.csdn.net/schumacher2016/article/details/80850240。

        以下安装为centos7系统,root用户


1. 指定临时编译环境(本人用的gcc,gfortran)

export CC=gcc
export CXX=g++
export FC=gfortran
export F77=gfortran
export F90=gfortran

1. 安装curl(wavewatch3 4.18好像需要,5.16好像不需要)

mkdir netcdf #存放下载文件文件夹
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/curl-7.26.0.tar.gz
tar -zxvf curl-7.26.0.tar.gz
cd curl-7.26.0
./configure --prefix=/usr/local/netcdf4-needed
make
make check
make install

2.安装zlib

cd netcdf
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/zlib-1.2.8.tar.gz 
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8/
./configure --prefix=/usr/local/netcdf4-needed
make
make check
make install #若无报错,则安装成功
cd ..

3. 安装hdf5

hdf5需要用到zlib文件

wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/hdf5-1.8.13.tar.gz
tar -zxvf hdf5-1.8.13.tar.gz
cd hdf5-1.8.13
./configure --prefix=/usr/local/netcdf4-needed --with-zlib=/usr/local/netcdf4-needed/
make
make check  %如果报错了,则尝试 make & make check ,也许可以,官方说这是这个版本的bug
make install

4. 安装netcdf-c

先加环境变量到 LD_LIBRARY_PATH中(安装netcdf-c可以暂时不加,但是安装netcdf-fortran必须添加)

 export LD_LIBRARY_PATH=/usr/local/netcdf4-needed/lib:$LD_LIBRARY_PATH
# 或者wget ftp://ftp.unidata.ucar.edu/pub/netcdf/old/netcdf-4.3.2.tar.gz
wget https://github.com/Unidata/netcdf-c/archive/v4.3.2.tar.gz #github下载速度较快
tar -zxvf v4.3.2.tar.gz
cd  v4.3.2.tar.gz    
./configure --prefix=/usr/local/netcdf4-needed --disable-dap CPPFLAGS=-I/usr/local/netcdf4-needed/include LDFLAGS=-L/usr/local/netcdf4-needed/lib  #CPPFLAGS配置安装信息,指定c++头文件位置;  #LDFLAGS配置安装信息,指定编译优化信息位置
make
make check
make install

5. 安装netcdf-fortran

wget https://github.com/Unidata/netcdf-fortran/archive/v4.4.0.tar.gz
tar -zxvf v4.4.0.tar.gz
cd netcdf-fortran-4.4.0/
./configure --prefix=/usr/local/netcdf4-needed CPPFLAGS=-I/usr/local/netcdf4-needed/include LDFLAGS=-L/usr/local/netcdf4-needed/lib
make
make check
make install

6. 配置环境变量,非常重要的一步

如果只是当前用户使用,则将环境变量路径信息加入~/.bashrc中,并source ~/.bashrc; 如果是系统全局,则加入/etc/bashrc,并重启系统

export NETCDF=/usr/local/netcdf4-needed

export PATH=$NETCDF/bin:$PATH

export LD_LIBRARY_PATH=$NETCDF/lib:$LD_LIBRARY_PATH

export CPPFLAGS='-I/usr/local/netcdf4-needed/include'

export LDFLAGS='-L/usr/local/netcdf4-needed/lib'
 

对于WAVEWATCH而言,还要加入关于netcdf的配置说明,才能使wavewatch正常使用netcdf4

export WWATCH3_NETCDF=NC4
export NETCDF_LIBDIR=/usr/local/netcdf4-needed/lib
export NETCDF_INCDIR=/usr/local/netcdf4-needed/include
export NETCDF_CONFIG=/usr/local/netcdf4-needed/bin/nf-config


后续2019.5.22

命运多舛,我在ubuntu18.01 lts ( window10子系统,试了两个Ubuntu18 )上安装时,按照上述过程,在安装netcdf-c时会报错:

configure: error: Can't find or link to the z library. Turn off netCDF-4 and      opendap with --disable-netcdf-4 --disable-dap, or see config.log for errors

初步判断,猜测是zlib没有安装好,或者是netcdf-c在安装时没有配置好安装路径,导致其找不到z library, 几小时后,,,还是没解决,经过查询,发现hdf5用了zlib,参照这篇教程再加这篇,换了一个版本netcdf-c,问题仍是存在,看起来似乎和操作系统有关系?

后续2019.5.23

回到centos7.0上再试一次,以普通用户安装,在安装时使用sudo授予管理员权限,然后,,在安装netcdf-fortran时,提示:configure: error: netcdf.h could not be found. Please set CPPFLAGS.,喜大普奔!经过查询,解决了该问题,参考气象家园一篇回答,将./configure ... CPPFLAGS... LDFLAGS... 写在一行上,且./configure在第一位

再后续:2019.5.23

在使用wavewatch3 4.18的命令ww3_ounf时,提示: NetCDF: Unknown file format,用ncdump命令打开nc文件时,有的会提示NetCDF: Unknown file format,经查询,按照官网说明,应该是和netcdf-c的版本有关系,应安装netcdf-c 4.5以上版本。

再再后续:2019.5.25

在另外一次安装时,发现在安装到netcdf-fortran时,会提示找不到libnetcdf的某个库文件,经查询,应该是在安装netcdf-fortran时,没有指定到netcdf-c的库文件位置,但是实际上我也指定了,后来将 LD_LIBRARY_PATH的设定放到了 ./configure后面(和CPPFLGAS LDFLAGS 同一行),好像可以解决问题。但同时我也更换了netcdf-c的版本号,不知道和哪个有关系,先记录下来,也希望有了解的人指导下。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值