0、介绍
在此重复中国科学院海洋研究所徐尧博士的博士论文中第四章的模拟研究(太平洋海浪时空变化特征分析)。利用 WW3 海浪模式模拟 2002 年至 2011 年期间的太平洋海浪场。对海浪的有效波高以及能量输入耗散情况进行分析,分区域讨论其时空变化特征,并开展了相应的谱分析研究。
徐尧.(2017).南海台风浪与太平洋海浪的数值模拟(博士学位论文,中国科学院大学(中国科学院海洋研究所)). https://kns.cnki.net/KCMS/detail/detail.aspx?dbname=CDFDLAST2018&filename=1017099439.nh
1、数据准备
创建文件夹,将写好的输入文件放入其中
mkdir mww3_data_Pacific
1.1 数据下载
a.ETOPO2 全球地形数据集:https://www.ngdc.noaa.gov/mgg/global/etopo2.html
b.CCMP(Cross Calibrated Multi Platform Ocean Surface Wind Velocity)提供的风场数据:podaac.jpl.nasa.gov/dataset/CCMP_MEASURES_ATLAS_L4_OW_L3_0_WIND_VECTORS_FLK
c.NDBC(National Data Buoy Center)提供的浮标数据:www.ndbc.noaa.gov
1.2 地形数据准备
准备Pacific.bot、Pacific.mask、Pacific.obs三个文件:
Pacific.bot是描述地形高度的文本文件,每一行为某一纬度的高度值,从左到右对应经度增加,从上到下各行的对应纬度值增加(默认北半球纬度为正,南半球纬度为负,东半球经度为0~180,西半球精度为180~360);此处使用空间分辨率为0.5°×0.5°的网格,空间范围是90E~60W,75S~75N。
Pacific.mask是描述格点类型的文本文件,文件的书写方式和Pacific.bot相同。1表示海洋,0表示陆地;
Pacific.obs是描述次网格地形信息的文本文件,文件的书写方式和Pacific.bot相同,但每个格点包含两个数据,先完整书写一个数据,再完整书写另一个。此处不考虑次网格地形信息,都设为0。
1.3 网格输入文件
准备ww3_grid.inp文件,文件中各行确定了如下信息:
# 网格名称
'Pacific grid'
# 频率增加因子,首频率,离散波数个数,方向个数,首个方向
1.10 0.0412 24 36 0
# 模式干启动(不需要初始文件),波在x和y方向的可以传播,波在方向上可以转换,但在波数上不可以转换,激活源项
F T T T F T
# 模式传播计算步长为 1800 s,地理空间传播步长为 600 s,内部谱的传播步长采用 900 s,源函数的积分时间步长为 30 s
1800. 600. 900. 30.
# 次网格信息的定义方式
&MISC FLAGTR = 4 /
END OF NAMELISTS
# 矩形网格,球坐标,不包含周期边界条件
'RECT' T 'NONE'
# 纬向格点数,经向格点数
420 300
# 纬向分辨率(1/4),经向分辨率 (1/4)
1 1 4
# 首个格点的经度和纬度,标尺因子
90.25 -74.75 1.
# 分辨海陆的最小深度,模式中海洋最小深度,地形文件的标签数,标尺因子,文件读取方式,文件为自由格式,按名称索引文件,文件名
-0.1 2.50 20 1. 1 1 '(….)' 'NAME' 'Pacific.bot'
# obstruction文件的标签号,标尺因子,文件读取方式(从下往上输入到矩阵中),文件为自由格式,按文件名索引文件,文件名
21 1. 1 1 '(….)' 'NAME' 'Pacific.obs'
# mask文件的标签号,文件读取方式,文件为自由格式,按名称索引文件,文件名
22 1 1 '(….)' 'NAME' 'Pacific.mask'
# 输入文件结束
0. 0. 0. 0. 0
1.4 风场数据准备
准备wind.raw文件:
wind.raw是描述风速的文本文件,首行为时间,如“20150101 000000”,然后是每一纬度的纬向风速(向东为正),从西向东写入,按照从北到南的顺序写入各个纬度上的数值,每个数值单独占一行。写完纬向风速后,再写经向风速(向北为正),全部写完后再写下一个时刻的风速值。此处使用空间分辨率为0.25°×0.25°的网格,时间分辨率是6小时,空间范围是0E~180W,-78.375S~78.375N。
1.5 风场输入文件
准备ww3_prep.inp文件,文件中各行确定了如下信息:
# 输入场类型是风场,与网格同为矩形坐标,输入场文件中包含时间信息,包含头部信息
'WND' 'LL' T T
# 纬向起始坐标,终止坐标,坐标个数,经向起始坐标,终止坐标,坐标个数
0. 359.75 1440 -78.375 78.375 628
# 按文件名索引文件,文件读取方式(从上往下输入到矩阵中),文件为自由格式
'NAME' 3 1 '(...T...)' '(...F...)'
# 文件的标签号,文件名
20 'wind.raw'
1.6 初始条件输入文件
准备ww3_strt.inp文件,文件中确定了如下信息:
# 冷启动
5
1.7 计算程序输入文件
ww3_multi可以方便地用来计算嵌套网格,非嵌套情况下可以使用ww3_shel来计算。这里不是嵌套网格,但是为了后续简单,仍然使用ww3_multi计算
准备ww3_multi.inp文件,文件中各行确定了如下信息:
# 网格个数,输入场个数,各个网格间使用不同地点输出文件,输出类型,各个网格使用相同地程序输出(点输出和其他输出)
1 1 F 1 T T
# 风场文件名
'gwind' F F T F F F F
# 网格名,风场作为唯一地输入场,级别号(最外层网格为1,越往内越大),组号,通信进程占比,计算进程占比,不输出降级边界条件信息
'Pacific' 'no' 'no' 'gwind' 'no' 'no' 'no' 'no' 1 1 0.00 1.00 F
# 开始时间,结束时间
20150101 000000 20150101 230000
# 单向嵌套,输出时间的相关标签(此处不懂)
F F
# 输出的开始时间,间隔,结束时间
20150101 000000 3600 20150101 230000
# 不输出输入场数据
N
# 输出场:水深,风速,波高,频率峰值,方向峰值
DPT WND HS FP DP
# 点输出
20150101 000000 0 20150101 230000
# track输出
20150101 000000 0 20150101 230000
# restart文件输出
20150101 000000 0 20150101 230000
# 边界条件输出
20150101 000000 0 20150101 230000
# 各个海浪场输出
20150101 000000 0 20150101 230000
# 结束输出标签
'the_end' 0
# 不移动网格数据
'STP'
1.8.1 场输出后处理的输入文件(使用gx_outf),或者进行1.8.2
准备gx_outf.inp文件,文件中各行确定了如下信息:
# 输出开始时间,间隔,结束时间
20150101 000000 3600 20150101 230000
# 不识别输出标签
N
# 输出场:水深,风速,波高,频率峰值,方向峰值
DPT WND HS FP DP
# 输出场x方向最小格点数,最大格点数,y方向最小格点数,最大格点数,输出海洋格点,输出边界格点
0 500 0 500 T T
1.8.2 场输出后处理的输入文件(使用ww3_ounf)
准备ww3_ounf.inp文件,文件中各行确定了如下信息:
# 输出开始时间,间隔,输出次数
20020101 000000 3600. 24
# 不识别输出标签
N
# 输出波高
HS
# netcdf版本为4,变量类型为REAL
3 4
# 涌浪分割
0 1 2
# 变量在同一文件中
T
# 文件前缀
ww3.
# 日期的字符数
6
# 输出场x方向最小格点数,最大格点数,y方向最小格点数,最大格点数
1 1000000 1 1000000