安装WRF/WPS/WRFDA/ARW

WIN10子系统Ubuntu 20.04.3 LTS

根据Compiling WRF教程,主要补充一些细节。

一.需要用到的文件

WRFV4.0.TAR.gz

WPSV4.0.TAR.gz

ARWpost_V3.tar.gz

二.环境测试

>>  which gfortran

>>  which cpp

>>  which gcc

如果没有可以通过

>>sudo apt-get install gcc cpp gfortran

获取安装,再重复上面的测试。然后查看gcc版本

>> gcc -version

创建两个新文件夹Build_WRF和TESTS

>> mkdir Build_WRF

>> mkdir TESTS

进入TESTS

>> cd TESTS

下载测试文件

>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/Fortran_C_tests.tar

解压测试文件

>> tar -xf Fortran_C_tests.tar

开始测试

测试一

>> gfortran TEST_1_fortran_only_fixed.f

>> ./a.out

应出现 SUCCESS test 1 fortran only fixed format

测试二

>> gfortran TEST_2_fortran_only_free.f90

>> ./a.out

应出现Assume Fortran 2003: has FLUSH, ALLOCATABLE, derived type, and ISO C Binding
SUCCESS test 2 fortran only free format

测试三

>> gcc TEST_3_c_only.c

>> ./a.out

应出现SUCCESS test 3 c only

测试四

>> gcc -c -m64 TEST_4_fortran+c_c.c

>> gfortran -c -m64 TEST_4_fortran+c_f.f90

>> gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o

>> ./a.out

应出现C function called by Fortran
Values are xx = 2.00 and ii = 1
SUCCESS test 4 fortran calling c

测试五

>> ./TEST_csh.csh

应出现SUCCESS csh test

测试六

>> ./TEST_perl.pl

应出现SUCCESS perl test

测试七

>> ./TEST_sh.sh

应出现SUCCESS sh test

一些基本操作说明

>>cd ..     表示返回上一级文件夹
>>cd        表示返回该用户最上一级文件夹
>>ls        查看该目录下所有文件

三.装库

进入Build_WRF文件夹,新建LIBRARIES文件夹

>> cd Build_WRF

>> mkdir LIBRARIES
>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/mpich-3.0.4.tar.gz

>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/netcdf-4.1.3.tar.gz

>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/jasper-1.900.1.tar.gz

>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/libpng-1.2.50.tar.gz

>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/zlib-1.2.7.tar.gz

>> wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.22/src/hdf5-1.8.22.tar.gz

下载好后,先修改环境变量。首先打开.bshrc

>>sudo nano ~/.bashrc        

在最下面输入

export DIR=/home/ming/Build_WRF/LIBRARIES     这里按照你自己的路径填,例如ming是我的用户名
export CC=gcc
export CXX=g++
export FC=gfortran
export CFLAGS=-m64
export F77=gfortran
export FFLAGS=-m64

关闭文件ctrl+X,并Y保存修改。使修改后的.bashrc文件生效

source ~/.bashrc

就可以开始安装库了

由于后面还要安装WRFDA,所以这里先装zlib hdf5 再安装netcdf mpich libpng jasper

首先安装zlib

>> tar xzvf zlib-1.2.7.tar.gz 
>> cd zlib-1.2.7
>> ./configure --prefix=$DIR/grib2
>> make
>> make install
>> cd ..

然后安装hdf5

>> tar -xvf hdf5-1.12.0.tar.gz
>> cd hdf5-1.12.0
>> ./configure --prefix=$DIR/hdf5
>> make
>> make install

再安装netcdf

>> tar xzvf netcdf-4.1.3.tar.gz
>> cd netcdf-4.1.3
>> ./configure --prefix=$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared
>> make
>> make install
>> nano ~/.bashrc
依旧在.bashrc文件的最下面添加
>> export PATH=$DIR/netcdf/bin:$PATH
>> export NETCDF=$DIR/netcdf
关闭文件ctrl+X,并Y保存修改
>> source ~/.bashrc
修改生效
>> cd ..

再安装mpich

>> tar xzvf mpich-3.0.4.tar.gz
>> cd mpich-3.0.4
>> ./configure --prefix=$DIR/mpich
>> make
>> make install
依旧打开.bashrc文件
>> export PATH=$DIR/mpich/bin:$PATH
后关闭并source
>> cd ..

再安装libpng

>> tar xzvf libpng-1.2.50.tar.gz
>> cd libpng-1.2.50
>> ./configure --prefix=$DIR/grib2
>> make
>> make install
>> cd ..

 再安装Jasper

>> tar xzvf jasper-1.900.1.tar.gz
>> cd jasper-1.900.1
>> ./configure --prefix=$DIR/grib2
>> make 
>> make install
>> cd ..

四.测试库

进入TESTS文件夹

>> cd
>> cd TESTS
>> wget https://www2.mmm.ucar.edu/wrf/OnLineTutorial/compile_tutorial/tar_files/ 
   Fortran_C_NETCDF_MPI_tests.tar
>> tar -xf Fortran_C_NETCDF_MPI_tests.tar

测试一

>> cp ${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 \-L${NETCDF}/lib -lnetcdff -lnetcdf
>> ./a.out

 应出现C function called by Fortran

            Values are xx = 2.00 and ii = 1

            SUCCESS test 1 fortran + c + netcdf

测试二

>> cp ${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 -L${NETCDF}/lib -lnetcdff -lnetcdf
>> mpirun ./a.out

应出现 C function called by Fortran

            Values are xx = 2.00 and ii = 1

            status = 2

            SUCCESS test 2 fortran + c + netcdf + mpi

五.WRF

首先将下载好的WRFV4.0.TAR.gz放在Build_WRF文件夹下。可以直接通过windows窗口下的c盘,在文件资源管理器上方地址栏输入\\wsl$直达ubuntu,ubuntu下的/home里可以找到用户名文件夹,用户名文件夹里可以找到Build_WRF和TESTS文件夹。

直接解压WRFV4.0.TAR.gz

>> tar xzvf WRFV4.0.TAR.gz
>> cd WRF
>> ./configure
>> ./compile em_real >& log.compile       这里em_real还可以换成其他的em_quarter_ss、em_b_wave等等,详见参考文档,这里以em_real为例
>> ls -ls main/*.exe

应出现

        wrf.exe

        real.exe 

        ndown.exe

        tc.exe

六.WPS

和WRF一样,在同一级目录解压,即在用户名文件夹下的Build_WRF里同时存在WRF和WPS文件夹。

解压后,先找到WPS文件夹下的/ungrib/src/ngl/g2/intmath.f文件,将其中的172行改为

iand(i,i-1_2)/=0     207行改为iand(i,i-1_1)/=0,或直接下载我的intmath.f文件替换原文件

链接:https://pan.baidu.com/s/1aYT8lzbQPfjLVBvHMh1ThA 
提取码:1234

>> cd WPS
>> ./clean
进入.bashrc文件
>> export JASPERLIB=$DIR/grib2/lib
>> export JASPERINC=$DIR/grib2/include
退出并保存.bashrc文件,并source
>> ./configure
>> 1
>> ./compile >& compile.log &
>> tail -f compile.log
ctrl+c结束进程
>> ls -las *.exe

应出现三个可执行文件,类似:

0 lrwxrwxrwx 1 ming ming 23 Sep  9 16:26 geogrid.exe -> geogrid/src/geogrid.exe
0 lrwxrwxrwx 1 ming ming 23 Sep  9 16:26 metgrid.exe -> metgrid/src/metgrid.exe
0 lrwxrwxrwx 1 ming ming 21 Sep  9 16:26 ungrib.exe -> ungrib/src/ungrib.exe

七.地理数据

在Build_WRF文件夹下下载地理数据,下载地址http://www2.mmm.ucar.edu/wrf/src/wps_files/geog_10m.tar.gz

>> tar -zxvf geog_10m.tar.gz
>> mv geog WPS_GEOG            mv表示更改文件夹名字,这里是将geog改为WPS_GEOG

再进入WPS文件夹修改namelist.wps文件

>> cd WPS
>> nano namelist.wps

将namelist.wps中的把geog_data_path = '/glade/p/work/wrfhelp/WPS_GEOG/'改成geog_data_path = '/home/你的用户名/Build_WRF/WPS_GEOG/'

八.ARW

 在Build_WRF文件夹下解压ARWpost_V3.tar.gz

>> tar -zxvf ARWpost_V3.tar.gz
>> cd ARWpost/             进入ARWpost文件夹
>> ls -las                 查找所有文件

在ARWpost文件夹下

>> ./configure
Enter selection [1-3] : 3     这里选择3

在ARWpost文件夹下的src文件夹里修改Makefile文件

>> cd src/
>> nano Makefile

将Makefile文件中的

CPP = /lib/cpp -C -P -traditional       改成   CPP = /lib/cpp -P -traditional

-L$(NETCDF)/lib -I$(NETCDF)/include -lnetcdf   改成  

-L$(NETCDF)/lib -I$(NETCDF)/include -lnetcdff -lnetcdf

再到ARWpost目录下修改configure.arwp文件

>> cd ..        由于上一步再src文件夹下,这里退出到ARWpost下
>> nano configure.arwp

CPP = /lib/cpp -C -P -traditional 修改为 CPP = /lib/cpp -P -traditional

    CFLAGS = -m64                        修改为 CFLAGS = -fPIC -m64

一样的ctrl+x退出 Y保存

>> ./compile
>> ls -ls *.exe

最后应当生成 ARWpost.exe

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值