博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WRF主程序与WPS的编译与安装
阅读量:5786 次
发布时间:2019-06-18

本文共 3217 字,大约阅读时间需要 10 分钟。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ESA_DSQ/article/details/78228678

最近重新把WRF学习提上事宜,所以开始重新鼓捣WRF。

由于WRF-DA的运行需要依赖WPS程序,这里就填下之前两篇WRF-DA模块编译中挖的坑。即WRF主程序的编译与安装。如果不太清楚的WRF与WRF-DA相关的可以去翻下前两篇博客。

最近本来准备换VitualBox来玩虚拟机,结果不小心玩脱了,把之前编译安装好WRF-DA模块的Ubuntu系统删除了,所以只好重头再来了。所以这回我是从WRF主程序等一一安装完,最后再来安装WRF-DA模块。不过这一次按照网上原来的教程装了好多次都失败了,不得已之下,我去请教了WRF官方邮箱。他们给我提供了一份官方安装教程,结果一次成功。这里介绍下这份教程的过程。

1 系统环境测试

首先对编译需要的gfortran,cpp,gcc检查是否安装,版本是否匹配。

which gfortranwhich cppwhich gccgfortran --versiongcc --versiong++ --version

能显示路径说明已安装,版本检查也未出现。

可以发现gfortran并未安装。

apt install gfortran

接下来在安装WRF的文件夹下创建两个文件夹。一个是Build_WRF,一个是TESTS。

然后下载Fortran and C Tests Tar File文件,并放入TESTS文件夹下,对编译器做测试。
解压完毕。

一共有7个测试。

首先是对Fortran和C的编译器做测试。

gfortran TEST_1_fortran_only_fixed.f./a.outgfortran TEST_2_fortran_only_free.f90./a.outgcc TEST_3_c_only.c./a.outgcc -c -m64 TEST_4_fortran+c_c.cgfortran -c -m64 TEST_4_fortran+c_f.f90gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o./a.out

接下来测试下csh,perl,sh是否可行。

./TEST_csh.csh./TEST_perl.pl./TEST_sh.sh

可以发现csh测试不通过。解决方案为安装tcsh。

apt install tcsh

安装完,测试通过。

2 安装依赖库

首先在Build_WRF文件夹下面创建一个LIBRARIES的文件夹。然后下载所需的依赖库。

把这些压缩包全部放到LIBRARIES下面。

接着设置环境变量开始安装。

1 netcdf安装

这里用的是4.1.3版本的netcdf,这个版本还没有把netcdf-fortran和netcdf-c拆开。比较新的版本已经把二者拆开了,新版本则必须两个都安装。

exprot DIR=/home/Build_WRF/LIBRARIESexport CC=gccexport CXX=g++export FC=gfortranexport FCFLAGS=-m64export F77=gfortranexport FFLAGS=-m64tar zxvf netcdf-4.1.3.tar.gzcd netcdf-4.1.3./configure --prefix=$DIR/netcdf --disable-dap \ --disable-netcdf-4 --disable-sharedmakemake installexport PATH=$DIR/netcdf/bin:$PATHexport NETCDF=$DIR/netcdf

虽然网上有很多教程要求先安装zllib和hdf5后安装netcdf,但是我决定按官方教程走走看。

2 mpich安装

如果不需要并行运算,可以不安装这个库。这里还是安装一下。

tar xzvf mpich-3.0.4.tar.gzcd mpich-3.0.4./configure --prefix=$DIR/mpichmakemake installexport PATH=$DIR/mpich/bin:$PATH

3 zlib安装

export LDFLAGS=-L$DIR/grib2/libexport CPPFLAGS=-I$DIR/grib2/includetar xzvf zlib-1.2.7.tar.gzcd zlib-1.2.7./configure --prefix=$DIR/grib2makemake install

4 libpng安装

tar xzvf libpng-1.2.50.tar.gzcd libpng-1.2.50./configure --prefix=$DIR/grib2makemake install

5 jasper安装

tar xzvf jasper-1.900.1.tar.gzcd jasper-1.900.1./configure --prefix=$DIR/grib2makemake install

3 依赖库兼容性测试

接下来对安装完的依赖库兼容性做测试。

1 Fortran+C+NetCDF

tar -xf Fortran_C_NETCDF_MPI_tests.tarcp ${NETCDF}/include/netcdf.inc .gfortran -c 01_fortran+c+netcdf_f.fgcc -c 01_fortran+c+netcdf_c.cgfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o \     -L${NETCDF}/lib -lnetcdff -lnetcdf./a.out

2 Fortran+C+NetCDF+MPI

cp ${NETCDF}/include/netcdf.inc .mpif90 -c 02_fortran+c+netcdf+mpi_f.fmpicc -c 02_fortran+c+netcdf+mpi_c.cmpif90 02_fortran+c+netcdf+mpi_f.o \02_fortran+c+netcdf+mpi_c.o \     -L${NETCDF}/lib -lnetcdff -lnetcdfmpirun ./a.out

4 编译WRF

下载WRF的源码,放在Build_WRF里面。

gunzip WRFV3.9.1.1.TAR.gztar -xf WRFV3.9.1.1.TARcd WRFV3./configure

需要安装m4。

apt-get install m4

接着configure一下,出现如下界面。

选择34和1。

./compile em_real >& log.compile

接下来只要等待编译完成了。

用下面的语句检查是否生成exe。

ls -ls main/*.exe

5 编译WPS

接下来就是编译WPS。

gunzip WPSV3.9.1.TAR.gztar -xf WPSV3.9.1.TARcd WPS./cleanexport JASPERLIB=$DIR/grib2/libexport JASPERINC=$DIR/grib2/include./configure

出现如下界面

选择3,然后运行如下命令编译。

WRF_DIR = ../WRFV3./compile >& log.compile

上述的exe出现且不为红色可以初步认为编译安装成功。如何运行WRF后面再介绍。

你可能感兴趣的文章
“软”苹果水逆的一周:杂志服务崩溃,新机型遭泄露,芯片首架离职
查看>>
JAVA的优势就是劣势啊!
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
springmvc+swagger2
查看>>
软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
查看>>
我的友情链接
查看>>
Java Web Application 自架构 一 注解化配置
查看>>
如何 debug Proxy.pac文件
查看>>
Python 学习笔记 - 面向对象(特殊成员)
查看>>
Kubernetes 1.11 手动安装并启用ipvs
查看>>
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
oracle备份与恢复--rman
查看>>
图片变形的抗锯齿处理方法
查看>>