学习fvcom生物模块遇到的问题之二

在fvcom编译成功了以后,跟据手册所说,需要加入生物的初始条件和边界条件。在bio_model.in这个生物参数文件中,我构建了一个最简单的npzd模型,并使初始值为常数。然后给河流边界中加入各个生物变量的变化值。整理好之后,准备run模型。

学习fvcom生物模块遇到的问题之二

在终端中打印出了biological model的参数设置。然后就出错了,给的提示让我一开始摸不着头脑,后来我通过检索关键字:UPDATE_VAR_BRACKET,在mod_nctools.F中找到了这个子程序。

学习fvcom生物模块遇到的问题之二

同时在这个subroutine中找到了与错误相关的信息:

学习fvcom生物模块遇到的问题之二

知道了错误的出处之后,回头再想,为什么在这里就停了,刚好在打印了biological model的参数信息之后,是在哪个文件中调用了这个subroutine,并打印了这些信息呢?

于是我就找到了mod_bio_3D.F这个文件。并在SUBROUTINE BIO_INITIAL这个子程序中找到它调用了MOD_NCTOOLS,并打印出了生物参数信息。

学习fvcom生物模块遇到的问题之二

也就是说模型在处理生物初始文件的时候出错了。后来我在一个中大大神的提示下,发现是在.nml文件中我将STARTUP_BIO_TYPE设置成了‘observed’,但是我的初始场明明是常数嘛。

学习fvcom生物模块遇到的问题之二

设置成‘constant’了之后,程序就开始正常运行啦。开心~~~。现在回头想想,我真是有点傻,主要是一些小问题没有搞清楚,导致后面的卡顿。仔细的读说明书,跟相关的源码是非常重要的,毕竟这是我们了解fvcom的唯几的工具了。