在函数中声明变量 (Fortran)

Declaring variables in function (Fortran)

我正在尝试用 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。

程序块中任何声明的函数和子例程都应放在 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