微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Fortran 结构中的简单代码DO & IF

如何解决使用 Fortran 结构中的简单代码DO & IF

我想在 Do 循环中使用 if (....) then 和 elseif (....) then。但是,我不确定结构及其可能性。谁能帮我这个简单的代码

      Do i=0,1000,1
          T(i)=t-(i*TI)
          if (z(i) .EQ. 0.00) then
              z(i+1)=v*T(i)
          elseif (z(i) .EQ. A) then
              z(i+1)=A-v*T(i)
          endif   
          r1=sqrt(x**2+(z-z(i))**2)
          flux(1)=((alpha*p)/(d*pi*r0**2))*exp(-(r1**2/r0**2))
          flux(2)=0 
      end do

解决方法

您将 zT 索引为这样的数组:

T(i) z(i)

但是您没有将它们定义为数组。您必须以某种方式声明它们的维度。

编译器应该以某种方式抱怨,说您以不正确的方式将它们用作函数或一些类似的相关错误消息。

修复该问题后,尝试遵循循环逻辑检查您是否正确定义了初始值,其他值是使用前面的值计算的。


您也绝对应该在子程序的顶部添加 IMPLICIT NONE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。