失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > WRF模式安装记录

WRF模式安装记录

时间:2023-08-24 02:28:11

相关推荐

WRF模式安装记录

文章目录

概述1.Cygwin配置2.Docker安装3.学院大型机4.搭建虚拟机从零开始配置4.1安装文件的准备4.2解压和环境变量设置4.3WRF编译4.4WPS配置总结

概述

基于多次WRF模式的安装,本文依据安装经验总结一下安装概述及安装方法。根据不同的编译环境和编译过程我将其分为5种。这5种方法大同小异,尽管操作方式与其过程有些许差别。但是其背后原理其实一样,在尝试这5种方法分别安装以后,对WRF模式本身以及编译过程有了更深刻的认识。WRF模式安装前,需要配置5个依赖库以及一些编辑器,这5个库分别是grib2、jasper、libpng、mpich、netcdf,编辑器则有很多选择,其原理大致相同。接下来分别介绍5种方法的安装技巧以及利弊。

1.Cygwin配置

简单来说,Cygwin就是一个在window上的简易UNIX系统。对于刚入门的linux系统的新手而言,有window下的交互界面配合,无疑是友好的。配置WRF也是最简单容易的一个,只需要将cygwin压缩包拷贝到某盘的根目录下然后解压。之后在window系统打开终端窗口进入解压盘然后输入Cygwin.bat然后回车,简易linux环境搭建完成。由于WRF模式已经提前编译好并封装至压缩包,因此我们只需要配置地形文件和气象数据即可。配置地理数据和气象数据步骤如下: step1.回到windows系统中,在cygwin/opt目录下,创建GEOG(注意是大写)文件夹step2.将自选个例资料的文件夹拷贝到 cygwin/opt 目录下step3.将另外3个.bz2的压缩包,拷入GEOG下并解压。此步为配置地形数据。至此WRF环境完全搭建完毕。

对于此种方法,其操作方法简单、并在window下面运行,能很好的与宿主机交互。不足的是,linux操作系统不完善、不稳定,只能依靠打包好的WRF模式版本,目前看到打包好的版本为V3,版本较老,数据的更新导致模式运行失败。同时WRF编译只能在自己电脑上运行,模拟时间成本较大、模拟较大尺度过程时内存溢出。

2.Docker安装

Docker是开源的应用引擎,开发者可以将自己的应用以及所需依赖包打包成镜像,然后供其他用户直接在Linux或者Windows系统上使用。此处安装WRF模式亦是如此,由于其本身依赖包众多,环境变量设置和安装繁杂。因此将已经配置好的WRF模式及其依赖环境打包成镜像,直接使用docker打开使用即可。使用docker可以细分为以下两种方案:

首先是安装docker,在window下安装docker可能相对较麻烦,其原理是打开window虚拟机设置,然后双击docker安装程序即可安装成功。若在linux环境下安装仅需要依据官网介绍输入几条命令即可,相对较方便,当然不同版本系统可能安装有些许不同,官网均有详细介绍。

方案一:利用已经封装好的.sh文件配置环境变量然后将其再打包成镜像使用。分成以下几步

Step1:docker前期准备

docker search centos,可以查看是否存在centos镜像

docker pull centos,从仓库拉取镜像到自己环境中

docker run -it centos:latest /bin/bash,启动centos容器

Step2:WRF环境的编译

yum install gcc gcc-gfortran gcc-c++ which perl csh git wget make tar m4 libXrender libXext fontconfig在容器中安装所需要的一些命令和软件

scp -r gp1_4@ip:/data/public/Software/tar ./

scp gp1_4@ip:/data/public/Software/install_workflow.sh ./将学院一些文件传输到当前环境下.

将tar文件和.sh文件放入/opt/Softwar文件夹中

export Dir=/opt/Software导入环境变量

输入./install_workflow.sh运行安装程序

vi ~/.bashrc修改环境变量如下:

Docker是开源的应用引擎,开发者可以将自己的应用以及所需依赖包打包成镜像,然后供其他用户直接在Linux或者Windows系统上使用。此处安装WRF模式亦是如此,由于其本身依赖包众多,环境变量设置和安装繁杂。因此将已经配置好的WRF模式及其依赖环境打包成镜像,直接使用docker打开使用即可。使用docker可以细分为以下两种方案:

首先是安装docker,在window下安装docker可能相对较麻烦,其原理是打开window虚拟机设置,然后双击docker安装程序即可安装成功。若在linux环境下安装仅需要依据官网介绍输入几条命令即可,相对较方便,当然不同版本系统可能安装有些许不同,官网均有详细介绍。

方案一:利用已经封装好的.sh文件配置环境变量然后将其再打包成镜像使用。分成以下几步

Step1:docker前期准备

docker search centos,可以查看是否存在centos镜像

docker pull centos,从仓库拉取镜像到自己环境中

docker run -it centos:latest /bin/bash,启动centos容器

Step2:WRF环境的编译

yum install gcc gcc-gfortran gcc-c++ which perl csh git wget make tar m4 libXrender libXext fontconfig在容器中安装所需要的一些命令和软件

scp -r gp1_4@ip:/data/public/Software/tar ./

scp gp1_4@ip:/data/public/Software/install_workflow.sh ./将学院一些文件传输到当前环境下.

将tar文件和.sh文件放入/opt/Softwar文件夹中

export Dir=/opt/Software导入环境变量

输入./install_workflow.sh运行安装程序

vi ~/.bashrc修改环境变量如下:

source ~/.bashrc加载环境变量

scp -r root@ip:/data/public/Model/tar ./将WRF文件需要的安装包传输到当前目录

tar -xf v4.2.2.tar -C /opt/Model ,解压wrf到/opt/Model目录下

进入解压后的WRF文件夹

./configure 选择编译模式和编辑器以及网格形式

./compile em_real >& compile.log #编译开始并将编译过程存到compile.log中

解压WPS文件并进入

./configure #选择编辑器

./compile #开始编译,与WRF编译大致相同

编译结束后,WRF模式的编译已经全部完成,接来下将编译好的环境转化为一个镜像

Step3:将容器打包

docker ps –a #查看正在运行的容器

docker commit -m “wrf4.2” -a ZWT 49c3491be29e zwt/wrf:4.2

#其中,-m指定说明信息;-a指定用户信息; 49c3491be29e代表容器的id;zwt/wrf:4.2指定目标镜像的用户名、仓库名和 tag 信息。注意这里的用户名zwt,后边会用到。

docker save -o wrf_docker_wt4.2.tar zwt/wrf:4.2 #保存镜像,-o也可以是—output

镜像生成后,即可以加载使用了

Step4:镜像的使用

首先我们把压缩包放在内存比较大的盘,因为后续运行需要数据

docker load -i .\wrf_docker_wt4.2.tar # 加载镜像, -i也可以是—input

mkdir work #创建一个工作文件夹

docker run -it -v D:\Docker_wrf\work:/home/wrf/work --entrypoint=/bin/bash zwt/w

rf:4.2 # bash/shell 的方式运行,在这里将/home/wrf/work目录挂载到 D:\Docker_wrf\work

Step5:运行WRF

运行可以直接用powershell或者用mobaxshell的shell打开

cd /home/wrf/work

cp -r /opt/Model/WRF-4.2.2/ ./

cp -r /opt/Model/WPS-4.2/ ./将文件夹复制到work文件夹下

至此,以docker进入容器自己搭建WRF环境已经全部完成,尽管地理数据和气象数据还未配置,那将会在下面篇幅介绍。这样的操作可以让我们对docker操作有一定的认识以及在配置过程中对WRF文件的熟悉。接下来就是介绍一种简单docker搭建环境的方案。

方案二:这种方案省略了WRF环境变量的配置和编译,并将容器打包过程,直接将已经打包好的镜像文件在docker中运行即可。

首先从学院服务器下载镜像文件wrf_docker_wt4.2.tar 在此路径下/data/public/docker

打开软件MobaXterm点击Start local teiminal

进入存放wrf_docker_wt4.2.tar的目录( >30G可用) cd D:/Docker/WRF

docker load -I wrf_docker_wt4.2.tar #加载镜像

docker run -it -v D:/Docker/WRF/data:/home/wrf/work --entrypoint=/bin/bash zwt/wrf:4.2将镜像系统挂载到宿主机D:/Docker/WRF/data下面

docker ps -a#查看所有容器

docker start ID#开启容器

docker attach ID#进入容器

将fnl和地理数据geoge放在本地:/Docker/WRF/data/date下

进入容器后还是将/opt/Model下的WPS-4.4和WRF-4.2.2拷贝到/home/wrf/work/文件夹下让运行更加方便。由于此镜像已经将WRF编译以及依赖库环境变量配置完成,因此完全不需要其他操作,环境已经搭建完成。此方案对于使用Docker的同学来说,无疑是十分方便和简单的。

对于使用docker的同学来说,最好的一点就是不需要依赖网络等其他环境因素。当然不足的就是运行时间成本可能相对较多,同时还会占用自己电脑比较大的硬盘空间,对电脑配置有一定的要求。

3.学院大型机

学院大型机就是在远程服务器上进行自己的一系列操作,首先下载远程连接软件Xshell或其他远程连接APP。大气科学学院公共服务器需要先登录学校老大型机服务器,利用ssh 命令进入学院服务器。此处选择Xshell进行登录。

登录大型机前需要连接校园网,然后注销登录。

进入Xshell后,点击文件处新建一个会话,在主机输入学校大型机的IP地址。

然后选择登录提示符输入用户名和登录密码。点击登录

进入学校大型机后,使用ssh命令学院登录服务器(ssh gp1_X@ip)

登录成功后,进入linux系统,可以编译自己的WRF环境。

创建自己的学号文件夹

将学院的WRF相关文件复制到自己路径下(/data/public/Model)

由于大型机上相关依赖包已经配置完成,故直接安装即可。

在WRF-4.2.2文件夹下输入./configure

选择编辑器和编译方式,通常选择并行编译,选择34或者35即可。然后选择网格模式,选择3涡旋跟随网格。

继续输入 ./compile em_real开始编译需等待30min左右。

等待编译完成后看到

编译成功

接下来编译WPS

进入WPS-4.2输入 ./configure 选择wps编辑器和编译方式选择1或3都可

然后输入 ./compile 编译开始

编译结束后会出现3个.exe文件,编译成功。

此种环境编译方式相对简单,编译好后即可开始模拟。在大型机上编译不用担心运行内存溢出,可以多核运行,运行时间较快。但是也有一定的弊端,当多人同时使用时,运行可能较慢,需要断网链接。

4.搭建虚拟机从零开始配置

4.1安装文件的准备

/home/user/目录下创建Build_WRF文件并保存此三个压缩包

~/Build_WRF/目录下面创建LIBRARIES文件夹,放入此5个压缩包文件

测试文件夹/home/user/路径下创建TESTS文件夹放入测试压缩文件

以上文件可以在百度网盘或者官网中找到

4.2解压和环境变量设置

编译器的安装

sudo apt-get update

sudo apt-get install csh gfortran m4 build-essential

依赖库的安装

进入Build_WRF/LIBRARIES文件夹

sudo nano ~/.bashrc

export DIR=/home/用户名/Build_WRF/LIBRARIES

export CC=gcc

export CXX=g++

export FC=gfortran

export CFLAGS=-m64

export F77=gfortran

export FFLAGS=-m64

ctrl+x保存

source ~/.bashrc

进入LIBRARIES目录

安装netcdf-4.1.3

tar -zxvf netcdf-4.1.3.tar.gz

cd netcdf-4.1.3

./configure --prefix=DIR/netcdf−−disable−dap−−disable−netcdf−4−−disable−sharedmakesudomakeinstallsudonano/.bashrc加入环境变量exportPATH=DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared make sudo make install sudo nano ~/.bashrc 加入环境变量 export PATH=DIR/netcdf−−disable−dap−−disable−netcdf−4−−disable−sharedmakesudomakeinstallsudonano/.bashrc加入环境变量exportPATH=DIR/netcdf/bin:PATHexportNETCDF=PATH export NETCDF=PATHexportNETCDF=DIR/netcdf

保存退出

source ~/.bashrc

cd …/

tip:此处可以输入ls ${NETCDF}/include/

若没有出现文件则说明环境变量配置出错,可以全部删除重配置。

安装mpich

tar -zxvf mpich-3.0.4.tar.gz

cd mpich-3.0.4

./configure --prefix=DIR/mpichmakesudomakeinstall在当前路径下设置环境变量sudonano/.bashrcexportPATH=DIR/mpich make sudo make install 在当前路径下设置环境变量 sudo nano ~/.bashrc export PATH=DIR/mpichmakesudomakeinstall在当前路径下设置环境变量sudonano/.bashrcexportPATH=DIR/mpich/bin:$PATH

保存然后退出

source ~/.bashrc

cd…

tip2:此处可以分别输入

mpicc

mpif90

查看是否能找到命令,若不能找到命令则配置环境出错,重新安装此库即可

安装zlib

此环境变量的操作在Build_WRF/LIBRARIES/执行

sudo nano ~/.bashrc

export LDFLAGS=-LDIR/grib2/libexportCPPFLAGS=−IDIR/grib2/lib export CPPFLAGS=-IDIR/grib2/libexportCPPFLAGS=−IDIR/grib2/include

保存并退出

source ~/.bashrc

tar -zxvf zlib-1.2.7.tar.gz

cd zlib-1.2.7

./configure --prefix=$DIR/grib2

make

sudo make install

cd…

安装libpng

tar -zxvf libpng-1.2.50.tar.gz

cd libpng-1.2.50

./configure --prefix=$DIR/grib2

make

sudo make install

cd…

安装jasper

tar -zxvf jasper-1.900.1.tar.gz

cd jasper-1.900.1

./configure --prefix=$DIR/grib2

make

sudo make install

cd…

输入

cd TESTS

进入测试目录

输入

tar -xvf Fortran_C_NETCDF_MPI_tests.tar

测试一

cp NETCDF/include/netcdf.inc.gfortran−c01fortran+c+netcdff.fgcc−c01fortran+c+netcdfc.cgfortran01fortran+c+netcdff.o01fortran+c+netcdfc.o−L{NETCDF}/include/netcdf.inc . gfortran -c 01_fortran+c+netcdf_f.f gcc -c 01_fortran+c+netcdf_c.c gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o -LNETCDF/include/netcdf.inc.gfortran−c01f​ortran+c+netcdff​.fgcc−c01f​ortran+c+netcdfc​.cgfortran01f​ortran+c+netcdff​.o01f​ortran+c+netcdfc​.o−L{NETCDF}/lib -lnetcdff -lnetcdf

./a.out

测试二

cp NETCDF/include/netcdf.inc.mpif90−c02fortran+c+netcdf+mpif.fmpicc−c02fortran+c+netcdf+mpic.cmpif9002fortran+c+netcdf+mpif.o02fortran+c+netcdf+mpic.o−L{NETCDF}/include/netcdf.inc . mpif90 -c 02_fortran+c+netcdf+mpi_f.f mpicc -c 02_fortran+c+netcdf+mpi_c.c mpif90 02_fortran+c+netcdf+mpi_f.o 02_fortran+c+netcdf+mpi_c.o -LNETCDF/include/netcdf.inc.mpif90−c02f​ortran+c+netcdf+mpif​.fmpicc−c02f​ortran+c+netcdf+mpic​.cmpif9002f​ortran+c+netcdf+mpif​.o02f​ortran+c+netcdf+mpic​.o−L{NETCDF}/lib -lnetcdff -lnetcdf

mpirun ./a.out

4.3WRF编译

cd Build_WRF

tar -zxvf WRFV4.0.TAR.gz

cd WRF

./configure

此时编译结束后看到的是编辑器的选择和运算方式

可以先选择34

然后选择1

./compile em_real >& compile.log &

tail -f compile.log

然后等待编译(时间较长,半个小时左右),编译看到四个.exe文件后即可以ctrl+c结束编译

若出现错误未成功应该是环境变量配置错误,可以查看compile.log编译日志查看错误提示。大概率环境配置错误。

cd …

4.4WPS配置

cd Build_WRF/

tar -zxvf WPSV4.0.TAR.gz

cd WPS

sudo nano ~/.bashrc

修改环境变量

export JASPERLIB=DIR/grib2/libexportJASPERINC=DIR/grib2/lib export JASPERINC=DIR/grib2/libexportJASPERINC=DIR/grib2/include

ctrl+x保存 然后保存环境变量

source ~/.bashrc

./configure

./compile >& compile.log &

tail -f compile.log

等待编译结束环境搭建完成

此方法过程繁琐复制,具有一定的挑战性,但是在安装成功后会获得成就感,同时提高自己在linux环境下操作的熟练程度,并对安装里的各个细节进一步了解,收获较多。与其他在自己电脑安装存在一样的问题,运行时间成本太大,容易内存溢出,对电脑硬件要求较高。

总结

以上多目前所知道的安装方法大致总结及概略描述,对比以上几种方法。对于Cygwin,Docker,虚拟机自己安装几种方法都需要电脑的硬件要求,运行文件处理相对方便,不用在服务器和自己电脑上互传文件。但是在实际运用中,多追求效率,节省时间,故一般在大型机上完成天气模拟。个人多用学院大型机完成天气模拟过程,其他方法可以辅助使用,加深自己对WRF模式的理解。(注:以上均为个人理解,错误之处请见谅)

安装包链接

链接:/s/1fID8nGTx-EvAcfKcLPljcA

提取码:mvto

复制这段内容后打开百度网盘手机App,操作更方便哦

如果觉得《WRF模式安装记录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。