Fortran Coder

查看: 14552|回复: 6
打印 上一主题 下一主题

[求助] 改程序中出现的问题

[复制链接]

55

帖子

17

主题

0

精华

熟手

F 币
261 元
贡献
169 点
跳转到指定楼层
楼主
发表于 2015-4-17 10:14:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
源程序很简单的依据:DO I=NLAYER,1,-1
我需要加些判定条件,大概改成这个意思:
IF(FDTNLAYER.GT.0.AND. FDTNLAYER .LT.NLAYER)THEN
      DO I=NLAYER,FDTNLAYER,-1
IF(fDTNLAYER.EQ.NLAYER)THEN
     不循环
IF(TDTNLAYER.GT.0 .AND.TDTNLAYER.LT.NLAYER) then
        DO I=TDTNLAYER,1-1
IF(TDTNLAYER.EQ.NLAYER)THEN
      DO 51 I = NLAYER,1, -1


改成一个这样的程序要怎么改呢?

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2015-4-17 10:33:12 | 只看该作者
[Fortran] 纯文本查看 复制代码
 If (fdtnlayer>0 .And. fdtnlayer<nlayer) Then
   iBegin = nLayer
   iEnd   = fdtnLayer
   iStep  = -1
 Else If (fdtnlayer==nlayer) Then
   iBegin = 1
   iEnd   = 0 !// 结束小于开始,则不循环
   iStep  = 1
 Else If (tdtnlayer>0 .And. tdtnlayer<nlayer) Then
   iBegin =  tdtnLayer
   iEnd   = 1
   iStep  = -1
 Else If (tdtnlayer==nlayer) Then
   iBegin = nLayer
   iEnd   = 1
   iStep  = -1
 End If
 Do i = iBegin , iEnd , iStep
   ...
 End Do

55

帖子

17

主题

0

精华

熟手

F 币
261 元
贡献
169 点
板凳
 楼主| 发表于 2015-4-17 11:17:03 | 只看该作者
fcode 发表于 2015-4-17 10:33
[mw_shl_code=fortran,true] If (fdtnlayer>0 .And. fdtnlayer0 .And. tdtnlayer

错误        1         error #8093: A do-variable within a DO body shall not appear in a variable definition context.   [I]        C:\B90Vdongtu\FOR\B90.FOR        510       

出现了好几个这样的错误,这是怎么回事呢?

55

帖子

17

主题

0

精华

熟手

F 币
261 元
贡献
169 点
地板
 楼主| 发表于 2015-4-17 11:28:21 | 只看该作者
就是会出现截图里面的情况,以前也没见过啊

QQ截图20150417112355.jpg (156.62 KB, 下载次数: 358)

QQ截图20150417112355.jpg

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

5#
发表于 2015-4-17 12:29:58 | 只看该作者
这需要代码才能判断。

60

帖子

17

主题

0

精华

专家

F 币
454 元
贡献
266 点
6#
发表于 2015-4-17 12:30:14 | 只看该作者
renlu617 发表于 2015-4-17 11:17
错误        1         error #8093: A do-variable within a DO body shall not appear in a variable definition cont ...

fcode 给你的是以f90的自由格式写的,而你用的后缀是FOR,编译器就是以f77的固定格式来编译,自然会抱错。

60

帖子

17

主题

0

精华

专家

F 币
454 元
贡献
266 点
7#
发表于 2015-4-17 12:32:13 | 只看该作者
renlu617 发表于 2015-4-17 11:28
就是会出现截图里面的情况,以前也没见过啊

f77的固定格式中,do  enddo的格式是没有的。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 13:52

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表