FVCOM河流输入

河流输入

将河流输入添加到FVCOM涉及以下步骤:

  1. 创建必要的输入文件。
  2. 将相关信息添加到名称列表。

从POLCOMS文件创建FVCOM输入文件

FVCOM手册给出了FVCOM版本3.x所需的NetCDF文件格式的示例。该脚本会write_FVCOM_river.m生成与此格式匹配的文件。此外,要将POLCOMS ASCII河文件转换为FVCOM NetCDF,get_POLCOMS_rivers.m可以使用该功能。以下过程概述了必要的步骤:

  1. 读入SMS网格(read_sms_mesh)。
  2. 提取开放边界节点(add_obc_nodes_list),add_obc_nodes_list如果不应用平均流,则将的参数中的ObcType赋值为1 ,否则为ObcType选择2。有关ObcType选项,请参见FVCOM手册中的表6.1。
  3. 使用读取POLCOMS河域的位置和索引文件以及POLCOMS模型域的NetCDF get_POLCOMS_river_positions
  4. 使用读取POLCOMS河的流量get_POLCOMS_river_discharge
  5. 对于POLCOMS文件中的每条河流,使用来查找FVCOM域中最近的节点get_FVCOM_rivers。添加多条河流的节点的流量相加。
  6. write_FVCOM_riverNetCDF 写出河流流量数据。

如果在网格节点处输入河流流量,则河流节点不得属于具有两个海岸线边缘(且只有一个开放边缘)的元素。下图说明了河流输入的好坏节点。实际上,应将两个海岸线边缘的元素从网格中完全删除,因为它们的速度始终为零。

 

 

生成河流名称列表(nml)文件

  1. 请遵循上述步骤(1-5)。
  2. 运行write_FVCOM_river_nmlof的输出get_FVCOM_rivers以生成包含必要信息的名称列表。

注意:名称列表RIVER_VERTICAL_DISTRIBUTION根据sigma级别列出了河流流量,温度和盐度()的垂直分布。或者,可以将字符串“ uniform” RIVER_VERTICAL_DISTRIBUTION手动添加到该值。若要使用sigma级别导出的垂直分布,可能需要在未FLAG_14 = -DRIVER_FLOAT注释的情况下编译FVCOM 。默认值(带注释)表示垂直分布由字符串给出(例如'uniform'或'40 * 2.5E-02,10 * 0'(请参见此处的示例))。

 

编辑型号名称列表

要将河流数据包括在模型仿真中,请编辑以下条目:

     &NML_RIVER_TYPE
     RIVER_NUMBER          = n,
     RIVER_KIND            = 'variable',
     RIVER_TS_SETTING      = 'calculated',
     RIVER_INFLOW_LOCATION = 'node',
     RIVER_INFO_FILE       = 'casename_riv.nml',
     /

其中n是NetCDF和名称列表(nml)文件中的河流数。设置RIVER_TS_SETTING为“计算”时会根据需要使用建模的温度和盐度调整来保持质量守恒。RIVER_KIND如果排放数据是气候学(即非给定年份)而不是特定时间的时间序列,则可以更改为“定期”。RIVER_FILE如果您有多个河流(在casename_riv.nml文件中分别进行了描述),则不要包括该指令,否则模型将拒绝启动。错误可能包括:

     Read_Name_List:
     &NML_RIVER_TYPE
     RIVER_NUMBER    =           1,
     RIVER_KIND      = variable                                                                        ,
     RIVER_TS_SETTING        = calculated                                                                      ,
     RIVER_INFO_FILE = casename_riv.nml                                                           ,
     RIVER_INFLOW_LOCATION   = node
     /
     Opend File: ./input/casename_riv.nml
     Bad River data in the Name List!
     Specified number of rivers:           1
     But Found           0 ; Valid river name list objects.(Printing Last)
     &NML_RIVER
     RIVER_NAME      = AFON_GOCH                                                                       ,
     RIVER_FILE      = casename_riv.nc                                                            ,
     RIVER_GRID_LOCATION     =        4100,
     RIVER_VERTICAL_DISTRIBUTION     = 0.1
     /
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     FVCOM Fatal Error!
     PLEASE REPAIR THE NAME LIST SO IT IS CONSISTANT... see above
     Stopping FVCOM
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

错误是包含RIVER_FILE指令(或格式不正确的河流名称列表)的情况,或

     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     FVCOM Fatal Error!
     Can Not Read NameList NML_RIVER_TYPE from file: ./casename_run.nml
     Stopping FVCOM
     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

错误是河流名称列表(nml)文件的格式。通过遵循上述步骤,可以避免这两种情况。

关于河流名称的注释

FVCOM不喜欢包含特殊字符的河流名称(例如,空格,(,)或_。此列表显然并不详尽-请添加更多内容)。数字和-似乎很好。

FVCOM还不喜欢两条河流共享相同的名称。重命名您的河流,例如Name1和Name2。

遇到上述任何一种故障,FVCOM都会崩溃,并且不会告诉您原因。

警告

FVCOM不会及时对河流数据进行插值,而是使用与当前模型时间步长最近的河流时间戳。因此,如果您使用错误年份的数据,则河流输入将始终使用最后一个或第一个(较近的那个)。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值