在FORTRAN中通过输入参数声明参数
我正在尝试编写一个fortran例程,在其中声明数组,数组的长度来自对输入参数进行的操作在FORTRAN中通过输入参数声明参数,fortran,gfortran,Fortran,Gfortran,我正在尝试编写一个fortran例程,在其中声明数组,数组的长度来自对输入参数进行的操作 subroutine my_program(N, A,B,m) implicit none integer, intent(in) :: N integer, parameter :: minA = 1, maxA = N integer, parameter :: minB = 0, maxB = N-1 double precision, intent(out) :: max,A(minA:maxA)
subroutine my_program(N, A,B,m)
implicit none
integer, intent(in) :: N
integer, parameter :: minA = 1, maxA = N
integer, parameter :: minB = 0, maxB = N-1
double precision, intent(out) :: max,A(minA:maxA),B(minB:maxB)
A = 0.d0
B = 1.d0
m = maxA*maxB-minA*minB
end subroutine my_program
现在,我有一个错误,来自第5行(1)处的
参数'N'尚未声明,或者是一个变量,它不能简化为常量表达式
N
在编译时是未知的,因此无法使用它初始化参数
。相反,直接使用N
来声明A
和B
:
subroutine my_program(N, A, B, m)
implicit none
integer, intent(in) :: N
double precision, intent(out) :: m, A(1:N), B(0:N-1)
integer :: minA, maxA
integer :: minB, maxB
minA = 1 ; maxA = N
minB = 0 ; maxB = N-1
A = 0.d0
B = 1.d0
m = maxA*maxB - minA*minB
end subroutine my_program