---
title: 编译和安装
description: "1. 使用PuTTY工具，以root用户登录服务器。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengroms_02_0011.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengroms_02_0011.html
indexId: 47bfd238f89c45b5d162910e58c43588eb03d32fd551d668528d2a28cce335b966
---
# 编译和安装

#### 操作步骤

1. 使用PuTTY工具，以root用户登录服务器。
2. 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
```


  源码文件结构如下：

3. 自定义build脚本。

  a. 为了在使用中对源码内容不做修改，执行以下命令，新建“ROMSProjects”文件夹用于ROMS的编译运行，upwelling是源码包中自带的默认算例。

```
cd
/path/to/ROMS
mkdir ROMSProjects
cd ROMSProjects
mkdir upwelling
cd upwelling
```


  b. 执行以下命令，在源码的“ROMS/Bin”目录下，存在“build.sh”和“build.bash”文件，在当前环境下使用“.bash”文件，复制“build.bash”文件到“upwelling”目录中。

```
cp
/path/to/ROMS
/ROMS_3.6/ROMS/Bin/build.bash
.
```


  c. 执行以下命令编辑“build.bash”文件。

    1. 打开“build.bash”文件。

```
vi build.bash
```


    2. 按“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
```


    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 执行以下命令复制输入和配置文件。

```
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 .
```


5. 执行以下命令编辑“ocean_upwelling.in”文件。

  a. 打开“ocean_upwelling.in”文件。

```
vi ocean_upwelling.in
```


  b. 按“i”进入编辑模式，修改“ocean_upwelling.in”文件。
    修改文件中“VARNAME”
    为“varinfo.dat”
    的路径，注意粗体部分。

```
VARNAME =
/path/to/ROMS
/ROMSProjects/upwelling/varinfo.dat
```


    设置“NtileI”
    、“NtileJ”
    ，二者的乘积应与运行时设置的np相等，例如np设置为96时，“NtileI”
    、“NtileJ”
    可以设置如下值，注意粗体部分。

```
NtileI ==
NtileJ ==
```

NtileI、NtileJ的设置规则参考故障排除。


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
6. 执行以下命令编译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
```
