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

源素网

  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隐蔽性错误的解决方法

免责声明:本文内容来自用户上传并发布或网络新闻客户端自媒体,源素网仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系删除。
https://www.guoji115.com/a/rjjc/198995.html