编译和安装

操作步骤

  1. 使用PuTTY工具,以root用户登录服务器。
  2. 执行以下命令解压WRF安装包。

    tar -vxf WRF-4.2.tar.gz

  3. 执行以下命令进入解压后的目录。

    cd WRF-4.2

  4. 执行以下命令修改“arch/configure.defaults”文件。

    1. 打开“arch/configure.defaults”文件。
      vi arch/configure.defaults
    2. 按“i”进入编辑模式,在文件中第1978行末尾插入如下全部内容。
      ################################################## #########
      #ARCH   Linux   aarch64,clang HYPERMPI#serial smpar dmpar dm+sm
      DESCRIPTION     =       CLANG ($SFC/$SCC)
      DMPARALLEL      =        1
      OMPCPP          =        -D_OPENMP
      OMP             =        -fopenmp
      OMPCC           =        -fopenmp
      SFC             =       flang
      SCC             =       clang
      CCOMP           =       clang
      DM_FC           =       mpif90 -f90=$(SFC)
      DM_CC           =       mpicc -cc=$(SCC) -DMPI2_SUPPORT
      FC              =       CONFIGURE_FC
      CC              =       CONFIGURE_CC
      LD              =       $(FC)
      RWORDSIZE       =       CONFIGURE_RWORDSIZE
      PROMOTION       =       #-fdefault-real-8
      ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR  -DWRF_USE_CLM
      CFLAGS_LOCAL    =      -mcpu=native -w -O3 -c -march=armv8.2-a
      LDFLAGS_LOCAL   =
      CPLUSPLUSLIB    =
      ESMF_LDFLAG     =      $(CPLUSPLUSLIB)
      FCOPTIM         =       -O3 -funroll-loops -march=armv8.2-a
      FCREDUCEDOPT    =       $(FCOPTIM)
      FCNOOPT         =       -O0
      FCDEBUG         =      -g # -fbacktrace -ggdb-fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
      FORMAT_FIXED    =       -ffixed-form
      FORMAT_FREE     =       -ffree-form -ffree-line-length-0
      FCSUFFIX        =
      BYTESWAPIO      =       -fconvert=big-endian
      FCBASEOPTS_NO_G =       -w $(FORMAT_FREE) $(BYTESWAPIO)
      FCBASEOPTS      =       -mcpu=native $(OMP) $(FCBASEOPTS_NO_G)
      MODULE_SRCH_FLAG =
      TRADFLAG        =      -traditional
      CPP             =      /lib/cpp -P
      AR              =      ar
      ARFLAGS         =      ru
      M4              =      m4 -G
      RANLIB          =      ranlib
      RLFLAGS         =
      CC_TOOLS        =      $(SCC)

      执行4.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  5. 执行以下命令修改“phys/module_mp_SBM_polar_radar.F”文件。

    1. 打开“phys/module_mp_SBM_polar_radar.F”文件。
      vi phys/module_mp_SBM_polar_radar.F
    2. 按“i”进入编辑模式,在文件中第452行添加如下内容。
      external :: derf

      执行5.a之后,按“Esc”键,输入“:set nu”,按“Enter”即可显示出行号。

    3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  6. 执行以下命令设置环境变量。

    export WRFIO_NCD_LARGE_FILE_SUPPORT=1
    export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include"
    export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -L$ZLIB/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz"

  7. 执行以下命令安装time。

    yum install time

  8. 执行如下命令进行编译安装。

    echo 4 | ./configure
    sed -i "s%-lz% -L/path/to/ZLIB/lib -lz%g" configure.wrf
    ./compile -j 16 em_real 2>&1 | tee -a compile.log

    当命令行出现如下图所示内容时,表示WRF程序安装成功。