ROMS:从入门到精通-2.Lake Signell Case

本例官网介绍:
https://www.myroms.org/wiki/LAKE_SIGNELL_CASE
本例主要参考:
https://www.myroms.org/wiki/Talk:build_Script


在上一篇文章里,我们使用的是最新版本ROMS3.7 revision 933 (January 26, 2019) 。这里作为对比,我们写一篇使用老版本ROMS3.5 revision 568 (September 21, 2011)来跑一个算例。使用老版本的原因是张老师所需的区域耦合模式需要老版本ROMS3.5,因此我专门跑一个老版本的算例来适应未来的工作。

0.算例介绍

这个案例中模型展现了以下模拟能力:1)封闭盆地中的风驱动输运,2)波浪-流对底摩擦和沉积物再悬浮的影响,3)河床上的两种粒度的通量,以及4 )悬浮沉积物的再悬浮,运输和沉积。

1.下载

由于是老版本ROMS,不能再直接check最新版,需要自行寻找老版本目录。我所使用的单独的软件,Cornerstone,这是一个mac版本付费的svn管理软件,可以轻松找到你懂得版本。由此可以轻松找到所需的ROMS版本,点击右键下载。下载后再使用FTPS软件上传至集群,比如mac上的transmit。
Cornerstone参数设置界面
Cornerstone仓库目录

当然,作为一个老司机也许你根本用不到图形化界面而是直接命令行svn。

# 由于home文件夹对于文件总数的限制,这里将总目录换在了/scratch/user/hengkai.yao/路径下
#  创建新文件夹
[hengkai.yao@ada2 ~]$ cd /scratch/user/hengkai.yao/
[hengkai.yao@ada2 hengkai.yao]$ mkdir ROMS_3.5

# 下载最新的ROMS版本
[hengkai.yao@ada2 hengkai.yao]$ cd ROMS_3.5
svn checkout --username hengkai1993 https://www.myroms.org/svn/src/tags/roms-3.5 trunk

2.build

#自定义build脚本
[hengkai.yao@ada2 ROMS_3.5]$ cd Projects
[hengkai.yao@ada2 Projects]$ mkdir Lake_signell
[hengkai.yao@ada2 Project]$ cd Lake_signell
# 注意这里文件名存在与新版本的不同
[hengkai.yao@ada2 Lake_signell]$ cp ../../trunk/ROMS/Bin/build.bash .
# 编辑build.bash
[hengkai.yao@ada2 Lake_signell]$ vi build.bash
parallel=1
export   ROMS_APPLICATION=LAKE_SIGNELL
export        MY_ROOT_DIR=/scratch/user/hengkai.yao/ROMS_3.5
export     MY_PROJECT_DIR=%{MY_ROOT_DIR}/Project/Lake_signell
 export       MY_ROMS_SRC=${MY_ROOT_DIR}/trunk
# 考虑本例在集群上并行运算,开启以下开关,并使用ifort编译器
 export            USE_MPI=on
 export         USE_MPIF90=on
 export               FORT=ifort
 export       USE_NETCDF4=on

# 最后:wq保存
# 拷贝头文件
[hengkai.yao@ada2 Lake_signell]$ cp ../../trunk/ROMS/Include/lake_signell.h .
# 多核build运行
./build.bash -j 8

3.run

# 拷贝输入文件
[hengkai.yao@ada2 Lake_signell]$ cp ../../trunk/ROMS/External/{*lake_signell*.in,varinfo.dat} .
# 修改ocean_lake_signell.in文件参数
      NtileI == 4                               ! I-direction partition
      NtileJ == 2                               ! J-direction partition
# 如果不修改可能出现找不到这些文件的情况
FPOSNAM =  ./floats_lake_signell.in
SPARNAM =  ./sediment_lake_signell.in
VARNAME = ./varinfo.dat
# 运行
[hengkai.yao@ada2 Lake_signell]$nohup mpirun -np 8 ./oceanM ocean_lake_signell.in > lake_signell.log & top

在lake_signell.log文件中我们可以看到,
总计用时:
Elapsed CPU time (seconds):

Node # 0 CPU: 52.702
Node # 1 CPU: 53.846
Node # 2 CPU: 53.838
Node # 3 CPU: 53.847
Node # 4 CPU: 53.852
Node # 5 CPU: 53.853
Node # 6 CPU: 53.852
Node # 7 CPU: 53.853
Total: 429.642

ROMS/TOMS: DONE... Tuesday - April 23, 2019 - 9:07:52 PM

DONE表示运行成功。

Last modification:May 31st, 2019 at 04:20 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment