编译和安装

操作步骤

  1. SVN检出获取ROMS源码。

    建立一个新文件夹,将ROMS源码检出到文件夹中,获取源码需要注册帐户。

    cd /path/to/ROMS
    mkdir ROMS_4.0
    svn checkout --username 帐户名 --password 密码 https://www.myroms.org/svn/src/trunk ROMS_4.0

    例如:

    使用HPC/Huawei12#$的帐户及密码进行源码检出,命令如下:

    svn checkout --username HPC --password Huawei12#$ https://www.myroms.org/svn/src/trunk ROMS_4.0

    源码文件结构如下:

  2. 自定义build脚本。

    1. 为了在使用中对源码内容不做修改,执行以下命令,新建“ROMSProjects”文件夹用于ROMS的编译运行,upwelling是源码包中自带的默认算例。
      cd /path/to/ROMS
      mkdir ROMSProjects
      cd ROMSProjects
      mkdir upwelling
      cd upwelling
    2. 执行以下命令,复制以下文件到“upwelling”目录中。
      cp /path/to/ROMS/ROMS_4.0/ROMS/Bin/build_roms.sh .
      cp /path/to/ROMS/ROMS_4.0/ROMS/External/roms_upwelling.in .
      cp /path/to/ROMS/ROMS_4.0/ROMS/External/varinfo.dat .
      cp /path/to/ROMS/ROMS_4.0/ROMS/Include/upwelling.h .
    3. 执行以下命令编辑“build_roms.sh”文件。
      1. 打开“build_roms.sh”文件。
        vi build_roms.sh
      2. 按“i”进入编辑模式。
        • 设置ROMS根目录和upwelling路径,修改以下内容。
          export ROMS_APPLICATION=UPWELLING
          export MY_ROOT_DIR=/path/to/ROMS
          export MY_PROJECT_DIR=${MY_ROOT_DIR}/ROMSProjects/upwelling
          export MY_ROMS_SRC=/path/to/ROMS/ROMS_4.0

        • 设置编译选项,修改以下内容。
          export USE_MPI=on
          export USE_MPIF90=on
          export which_MPI=openmpi
          export FORT=flang
          export USE_NETCDF4=on

          将 export USE_MY_LIBS=no 注释掉,使用 export USE_MY_LIBS=yes。

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

  3. 执行以下命令编辑“my_build_path.sh”文件。

    1. 打开“my_build_path.sh”文件。
      cd /path/to/ROMS/ROMS_4.0/Compilers
      vi my_build_path.sh
    2. 按“i”进入编辑模式,修改如下内容。

      将第83行的gfortran改为flang。

      将第87行的MPI_ROOT修改为MPI_ROOT=/path/to/hypermpi/hmpi。

      将第295和296行的gfortran改为flang。

      将第311行的MPI_ROOT修改为MPI_ROOT=/path/to/hypermpi/hmpi。

      将第330行的NETCDF=改为NETCDF=/path/to/NETCDF。

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

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

  4. 执行以下命令将“Linux-flang.mk”文件放入/path/to/ROMS/ROMS_4.0/Compilers/。

    cd /path/to/ROMS/ROMS_4.0/Compilers/

    Linux-flang.mk 编写如下:

    cp Linux-gfortran.mk ../
    mv Linux-gfortran.mk Linux-flang.mk
    vi Linux-flang.mk

    修改方式如下:

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

  5. 执行以下命令修改“roms_upwelling.in”文件。

    1. 打开“roms_upwelling.in”文件。
      cd /path/to/ROMS/ROMSProjects/upwelling/
      vi roms_upwelling.in
    2. 按“i”进入编辑模式,修改文件中VARNAME为varinfo.dat的路径。
      VARNAME = /path/to/ROMS/ROMSProjects/upwelling/varinfo.dat

      设置NtileI、NtileJ,二者的乘积应与运行时设置的np(核心数量)相等。

      NtileI=2

      NtileJ=4

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

  6. 执行以下命令进行安装。

    chmod 777 build_roms.sh
    chmod 777 /path/to/ROMS/ROMS_4.0/ROMS/Bin/cpp_clean
    chmod 777 /path/to/ROMS/ROMS_4.0/ROMS/Bin/sfmakedepend
    ./build_roms.sh -j

    目录下生成可执行文件 romsM 且安装未报错,则安装成功。