我从ANSYS Fluent导出了一个网格/网格文件(最初是在Gambit 2.46中创建的),我写了一个非常简单的Fortran程序来打开和关闭它(什么都不做)。为了检查文件是否已损坏,我将其绘制在Tecplot中。
所以,当我使用gfortran使用提到的cgns编译并运行程序时我得到了这个错误(作为cg_error_exit_f()的一部分)
ADF_Database_Open:文件不存在或不是HDF5文件
这是程序
program cavity
include "/usr/include/cgnslib_f.h"
call cg_open_f("Cavity.cgns",CG_MODE_READ,index_file,ier)
!check for error if so exit
if (ier .ne. CG_OK) then
call cg_error_exit_f()
end if
write(*,*)"I kind of opened the file?"
call cg_close_f(index_file,ier)
stop
end program cavity
我能够以cgns格式编写结构化和非结构化网格,没有任何问题。
我怀疑我正在使用的cgns库(在Fedora 15和Scientific linux 6.1中打包的2.5.5版本)仅支持HDF5,而导出的网格文件是以ADF格式编写的。
任何想法绕过这个或者可能添加ADF的想法?顺便提一下,这两个发行版都没有打包。任何其他与cgns版本2.5.5兼容的网格生成器?
我希望我很清楚。如果需要进一步的信息,我会提供。
答案 0 :(得分:0)
在这里有很多可能出错的地方,我担心你没有把问题缩小到底。
你说你从Fluent导出了一个文件(它是什么类型的文件?确定!)。 cg_error_exit_f()列出了错误。我假设你有上述例程的来源?在程序中,你包含一个cgnslib_f.h文件 - 它里面有什么?我假装编译的程序没有任何错误,使这成为一个文件格式问题,而不是一个fortran问题。
再次,验证Fluent生成的文件类型。
答案 1 :(得分:0)
当我遇到这种情况时,我发现了以下工具: hdf2adf adf2hdf
它们位于Ubuntu上的cgns-convert包中,也可能适用于您的发行版。