我是Fortran編程的新手。我有兩個.f90文件。Fortran 90,函數,數組
fmat.f90
function fmat(t,y)
implicit none
real::t
real::y(2)
real::fmat(2)
fmat(1) = -2*t+y(1)
fmat(2) = y(1)-y(2)
end function fmat
而且,main.f90時的樣子:
program main
implicit none
real::t
real::y(2)
real::fmat(2)
real::k(2)
t=0.1
y(1)=0.5
y(2)=1.4
k=fmat(t,y)
write(*,*) k
end program main
所以,我期待0.3 -0.9。但我不斷收到以下錯誤消息:
ifort fmat.f90 main.f90
main.f90(13): error #6351: The number of subscripts is incorrect. [FMAT]
k=fmat(t,y)
--^
compilation aborted for main.f90 (code 1)
任何幫助表示讚賞!
!==== ====編輯
我感謝馬克對他的答案。我實際上可以使用「子程序」方法編譯單獨的文件而不出現任何錯誤。
main.f90時
program main
implicit none
real::t
real::y(2)
real::k(2)
t=0.1
y(1)=0.5
y(2)=1.4
call fmat_sub(t,y,k)
write(*,*) k
end program main
fmat_sub.f90
subroutine fmat_sub(t,y,k)
implicit none
real::t
real::y(2),k(2)
k(1) = -2*t+y(1)
k(2) = y(1)-y(2)
end subroutine fmat_sub
現在嘗試在'main'中用'call fmat_sub(t,y)'行調用fmat_sub(t,y,k)'行,看看結果如何。 –