本文介绍了在函数中声明变量(Fortran)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试用Fortran(首次使用的用户)编写一个非常简单的函数:

I am trying to write a very simple function in Fortran (first-time user):

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的最新版本.

What am I doing wrong? I'm using the last version of gfortran.

推荐答案

任何声明的函数和程序块本地的子例程都应放在contains语句之后,例如

Any declared functions and subroutines local to the program block should be put after a contains statement, for example

program Main
  implicit none
 contains
  integer function k(n)
    integer, intent(in) :: n
    k=n
   end function k
end program Main

要举一个使用此程序的示例,您可以拥有

To give an example of a program using this you could have

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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-27 18:55
查看更多