使用fortran语言定义字符串数组:
character(len = 20), dimension(5) :: strings = (/"hello", "world", "Hello", "HDF5", "fortran"/)
现在我想使用HDF5 API参考文档所示的 h5ltmake_dataset_string_f()
接口将此数组保存到数据集中
Fortran90接口:h5ltmake_dataset_string_f子例程h5ltmake_dataset_string_f(loc_id,dset_name,buf,errcode)隐式无
整数(HID_T),意图(IN):: loc_id!文件或组标识符字符(LEN = *),intent(IN):: dset_name!数据集字符的名称(LEN = *),intent(IN),dimension(:) :: buf!数据缓冲区整数::错误代码!错误代码结束子程序h5ltmake_dataset_string_f
我的呼叫代码如下
h5ltmake_dataset_string_f(group_id, dset_name, strings, error)
在子程序调用之前定义了group_id,dset_name和错误 .
但是当我编译和构建这个代码时,会发生编译错误
h5ltmake_dataset_string_f():违反了实际参数和伪参数!
那么如何将字符串写入一个数据集?
2 回答
虽然几年前问题已经解决,但是这里有一个解决方案,使用HDFql(http://www.hdfql.com)将字符串数组("hello","world","Hello","HDF5","fortran")写入Fortran中的HDF5数据集 . 发布此文件以防其他人在执行此类操作时发现自己在使用HDF5低级别细节时遇到困难:
使用API h5dwrite_f(...),而不是h5ltmake_dataset_f()来编写字符串数组 .