codeblocks环境下fortran隐蔽性错误的解决方法

来源:网络时间:2015-12-17 14:02:36

  1、【编写subroutine】

  !======================================

  subroutine dy2003310

  implicit none

  integer::i=2

  integer::j

  i=i+i

  j=2

  j=j+j

  print *,"***************subroutine***************"

  print *,"i:",i

  print *,"j:",j

  end subroutine dy2003310

codeblocks环境下fortran编程隐蔽性错误的解决方法

  2、【编写function】

  !======================================

  integer function dy2003()

  implicit none

  integer::i=2

  integer::j

  i=i+i

  j=2

  j=j+j

  print *,"***************function***************"

  print *,"i:",i

  print *,"j:",j

  dy2003=i

  end function dy2003

codeblocks环境下fortran编程隐蔽性错误的解决方法

  3、【编写主程序】

  implicit none

  integer::n

  call dy2003310

  call dy2003310

  n=dy2003()

  n=dy2003()

codeblocks环境下fortran编程隐蔽性错误的解决方法

  4、【在codeblocks中编译、链接】

codeblocks环境下fortran编程隐蔽性错误的解决方法

  5、【测试、运行,结比结果】

  可以得到结论:

  方式1:【integer::i=2】

  这样初始化的值会被保留

  比如在此文中当子程序运行完一次后,i=4

  再调用一次,i不再是初始为2,而是使用了i=4,所以第二次调用后i=8

  【方式2:】

  integer::i

  i=2

  能够得到正常的结果

  fortran的这个特性

  让人很无语,很抓狂

codeblocks环境下fortran编程隐蔽性错误的解决方法
文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系我们删除。(本站为非盈利性质网站) 联系邮箱:9145908@qq.com