FVCOM - 错误1-10

ps:因代码有改过,故部分错误仅限个人。

1. 报错

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
Unable to OPEN the test file:
../casenameout/.fvcomtestfile
IOSTAT ERROR#29; suggests bad directory path:
../casenameout/
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原因

未建立输出文件夹

修改

在case文件夹里建立输出文件夹 ‘ casenameout ‘

2. 报错

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
IN SURFACE WIND BOUNDARY CONDITION FILE OBJECT
FILE NAME: casename_wnd.nc
THE MODEL RUN STARTS BEFORE THE FORCING TIME SERIES
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原因

风场文件的时间范围缺失,与nml文件中定义需要运行的时间
i.e. casename_run.nml
     &NML_CASE
     START_DATE = ‘2016-10-01 00:00:00’,
     END_DATE = ‘2017-06-30 00:00:00’,
     但 casename_wnd.nc 中时间范围为: 2016-10-01 00:00:00~2017-06-28 23:00:00,均小于 END_DATE,故报时间错误。同理,若时间均大于START_DATE,也会报错。

修改

① 修改 ‘END_DATA’         至小于 ‘风场文件时间’
② 重新生成 ‘风场文件时间’ 至大于 ‘END_DATA’

3. fvcom调试报错

...
The attributes of this name conflict with those made accessible by a USE statement
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原因

文件中变量定义与全局变量冲突

修改

将报错文件中的冲突定义改成注释行。

4. 报错 - 无原因停止

下一步:输出波浪数据后,即可跑模型了,却没给出FVCOM ERROR

!==============================================================
!
!           SETTING UP NESTING IO
! Time Series Probes are off
!====================================================
!====================================================
!============== STARTING MAIN LOOP AT:===============
!      0   2016-06-01T00:00:00.000000      UNKNOWN       -1.0000  |                    |
!====================================================
!====================================================
!====================================================
!====================================================

原因

1)加上波浪后报错
      未将 ‘ specavs ’ 文件放入casenamein 文件中,缺失文件报错停止。

5. 报错

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
You must specify a valid projection reference and compile with PROJ to use files with 
cartesion coordinates in spherical mode
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原因

编译时,make.inc 中坐标开关设置错误

修改

确认 FLAG 2 的开关情况,要与输入文件的坐标形式对应,并重新编译运行
【FLAG 2:‘ on ’ 是球坐标,‘ off ’ 是笛卡尔(UTM)坐标】。

6. 报错

!           SETTING UP NESTING IO
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
Be not ashamed of mistakes and thus make them crimes.
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原因

 YOUR NESTING FILE DOES NOT HAVE THE SAME NUMBER OF LEVELS AS YOUR MODEL

模型的sigma层和nesting文件的分层不一致

修改

1、修改模型sigma层设置(casename_sigma.dat),使之与nesting文件一致;
2、重写nesting文件,使之与模型一致。

7. 报错

!====================================================
! Recalculating mean density in pressure coordinates
FOUND NO DATA AT DEPTH:   7.671966
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
RHO_PMEAN: In Parallel case, found fcount LT 0.0!
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

改跑斜压后,修改了部分nml中的设置

原因

打开了 ’ RECALCULATE_RHO_MEAN = T ’

  • 一般不用开,特别是区域小的情况下。但是开着也没有问题,此处会报错,还是因为模型有地方有问题,故打开通不过(via ding/2019.10.21 wechat)

修改

将RECALCULATE_RHO_MEAN关掉

  • 作用:隔一段时间再计算平均密度场,为减小斜压梯度力计算误差

8. 报错

!                 RUNNING COLDSTART                              !
!                                                                !
!              OPENING FILES FOR COLDSTART                       !
!                                                                !
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FVCOM Fatal Error!
File: ../casenamein/initial_casename.nc; Can not be opend by nf90_open
NF90ERROR::No such file or directory
Stopping FVCOM
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

跑斜压,读取初始场文件出错。

原因

文件名有错,或文件未放置在读取文件中

9. fvcom调试报错

mpif90  -c  -O3 -I/lustre/work/chenyanyu/FVCOM_source_ssc/libs/install/include        mod_prec.f90
error: can't open file mod_prec.o for write
compilation aborted for mod_prec.f90 (code 1)
make: *** [mod_prec.o] Error 1

原因

未加载module

修改

1、module list
一般来说是会发现没东西
2、回到根目录

  • source .bashrc
  • module load intel2013(看集群环境更换加载模块)

**一劳永逸的办法是修改 “.bash_profile” 和 ".bashrc"文件

10. fvcom调试报错

mpicc -c -O3 -I/lustre/home/zhangjiyunSDH/cyy/bg/FVCOM_source_unswsed/libs/install/include 
-I/lustre/home/zhangjiyunSDH/cyy/bg/FVCOM_source_unswsed/libs/install/include       
func_pointer.c
make: *** [func_pointer.o] Error 7

原因

集群环境不一致

修改

调用集群环境

  • source /lustre/home/openmpi-intel2016.sh
<think>好的,我现在需要处理用户关于FVCOM开边界条件设置的问题。首先,我得回顾一下用户的问题,确保我完全理解他们需要什么。用户明确询问的是FVCOM中开边界条件的定义或设置方法。他们可能在进行海洋数值模拟时需要配置模型的开边界,这对于模拟结果的准确性非常重要。 接下来,我需要查阅提供的引用内容,看看哪些部分与开边界条件相关。引用[1]提到了使用fvcom-toolbox定义FVCOM对象,但似乎更多是关于数据读取。引用[2]讨论了嵌套功能中的生物地球化学变量,可能和边界条件有关,但主要是嵌套配置。引用[3]详细描述了FVCOM非结构化网格生成的过程,其中提到了开放边界节点的处理,特别是add_obc_nodes_list函数的使用和ObcType的赋值。引用[4]则介绍了潮差计算和模型运行时的技术,比如有限体积积分和干湿判别,但可能和边界设置关联不大。 重点在引用[3],它详细说明了如何通过fvcom-toolbox处理开放边界。用户可能需要了解如何从网格文件开始,提取开放边界节点,设置ObcType,并导出相应的.dat文件。此外,引用[2]中提到FABM_NESTING_ON可能与嵌套边界条件相关,但用户的问题可能更关注基础的开边界设置,而不是生物地球化学嵌套。 接下来,我需要组织这些信息。首先,开边界条件的类型,如水位、流速、辐射条件等,可能需要在FVCOM手册中查找具体参数,比如ObcType的不同值对应的条件。然后,步骤方面,用户需要知道如何准备网格、提取边界节点、设置类型,最后生成相关文件。此外,嵌套配置可能是一个高级部分,但根据引用[3],设置ObcType为2对应的是“钳制”条件,引用了Beardsley和Haidvogel(1981)的方法,这应该详细说明。 需要注意的是,用户可能使用的是fvcom-toolbox,因此需要强调相关函数的使用,如add_obc_nodes_list和write_FVCOM_obc。同时,提醒用户参考FVCOM手册中的表格,确保他们了解不同ObcType选项的具体含义和应用场景。 可能还需要提及实际应用中的注意事项,比如边界节点的顺序、类型选择的物理意义,以及如何验证边界条件的正确性。引用[4]中的并行计算和干湿处理可能对整体模型运行有影响,但可能不直接关联边界设置,所以可能不需要深入。 最后,生成相关问题时,需要考虑用户可能的后续需求,比如如何验证边界条件、常见错误处理、不同边界类型的选择依据,以及嵌套配置的具体步骤。这些问题可以帮助用户进一步深入学习和解决问题。</think>### FVCOM开边界条件设置方法分步说明 #### 1. 基础概念 开边界条件(Open Boundary Conditions, OBC)是海洋数值模型中控制边界处物理量(如水位、流速、温度等)变化的核心机制。FVCOM支持多种边界类型,通过节点属性参数$ObcType$定义[^3]。 #### 2. 具体设置流程 **步骤1:网格预处理** 使用`read_sms_mesh`函数读取SMS生成的网格文件,需确保网格包含: - 节点坐标 - 单元连接关系 - 测深数据 **步骤2:边界节点标记** ```python # fvcom-toolbox示例代码 from PyFVCOM.grid import add_obc_nodes_list # 定义开放边界节点列表(需预先确定边界节点编号) obc_nodes = [1024, 1025, ..., 2048] # 设置边界类型(ObcType=2表示钳制边界条件) mesh_with_obc = add_obc_nodes_list( original_mesh, obc_nodes_list=obc_nodes, ObcType=2 # 参考FVCOM手册表6.1选择类型 ) ``` **步骤3:边界参数配置** 在`namelist.nml`中设置关键参数: ```fortran &NML_NESTING NESTING_ON = T FABM_NESTING_ON = T # 生物地球化学边界时需要[^2] NESTING_FILE_NAME = 'your_obc_file.nc' / ``` **步骤4:生成边界文件** 通过工具链导出ASCII文件: - `write_FVCOM_obc`生成`*_obc.dat` - 文件格式示例: ``` Open Boundary Node Number = 3 Node1_ID ObcType1 TidalComponent1 Node2_ID ObcType2 TidalComponent2 ... ``` #### 3. 边界类型对照表 | ObcType | 物理意义 | 数学表达式 | 适用场景 | |---------|----------------------------|------------------------------|--------------------| | 1 | 水位指定 | $\eta = \eta_{obs}$ | 潮汐强迫边界 | | 2 | 钳制边界(梯度归零) | $\frac{\partial \phi}{\partial n}=0$ | 被动辐射边界[^3] | | 3 | 流速指定 | $u=u_{obs},\ v=v_{obs}$ | 河流入口 | | 4 | Flather辐射条件 | $\eta + \sqrt{h/g} \cdot u_n = \eta_{ext}$ | 开敞海域边界[^4] | #### 4. 嵌套边界特殊配置 当使用嵌套网格时,需在父网格的`namelist.nml`中激活: ```fortran &NML_NCNEST NCNEST_ON = T BIO_NESTING_ON = T # 生物地球化学变量传递[^2] / ``` 子网格将自动继承父网格的边界变量,包括温度、盐度和FABM生态变量。 #### 5. 验证建议 1. 使用`plot_obc_nodes`可视化边界节点分布 2. 通过`check_mesh_consistency`检测节点连续性 3. 初始运行建议设置`OBERATION = T`输出边界诊断信息
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值