【发布时间】:2020-11-28 02:52:29
【问题描述】:
我有一段 fortran 代码。我将文件转储到子程序中。现在我想从依赖于 m 的子程序中调用特定文件。例如,如果 m=3,它应该读取 filename(3),如果 m=6,它应该读取 filename(6)。它根本行不通。有人可以帮我解决这个问题吗?
Program main
implicit none
integer,parameter :: dp=kind(1.d0)
real,parameter::m=3
real(dp), dimension(:,:), allocatable :: s
call My_Reader(m)
allocate (s(m,m))
read(m*10,*) s
print*,s
SUBROUTINE My_Reader(m)
integer,parameter :: dp=kind(1.d0)
character (len=256)::filename(m)
integer , intent(in) :: m
filename(6)='C:\Users\spaudel\Documents\S6.txt'
filename(3)='C:\Users\spaudel\Documents\S3.txt'
OPEN (unit=m*10,FILE=fileName(m),status='old', action='read')
END SUBROUTINE My_Reader
在上面的程序中它应该打印 s(我的文件名是 m*m 矩阵)但有时它有时不打印。我正在使用 gfortran。
【问题讨论】:
-
别忘了
close(m*10)打开的文件。
标签: fortran readfile subroutine