我必须处理一个文件,该文件可以改变由于前一个操作(来自python脚本)的行数,并且该行数将用于声明另一个变量,如下所示。
integer NumberOfLine !This is not work,Of course.
real(8) F(FixedDimension,NumberOfLine)
integer, parameter :: NewDimension = ANumber*NumberOfLine
如何正确声明NumberOfLine。谢谢。 我可以从python传递一行数,所以基本上我知道python操作完成后的那个数字
答案 0 :(得分:2)
如果声明参数,则必须在编译时修复其值。因此,如果编译器不知道integer, parameter :: newDimension = ANumber * NumberOfLine
的值,则NumberOfLine
无效。
你可以做的是使用可分配的数组:
program test_alloc
implicit none
integer, parameter :: dp = selected_real_kind(p=15)
real(kind=dp), dimension(:,:), allocatable :: F
integer :: i
integer, parameter :: FixedDimension = 10
print *, "Enter i"
read(*, *) i
allocate (a(FixedDimension, i))
a = i
print *, a
end program test_alloc