在函数中声明变量 (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
我正在尝试用 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