目录
3.1 Error 1:输入参数制备时输出的文件数和网格点数不一致
3.3 Error 3:土壤阻尼深度damping depth太小
1 前言
下面列举了VIC模型在产汇流计算中我遇到的一些报错和解决办法,我运行的环境是Cygwin,VIC版本为4.2.d。在运行过程中可能会出现各种各样的错误,下面仅是我个人遇到的一些问题,欢迎大家指正或补充。
2 汇流程序报错
2.1 Error 1:单位线文件已存在
错误类型:在运行汇流程序时出现下面的错误,提示
Fortran runtime error: Cannot open file '*** .uh_s': File exists
解决办法:说明单位线文件已经存在,在文件夹中删去单位线文件或者在站点文件中将其中的NONE替换成生成的单位线文件***.uh_s的文件路径即可。
2.2 Error 2:站点上游网格识别数量少
错误类型: 识别到的网格点数太少
Number of grid cells upstream of present station 1808
解决办法:这里提示水文站点上游点数为***,如果识别到的点数和你的流域网格点数相比太小,比如一共1000个点只识别到了100个点,则说明水文站点位置设置的不合理。修改站点文件STEHE.txt 中水文站的位置,反复调整直至识别到的点数较为合理。当然不太可能所有的点数都被识别到,一般能识别到90%以上就很好了。
2.3 Error 3:网格点与产流文件不对应
错误类型:在汇流程序运行时,程序会根据输入的掩膜文件xmask,汇流累积量文件flowacc_end和流程文件Fraction生成网格点的经纬度,该经纬度和产流程序生成的经纬度不匹配数量较多。
fluxes_25.7083_113.1249 NOT FOUND, INSERTING ZEROS
解决办法:在产流文件中查询没有识别到的经纬度,判断输入的F_Fraction等三个文件中表头上的经纬度是偏大还是偏小,然后慢慢调整,要微调,一般在小数点后4位到5位进行调整,在纸上记录每次的更改的过程,否则容易混淆。一般也很难调整至完全匹配,能调整到95%的匹配率已经很好了,调整可能需要6.7次十几次,需要耐心慢慢调整。
2.4 Error 4:不能打开文件或找不到文件路径
错误类型:显示不能打开某输入文件,或者读入中断。
CAN NOT OPEN INPUT FILE IN READ_DIFF800
Fortran runtime error: Bad real number in item 1 of list input
解决办法:这类问题比较好解决,一般是输入文件的名字或路径输入错误。第一种报错就是文件名写错,需要检查一下全局参数中的文件名,大小写,空格是否正确,有的自动生成的文件名中有空格,中英文格式的空格可能会出现错误。第二种报错可以去按照他的提示去打开对应的文件,比如下面的图中提示在rout.f文件的第143行,打开文件找到对应的位置,检查文件路径和文件名即可。
3 产流程序报错
3.1 Error 1:输入参数制备时输出的文件数和网格点数不一致
错误类型:在制备植被文件、气象文件、土壤文件过程中,输出文件的点数或者文件数要和流域的网格点数一致,后面才能正确进行计算。但是有时在制备过程中发现输出文件的点数和网格数不一致,会相差几个。
解决办法:出现这类错误的原因一般是制备流域网格时的文件分辨率或者地理坐标系和制备参数文件时的不一致,可以将参数文件重采样到流域网格文件的分辨率上。注意流域网格文件的坐标系要选择地理坐标系,不要选择投影坐标系。否则后面即使产流程序能跑通,汇流程序时的网格点也和产流中生成的不匹配。
3.2 Error 2: 土壤热节点数过小
错误类型:在开启冻土模式时,需要设置土壤热节点的数量,此时土壤节点的数目和土壤参数文件中设置的damping depth 即 dp 的值不相匹配时,就会出现这类错误。
The number of soil thermal nodes (3) is too small for the supplied damping depth (4.000000) with EXP_TRANS set to TRUE, leading to fewer than 3 nodes in the top 50 cm of the soil column. For EXP_TRANS=TRUE, Nnodes and dp must follow the relationship: 5*ln(dp+1)<Nnodes-1
解决办法:把土壤节点数调大,当然节点数越大计算精度越高,但计算时间越长。节点数和dp之间应满足关系
3.3 Error 3:土壤阻尼深度damping depth太小
错误类型:同上面的错误2,在开启冻土模式时,在土壤参数中还需要对土壤热阻尼深度dp进行设置,一般默认为4m。但是如果在参数率定过程中我们对D2,D3进行了修改,使得D1+D2+D3的值超过了4m,那么就可能会报错。因为dp应该是土壤热通量求解的下边界,但是这个下边界没有到达土壤柱的底部,因此出现错误。报错语句如下:
Soil thermal nodes do not extend below bottom soil layer, currently unable to handle this condition.
解决办法:把dp的大小调整至大于等于D1+D2+D3即可。
4 总结
上面是我遇到的一些问题与经过测试后我的解决方法,后面若还遇到其余问题本系列会持续更新。也欢迎大家交流遇到的问题。
最后附上VIC的官方网站,大家有不明白的参数等,也可以直接在上面查询。