我不是编程方面的专家,但有一些经验.我试图将数据文件从C读入Fortran程序已超过一周. C程序将矩阵保存在bin格式数据文件中,如下所示:
FILE * amatFile;
amatFile = fopen("A.dat","wb");
for(krowa=0;krowa<N2;krowa++){
fwrite(amat[krowa], sizeof(float), S2, amatFile);
}
fclose(amatFile);
我在F90的阅读部分是:
open(unit=1,file='AMAT.dat',form='unformatted')
DO i = 1,M
Do j = 1,N
READ(unit=1) AMAT(i,j)
A(i,j) = AMAT(i,j)
End do
End Do
close(1)
如果你能帮我解决问题,我真的很感激.
最佳答案 基于
detailed writup of Fortran IO,我认为你误解了’未格式化’. Unformatted并不意味着二进制,它只是意味着分隔文本.你的C程序肯定不会写分隔符.如果您可以更改C代码,最简单的解决方案是使用fprintf而不是fwrite,并安排格式以匹配Fortran IO的期望.如果不能,那么我建议编写另一个C程序来读取现有的C程序,并编写一些与fortran兼容的数据.