编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- SVN检出获取ROMS源码。
建立一个新文件夹,将ROMS源码检出到文件夹中,获取源码需要注册帐户。
cd /path/to/ROMS mkdir ROMS_3.6 svn checkout --username 帐户名 --password 密码 https://www.myroms.org/svn/src/trunk ROMS_3.6
例如:
使用HPC/Huawei12#$的帐户及密码进行源码检出,命令如下:
svn checkout --username HPC --password Huawei12#$ https://www.myroms.org/svn/src/trunk ROMS_3.6
源码文件结构如下:
- 自定义build脚本。
- 为了在使用中对源码内容不做修改,执行以下命令,新建“ROMSProjects”文件夹用于ROMS的编译运行,upwelling是源码包中自带的默认算例。
cd /path/to/ROMS mkdir ROMSProjects cd ROMSProjects mkdir upwelling cd upwelling
- 执行以下命令,在源码的“ROMS/Bin”目录下,存在“build.sh”和“build.bash”文件,在当前环境下使用“.bash”文件,复制“build.bash”文件到“upwelling”目录中。
cp /path/to/ROMS/ROMS_3.6/ROMS/Bin/build.bash .
- 执行以下命令编辑“build.bash”文件。
- 打开“build.bash”文件。
vi build.bash
- 按“i”进入编辑模式,修改以下内容。
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_3.6
export USE_MPI=on export USE_MPIF90=on export which_MPI=openmpi
export FORT=gfortran
export USE_LARGE=on export USE_NETCDF4=on export USE_PARALLEL_IO=on
export PATH=/path/to/OPENMPI/bin:$PATH
export NF_CONFIG=/path/to/NETCDF/bin/nf-config export NETCDF_INCDIR=/path/to/NETCDF/include export NETCDF_LIBDIR=/path/to/NETCDF/lib
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“build.bash”文件。
- 为了在使用中对源码内容不做修改,执行以下命令,新建“ROMSProjects”文件夹用于ROMS的编译运行,upwelling是源码包中自带的默认算例。
- 执行以下命令复制输入和配置文件。
cp /path/to/ROMS/ROMS_3.6/ROMS/External/ocean_upwelling.in . cp /path/to/ROMS/ROMS_3.6/ROMS/External/varinfo.dat cp /path/to/ROMS/ROMS_3.6/ROMS/Include/upwelling.h .
- 执行以下命令编辑“ocean_upwelling.in”文件。
- 打开“ocean_upwelling.in”文件。
vi ocean_upwelling.in
- 按“i”进入编辑模式,修改“ocean_upwelling.in”文件。
修改文件中“VARNAME”为“varinfo.dat”的路径,注意粗体部分。
VARNAME = /path/to/ROMS/ROMSProjects/upwelling/varinfo.dat
设置“NtileI”、“NtileJ”,二者的乘积应与运行时设置的np相等,例如np设置为96时,“NtileI”、“NtileJ”可以设置如下值,注意粗体部分。NtileI == 6 NtileJ == 16
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“ocean_upwelling.in”文件。
- 执行以下命令编译ROMS。
./build.bash -j 8
在使用MPI的情况下,编译成功将生成可执行文件“OceanM”,可使用ls命令进行查看。
ll /path/to/ROMS/ROMSProjects/upwelling
-rwxr-xr-x 1 root root 1671056 Aug 15 18:41 oceanM