我试图在我的 Fortran 代码中的两个不同的地方(主程序和子程序)编写未格式化的文件。问题是,当我这样做时,结果会发生变化,我怀疑这是因为内存分配覆盖了我用来在我的 CFD 代码中进行模拟的数据。我问:是否有可能在代码中只使用一次未格式化的文件(写入)?我的意思是,我必须使用同一个文件来保存我的所有数据,而不是使用不同的文件。
我复制并粘贴了代码的两部分以显示我想要描述的内容:
在主程序中,循环是:
call numcar (isave,suffix)
longueur=index(nchamp,' ')-1
nfichier=nchamp(1:longueur)//suffix
longueur=index(nfichier,' ')-1
open(10,file=nfichier(1:longueur),form='unformatted')
write(10) real(uxn,4),real(uyn,4),real(wzn,4),real(ppo,4)
close(10)
! *****************************************
isave=isave+1
在子程序中,循环是:
call numcar (isavediv,suffix1)
longueur1=index(ndiv,' ')-1
nfichier1=ndiv(1:longueur1)//suffix1
longueur1=index(nfichier1,' ')-1
open(20,file=nfichier1(1:longueur1),form='unformatted')
write(20) real(ppm,4)
close(20)
! *****************************************
isavediv=isavediv+1
所有变量都IMPLICIT NONE
在主程序和子程序中声明。