本例官网介绍:
https://www.myroms.org/wiki/LAKE_SIGNELL_CASE
本例主要参考:
https://www.myroms.org/wiki/Talk:build_Script
ROMS:从入门到精通-1.Upwelling Case
本文主要参考https://www.myroms.org/wiki/ROMS_UNSW2008本文所使用的ROMS…
在上一篇文章里,我们使用的是最新版本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。
当然,作为一个老司机也许你根本用不到图形化界面而是直接命令行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表示运行成功。
Ten articles before and after
百度网盘高速下载【唯一有效方案】 – Eddy’s World
MATLAB工具箱推荐(2)mexcdf工具箱 – Eddy’s World
MATLAB编码方式-解决中文乱码问题 – Eddy’s World
使用Zotero进行从未有过的畅快学术体验 – Eddy’s World
科学之路 — 我的启悟(黄瑞新) – Eddy’s World