• WRF4.2安装过程全记录


    由于本人安装过多次、多个版本的WRF程序,走了许多弯路,不忍心大家再像我一样浪费时间,所以整理一些可用经验。参考Compiling WRF (ucar.edu)

    • 系统环境配置 

    1、首先确保有没有安装好编译语言gfortran、gcc、g++以及cpp。

    2、创建WRF工作文件及其后续可能用得上的子文件。之所以选择在~/目录下直接建立WRF工作站,主要是方便所有人访问,不需要host/sudo权限。

    1. which gfortran
    2. which cpp
    3. which gcc
    4. sudo apt install gfortran gcc cpp g++ make
    5. gcc --version
    6. gfortran --version
    7. cpp --version
    8. mkdir ~/WRF_WorkStation
    9. mkdir ~/WRF_WorkStation/Libraries
    10. mkdir ~/WRF_WorkStation/netcdf
    11. mkdir ~/WRF_WorkStation/grib2
    12. mkdir ~/WRF_WorkStation/mpich
    13. mkdir ~/WRF_WorkStation/test

    3、进入~/WRF_WorkStation/test文件中,将下载好的Fortran and C Tests Tar File 解压。具体的测试成功与否请参照Compiling WRF (ucar.edu)

    1. tar -xf Fortran_C_tests.tar
    2. gfortran TEST_1_fortran_only_fixed.f
    3. ./a.out
    4. gfortran TEST_2_fortran_only_free.f90
    5. ./a.out
    6. gcc TEST_3_c_only.c
    7. ./a.out
    8. gcc -c -m64 TEST_4_fortran+c_c.c
    9. gfortran -c -m64 TEST_4_fortran+c_f.f90
    10. gfortran -m64 TEST_4_fortran+c_f.o TEST_4_fortran+c_c.o
    11. ./a.out
    12. ./TEST_csh.csh
    13. ./TEST_perl.pl
    14. ./TEST_sh.sh

    其他的unix命令可以后续需要的时候下载!命令下载方式是

    sudo apt install command


    • 创建库

    1、进入到WRF工作文件夹下的Libraries目录下。

    cd ~/WRF_WorkStation/Libraries

    mpich-3.0.4
    netcdf-4.1.3
    Jasper-1.900.1
    libpng-1.2.50
    zlib-1.2.7

    五个压缩包下载到其中,后续可以删掉,也可以保留,随个人喜好。

    2、修改~/.bashrc环境配置,这一步必须有!!!注意###后的内容全部都应该在~/.bashrc的尾部加入,然后用source ~/.bashrc生效。

    1. vi ~/.bashrc
    2. ###-----------------------WRF installation-----------------###
    3. export DIR=/home/hsy/WRF_WORKSTATION/LIBRARIES
    4. export CC=gcc
    5. export CXX=g++
    6. export FC=gfortran
    7. export FCFLAGS=-m64
    8. export F77=gfortran
    9. export FFLAGS=-m64
    10. export JASPERLIB=$DIR/grib2/lib
    11. export JASPERINC=$DIR/grib2/include
    12. export LDFLAGS=-L$DIR/grib2/lib
    13. export CPPFLAGS=-I$DIR/grib2/include
    14. source ~/.bashrc

    3、配置netcdf。

    1. tar xzvf netcdf-4.1.3.tar.gz #or just .tar if no .gz present
    2. cd netcdf-4.1.3
    3. ./configure --prefix=$DIR/netcdf --disable-dap --disable-netcdf-4 --disable-shared
    4. make
    5. make install
    6. vi ~/.bashrc
    7. ###--->netcdf<---###
    8. export NETCDF=$DIR/netcdf
    9. export PATH=$NETCDF/bin:$PATH
    10. source ~/.bashrc
    11. nc-config

    netcdf安装过程可能会有各种各样的问题,请小心操作,一定要谨慎,不能弄错一步!错了也不要害怕,通过make clean消除编译文件后继续重来。直到看见Congratulations! You have successfully installed netCDF!字眼,且Libraries/netcdf/include/netcdf.inc存在,nc-config --help能用!

    4、配置mpich

    1. tar xzvf mpich-3.0.4.tar.gz #or just .tar if no .gz present
    2. cd mpich-3.0.4
    3. ./configure --prefix=$DIR/mpich
    4. make
    5. make install
    6. make check #可省略此步
    7. vi ~/.bashrc
    8. ###--->mpich<---###
    9. export MPICH=$DIR/mpich
    10. export PATH=$MPICH/bin:$PATH
    11. source ~/.bashrc

    5、配置zlib、jasper以及libpng

    1. tar xzvf zlib-1.2.7.tar.gz #or just .tar if no .gz present
    2. cd zlib-1.2.7
    3. ./configure --prefix=$DIR/grib2
    4. make
    5. make install
    6. tar xzvf libpng-1.2.50.tar.gz #or just .tar if no .gz present
    7. cd libpng-1.2.50
    8. ./configure --prefix=$DIR/grib2
    9. make
    10. make install
    11. tar xzvf jasper-1.900.1.tar.gz #or just .tar if no .gz present
    12. cd jasper-1.900.1
    13. ./configure --prefix=$DIR/grib2
    14. make
    15. make install

    进入各自的解压包下,首先配置路径到grib2文件下,./configure --prefix,再make -> make install->make check(可省略)。

    最后的库的编译环境(~/.bashrc)如下:


    ###-----------------------WRF installation-----------------###
    export DIR=/home/hsy/WRF_WORKSTATION/LIBRARIES
    export CC=gcc
    export CXX=g++
    export FC=gfortran
    export FCFLAGS=-m64
    export F77=gfortran
    export FFLAGS=-m64
    export JASPERLIB=$DIR/grib2/lib
    export JASPERINC=$DIR/grib2/include
    export LDFLAGS=-L$DIR/grib2/lib
    export CPPFLAGS=-I$DIR/grib2/include

    ###--->netcdf<---###
    export NETCDF=$DIR/netcdf
    export PATH=$NETCDF/bin:$PATH

    ###--->mpich<---###
    export MPICH=$DIR/mpich
     

    ###--->zlib<---###
    export ZLIB=$DIR/grib2
    export PATH=$ZLIB/bin:$PATH

    ###--->libpng<---###
    export LIBPNG=$DIR/grib2
    export PATH=$LIBPNG/bin:$PATH

    ###--->jasper<---###
    export JASPER=$DIR/grib2
    export PATH=$JASPER/bin:$PATH

    ###--->WPS Compiler<---###
    export WRFIO_NCD_LARGE_FILE_SUPPORT=1
    export LD_LIBRARY_PATH=$DIR/grib2/lib:$LD_LIBRARY_PATH

    zlib、libpng以及jasper的配置环境可以省略,因为前面已存在。


    • 库的兼容性测试

    首先下载Fortran_C_NETCDF_MPI_tests.tar并解压,然后开始进行两个测试,一个是netcdf的测试,另一个是mpich的测试。

    这里注意把设置的NETCDF路径下的netcdf.inc复制到test文件夹下。

    1. tar -xf Fortran_C_NETCDF_MPI_tests.tar
    2. cp ${NETCDF}/include/netcdf.inc .
    3. gfortran -c 01_fortran+c+netcdf_f.f
    4. gcc -c 01_fortran+c+netcdf_c.c
    5. gfortran 01_fortran+c+netcdf_f.o 01_fortran+c+netcdf_c.o \
    6. -L${NETCDF}/lib -lnetcdff -lnetcdf
    7. ./a.out
    8. mpif90 -c 02_fortran+c+netcdf+mpi_f.f
    9. mpicc -c 02_fortran+c+netcdf+mpi_c.c
    10. mpif90 02_fortran+c+netcdf+mpi_f.o \
    11. 02_fortran+c+netcdf+mpi_c.o \
    12. -L${NETCDF}/lib -lnetcdff -lnetcdf
    13. mpirun ./a.out

    • 创建WRF

    1、首先进入WRF与WPS下载目录下,将WRFv4.2与WPSv4.2安装包解压到WRF工作文件夹下,注意两者一定要在同一文件目录下,即保证解压后的WPSV4.2/与WRFV4.2/均在WRF_WORKSTATION文件目录下。

    unzip WPS-4.2.zip -d ~/WRF_WORKSTATION/WPSV4.2/

    unzip WRF-4.2.zip -d ~/WRF_WORKSTATION/WRFV4.2/

    2、配置编译WRF(必须先编译WRF,才可以编译WPS),首先进入WRFV4.2文件目录下,输入./configure进行配置,选择34(dmpar GNU组合),再选择1(basic),然后再编译。

    注意如果这里WRF ./configure报错:libimf.so无法链接,那么参考下面这篇文章可以解决。

    error while loading shared libraries: libimf.so: - Intel CommunitiesHi. I cannot complie my program using the makefile. However, if I type the complie command, it can complie. I donot know why this situation happens.icon-default.png?t=M7J4https://community.intel.com/t5/Intel-Fortran-Compiler/error-while-loading-shared-libraries-libimf-so/td-p/740546​​​​​​​

    1. ./configure
    2. 34
    3. 1
    4. ./compile em_real >& log.compile
    5. ls -ls main/*.exe

    3、等20min左右,直到出现wrf.exe (model executable)
    real.exe (real data initialization)
    ndown.exe (one-way nesting)
    tc.exe (for tc bogusing--serial only)则证明wrf的real case编译成功了。​​​​​​​


    • 创建WPS

    1、首先进入WPSV4.2中, ./clean清除WPS文件目录。

    2、配置WRF,选择dmpar gfortran。

    3、编译WPS。

    1. cd WPSV4.2
    2. ./clean
    3. export WRF_DIR=../WRFV4.2
    4. vi ~/.bashrc
    5. ###---------- WRF compile -----------###
    6. export WRFIO_NCD_LARGE_FILE_SUPPORT=1
    7. source ~/.bashrc
    8. ./configure
    9. 3
    10. ./compile
    11. ls -ls *.exe

    出现三个.exe文件即为成功!

  • 相关阅读:
    一文搞懂idea中的根目录和路径(以Mybatis为例)
    【JVM】类加载器 Bootstrap、Extension、Application、User Define 以及 双亲委派
    SpringMVC(五):获取请求参数
    代码随想录算法训练营第五十六天 |1143.最长公共子序列、1035.不相交的线、53. 最大子序和动态规划
    API接口对接电商平台,接入亚马逊国际站按关键字搜索商品API源数据采集示例
    【java学习—八】关键字static(4)
    数据结构课设:图书信息管理--顺序存储和链式存储
    微服务框架 SpringCloud微服务架构 7 Feign 7.3 性能优化
    HEIF图像编码标准-python读取HEIF图像
    Jmeter实现在请求param和body里面加入随机参数
  • 原文地址:https://blog.csdn.net/A18040554844/article/details/123795498