Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在循环中读取fortran中的多个文件_Fortran - Fatal编程技术网

在循环中读取fortran中的多个文件

在循环中读取fortran中的多个文件,fortran,Fortran,我想通过使用文件名格式化系统在循环中读取Fortran中的多个文件。问题是文件名中的数字彼此不直接跟随。文件名的示例有4e3_2048_380_40_3e9.ksz_cl.txt、4e3_2048_200_80_2e8.ksz_cl.txt。文件名中的第三、第四和第五个数字构成一个3x3网格。第一个数字从140到260,第二个数字从40到80,第三个数字从2e8到2e9 我已经在像这样的线程中搜索了答案,但它似乎没有回答我的问题。我下面的代码目前打印出4e3_2048_01.ksz_cl.txt

我想通过使用文件名格式化系统在循环中读取Fortran中的多个文件。问题是文件名中的数字彼此不直接跟随。文件名的示例有4e3_2048_380_40_3e9.ksz_cl.txt、4e3_2048_200_80_2e8.ksz_cl.txt。文件名中的第三、第四和第五个数字构成一个3x3网格。第一个数字从140到260,第二个数字从40到80,第三个数字从2e8到2e9

我已经在像这样的线程中搜索了答案,但它似乎没有回答我的问题。我下面的代码目前打印出4e3_2048_01.ksz_cl.txt

program readfiles
implicit none
integer :: i, N
Logical, Save :: first_time = .True.
CHARACTER(len=25) :: FN 
N=3 !--arbitrary number of files 

if(first_time) then
DO I=1,N
WRITE(FN,10)I
WRITE(6,*)FN 
OPEN(1,FILE=FN, status='replace') 
CLOSE(1)
END DO 
10 FORMAT('4e3_2048_',I2.2,'.ksz_cl.txt') 
endif


end program readfiles

虽然有可能想出一个方案来实现这一点,但这已经够复杂了,您可能想简单地阅读目录内容。或者更简单地添加一个包含要读取的文件列表的文件可能很有用:您是如何生成这些文件的?您可以使用相同的工具(创建文件名的逻辑)生成要读取的文件列表,可能还包含相关参数(网格索引或参数值)。这些数字之间的跨距是多少?例如,1e8-1e9之间有90000000个整数。你真的有那么多的外部文件吗?根据您的答案,您可以循环使用所有三种可能的数字,然后
inquire()
检查该文件是否存在,如果存在,请阅读该文件。当然,也可以想出一个方案来实现这一点,这已经够复杂了,你可能只想看看如何读取目录内容,或者更简单地添加一个包含你要读取的文件列表的文件可能有用:你是如何生成这些文件的?您可以使用相同的工具(创建文件名的逻辑)生成要读取的文件列表,可能还包含相关参数(网格索引或参数值)。这些数字之间的跨距是多少?例如,1e8-1e9之间有90000000个整数。你真的有那么多的外部文件吗?根据您的答案,您可以循环使用所有三种可能的数字,然后
inquire()
检查此类文件是否存在,如果存在,请阅读。