SWAN学习笔记——安装与模拟实例

本文将安装海浪模式SWAN并模拟2012年10月底飓风桑迪经过美国西海岸时大西洋的海浪变化,参考了知乎用户模式小站的文章https://zhuanlan.zhihu.com/p/393743862,使用了其分享的文件

1、下载地址

https://swanmodel.sourceforge.io/

2、选择合适的编译器,更改macro.inc中的变量

# 在命令行输入
module load mpi/intelmpi/2017.4.239
module load mathlib/netcdf/4.4.1
cd swan4131
make clean
make config

# 在macro.inc中更改
F90_MPI = mpiifort
NETCDFROOT=`nc-config --prefix`

# 在命令行输入
make mpi

3、准备输入文件 Sandy.swn

# 项目名称和标记
PROJECT 'Sandy' '1'
# 标题
'Sandy 2012'

# 以时间变化、二维方式运行
MODE NONSTATIONARY TWODIMENSIONAL
# 深度的最小值,按照真实能量输出,按照航海习惯定义风和浪的方向,尾部高频的参数
SET DEPMIN 0.05 INRHOG 1 NAUTICAL PWTAIL 5
# 使用球坐标系
COORDINATES SPHERICAL

# 定义计算网格:曲坐标,x方向和y方向格点数-1,被排除格点的x坐标和y坐标,θ方向格点数,最低和最高的频率间隔,频率个数
CGRID CURVILINEAR 86 64 EXC 9.999000e+003 9.999000e+003 CIRCLE 36 0.04 1.0 24
# 读取计算网格:深度值比例,文件名,文件格式,文件头行数,每一个时间层的文件头行数,读取方式
READGRID COORDINATES 1 'Atlantic_EW.grd' 4 0 0 FREE 

# 定义地形网格:曲坐标,x方向和y方向交错率,x方向和y方向格点数-1,被排除格点的x坐标和y坐标
INPGRID BOTTOM CURVILINEAR 0 0 90 46 EXC 9.999000e+003
# 读取计算网格:深度值比例,文件名,文件格式,文件头行数,读取方式
READINP BOTTOM 1 './data/Atlantic_EW.bot' 4 0 FREE 

# 定义输入场网格:风场,矩形网格,x方向和y方向坐标初始值,x轴方向,x方向和y方向格点数
INPGRID WIND REGULAR 0 -90 0 1440 721 1 1 &
#   时间变化,开始时间,时间间隔,结束时间
    NONSTATIONARY 20121028.000000 3 HR 20121029.000000
#读取输入场:风场,风速值比例,文件名,文件格式,头文件格式,读取方式
READINP WIND 1 'global_wind.dat' 4 0 FREE

# 边界条件:通过两点坐标定义三边上恒定的波参数,有效波高,能量谱周期,峰值方向,方向传播系数
BOUNDSPEC SEGMENT IJ   0   0   0  45 CONSTANT PAR 0.5 14.0 180. 20.
BOUNDSPEC SEGMENT IJ   0   0  89   0 CONSTANT PAR 0.5 14.0 180. 20.
BOUNDSPEC SEGMENT IJ  89   0  89  45 CONSTANT PAR 0.5 14.0 0. 20.

# 默认方式初始化
INIT

# 物理过程的参数化方案选择与参数设置
# 在浅水中深度导致的波破碎
BREAKING CONSTANT 1.0 0.73
# 底部摩擦
FRICTION MADSEN 0.05
# 线性增长模型
GEN3 KOMEN
# 白冠破碎
WCAP KOM 2.36E-5 3.02E-3 2.0 1.0 1.0

# 计算方案
PROP BSBT

# 输出空间分布,名称,无文件头,文件名,输出方式,变量,数值比例,输出时间
BLOCK 'COMPGRID' NOHEADER 'Sandy_hsig.mat'   LAY 4 HSIGN 1.  OUTPUT 20121028.000000 1 HR
BLOCK 'COMPGRID' NOHEADER 'NP_bot.mat'       LAY 4 BOTLEV 1.

BLOCK 'COMPGRID' NOHEADER 'Sandy_xp.mat'     LAY 4 XP 1.
BLOCK 'COMPGRID' NOHEADER 'Sandy_yp.mat'     LAY 4 YP 1.
BLOCK 'COMPGRID' NOHEADER 'Sandy_wind.mat'   LAY 4 WIND 1.   OUTPUT 20121028.000000 1 HR
BLOCK 'COMPGRID' NOHEADER 'Sandy_hsig.nc'    LAY 4 HSIGN 1.   OUTPUT 20121028.000000 1 HR

# 计算:时间变化,开始时间,时间步长,单位,结束时间
COMPUTE NONSTAT 20121028.000000 3600 SEC 20121029.000000

# 输出hotfile用于以后计算
HOTFILE 'Sandy_init.hot'

# 结束
STOP

4、准备计算网格文件 Atlantic_EW.grd

Atlantic_EW.grd是描述网格坐标的文本文件,将每一纬度的经向坐标从西向东写入,按照从南到北的顺序写入各个纬度上的数值,每个数值单独占一行。写完经向坐标后,再写纬向坐标。此处使用空间分辨率为0.5°×0.5°的网格,时间分辨率是1小时,空间范围是85W~40W,27N~50N。

数据来源 ETOPO5 https://www.ngdc.noaa.gov/mgg/global/etopo5.HTML

5、准备风场文件 global_wind.dat

global_wind.dat是描述风速的文本文件,将每一纬度的纬向风速(向东为正)从西向东写入,按照从南到北的顺序写入各个纬度上的数值,每个数值单独占一行。写完纬向风速后,再写经向风速(向北为正),全部写完后再写下一个时刻的风速值。此处使用空间分辨率为0.25°×0.25°的网格,时间分辨率是1小时,空间范围是0E~180W,-78.375S~78.375N。

数据来源 ERA5 hourly data on single levels from 1979 to present https://cds.climate.copernicus.eu/cdsapp#!/dataset/reanalysis-era5-single-levels?tab=overview

6、运行

export  PATH=...../swan/swan4131:$PATH
rm -f machinefile
echo $SLURM_JOB_NODELIST > machinefile

../../swan4131/swanrun -input swan_sandy -mpi 2
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Swan海洋模式手册是用于海洋预报和研究的软件工具的详细说明书。Swan是一个数值模拟软件,主要用于模拟和预测海洋中的风浪和涌浪。该模型是由荷兰阿姆斯特丹自由大学开发的,并广泛应用于海洋工程、海岸管理和海洋科学研究等领域。 Swan海洋模式手册主要包括以下内容: 1. 模型简介:手册首先介绍了Swan模型的基本原理和模拟范围。它解释了如何使用模型模拟风场、波浪场和海洋流场,并提供了模型的适用条件和限制。 2. 模型设置:手册详细介绍了Swan模型的各种设置选项,包括网格设置、边界条件、风场输入、地形输入等。它解释了每种设置的作用和影响,并给出了最佳实践建议。 3. 模型运行:手册提供了Swan模型的运行指南,包括输入数据的格式要求、模型的控制文件编写方法以及运行参数的选择。它还介绍了模型的输出结果类型和格式,并说明如何解析和分析模拟结果。 4. 模型实例:手册提供了一些实例案例,展示了如何使用Swan模型解决具体的海洋问题。这些案例涵盖了海岸侵蚀、波浪能资源评估、海洋结构物设计等各种应用领域。 通过阅读Swan海洋模式手册,用户可以了解到如何使用这个强大的数值模型来进行海洋预报和研究。它提供了清晰的操作指南和实际案例,有助于用户快速上手并高效地利用模型进行自己的工作。无论是海洋工程师、科学家还是决策者,都可以从中获得有价值的信息和指导,提高海洋工作的效率和准确性。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值