我正在尝试在Fortran(首次使用者)中编写一个非常简单的函数:
program Main
implicit none
integer function k(n)
integer, intent(in) :: n
k=n
end function k
end program Main
我收到了一堆错误:
integer function k(n)
1
Error: Syntax error in data declaration at (1)
integer, intent(in) :: n
1
Error: Unexpected data declaration statement at (1)
end function k
1
Error: Expecting END PROGRAM statement at (1)
k=n
1
Error: Symbol ‘k’ at (1) has no IMPLICIT type
k=n
1
Error: Symbol ‘n’ at (1) has no IMPLICIT type
我做错了什么?我使用的是gfortran的最新版本。
答案 0 :(得分:4)
程序块本地的任何声明的函数和子程序应放在contains
语句之后,例如
program Main
implicit none
contains
integer function k(n)
integer, intent(in) :: n
k=n
end function k
end program Main
举一个使用它的程序的例子,你可以有
program Main
implicit none
integer :: myLocalN
myLocalN = 2
print*, "My local N is ", myLocalN
print*, "The value of this squared is", sq(myLocalN)
contains
integer function sq(n)
integer, intent(in) :: n
sq=n*n
end function sq
end program Main