设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 591|回复: 3

error#8093 ,error#6511,编写代码遇到这两个错误请问怎么解决

[复制链接]
  • TA的每日心情
    郁闷
    2019-12-23 14:39
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:281 天
    连续签到:1 天
    发表于 2018-11-10 12:23:29 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
    本帖最后由 菜鸟萌新 于 2018-11-10 14:49 编辑 ! S2 k; C; {3 y# b. s
    " T8 [# N0 R$ p( a. ~
    T1UH@~P4~Z~JXL70H8BLB37.png
    5 ]  H% [% S8 D0 A1 e描述错误#8093:DO主体内的do变量不应出现在变量定义上下文中。 [I]5 |* R7 Y' C' p5 U4 ^7 z
    描述错误#6511:此DO变量已在同一嵌套结构中用作外部DO变量。 [I]. l0 k5 n2 F, c4 `/ R

    9 z$ S4 A2 {( }: e8 c; i
    9 z; z& V) q8 k. O$ j/ X, c以上描述是用谷歌翻译,如有错误请指正。& h6 e6 A7 h  P7 @% P2 l
    截图中代码是用来冒泡排序。, D) X4 P! S0 W- R, ^4 D; U4 R

    & T& s, P& E, K2 r个人理解是双循环中的变量I用了两次,出现在下一个do循环中,但就fortran语法来说这是允许的,不知道如何解决。也有可能是我对错误的描述理解出现偏差
    $ p, P4 ]  G& j8 H$ K* i6 G9 p2 b/ E, V* E

    & P) j6 s5 \( J
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    [发帖际遇]: 菜鸟萌新特爱帮助研友,研友一致同意奖励他 学分1 点,帅呆了. 幸运榜 / 衰神榜
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    郁闷
    2019-12-23 14:39
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:281 天
    连续签到:1 天
     楼主| 发表于 2018-11-10 15:42:12 | 显示全部楼层
    本帖最后由 菜鸟萌新 于 2018-11-10 17:11 编辑   ~. }/ f* w  _* ?
    % S, b: p  m7 b' }
    https://software.intel.com/en-us ... c-os-x/topic/559950- R6 [. k8 H9 F* }5 {

    * i# y# W% H2 b% e  ?The interesting (to me, anyway) part of this question is that the do-variable in an io-implied-do does NOT have "statement scope" the way a DATA implied-do or array constructor implied-do variable do.  With statement scope, the implied-do variable is a new, different variable that inherits only the type of any outer-scope variable (but that type must be integer.)The "i" in the I/O implied DO is the same variable as the line 1 DO control variable and ifort is absolutely correct in complaining about this., pgf90 could support this as an extension, but would need to have the ability to diagnose it (perhaps through a standards checking switch), or else risk being a nonconforming implementation.
    ' e" D& w+ L4 k- n! I3 z0 s1 }3 S. `2 ]) z6 ?+ y- D. ?
    The other interesting part is that we do, sort-of, allow changing DO variables, as an extension, but you have to do it by passing the variable to a procedure which then changes it. ifort recognizes the possibility and generates an explicit test rather than a loop count if it sees this.7 b& i9 [4 V- }  T2 B: `" R; P2 n
    9 C- B& ^2 R  V- K& P1 q7 B" x1 ^
    这个问题的有趣(对我来说,无论如何)部分是io声明的do中的do的变量没有DATA声明的方式或者数组构造函数声明-do变量的方式。 对于语句范围,声明do变量是一个新的,不同的变量,它只继承任何外部作用域变量的类型(但该类型必须是整数。)I / O暗示DO中的“i”是相同的变量 作为第1行DO控制变量和ifort在抱怨这一点时绝对正确。,pgf90可以支持这作为扩展,但是需要能够诊断它(可能通过标准检查开关),否则冒险成为 不合格的实施。
    * I- q* F8 G* V+ K  S9 f% z2 F) Y
    % S5 k7 _) E- D+ T另一个有趣的部分是我们这样做,排序,允许更改DO变量,作为扩展,但你必须通过将变量传递给一个程序然后更改它来完成它。 如果它看到这个,ifort会识别出这种可能性并生成一个显式测试而不是一个循环计数。& h! g5 d' m: Y
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-12-23 14:39
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:281 天
    连续签到:1 天
     楼主| 发表于 2018-11-10 15:43:18 | 显示全部楼层
    https://software.intel.com/en-us ... c-os-x/topic/559950+ A- B1 Q+ a7 v# c

    ! [4 b& h9 k4 I' Z# qThe interesting (to me, anyway) part of this question is that the do-variable in an io-implied-do does NOT have "statement scope" the way a DATA implied-do or array constructor implied-do variable do.  With statement scope, the implied-do variable is a new, different variable that inherits only the type of any outer-scope variable (but that type must be integer.)The "i" in the I/O implied DO is the same variable as the line 1 DO control variable and ifort is absolutely correct in complaining about this., pgf90 could support this as an extension, but would need to have the ability to diagnose it (perhaps through a standards checking switch), or else risk being a nonconforming implementation.
    3 }9 F2 V6 {- K/ e" O/ U2 s& f  `. B6 K4 z6 q, G
    The other interesting part is that we do, sort-of, allow changing DO variables, as an extension, but you have to do it by passing the variable to a procedure which then changes it. ifort recognizes the possibility and generates an explicit test rather than a loop count if it sees this.; ]5 D% U( g2 G& q9 O

    3 z8 \4 K) K- c* D( Q8 |' {$ f4 R7 E  a3 l% b$ R
    这个问题的有趣(对我来说,无论如何)部分是io-implied-do中的do-variable没有DATA隐含的方式或者数组构造函数暗示-do变量的方式。 对于语句范围,implied-do变量是一个新的,不同的变量,它只继承任何外部作用域变量的类型(但该类型必须是整数。)I / O暗示DO中的“i”是相同的变量 作为第1行DO控制变量和ifort在抱怨这一点时绝对正确。,pgf90可以支持这作为扩展,但是需要能够诊断它(可能通过标准检查开关),否则冒险成为 不合格的实施。
    ( h2 |1 i6 Z( D: M* s3 X
    ; V6 J+ Q, ~2 w) T另一个有趣的部分是我们这样做,排序,允许更改DO变量,作为扩展,但你必须通过将变量传递给一个程序然后更改它来完成它。 如果它看到这个,ifort会识别出这种可能性并生成一个显式测试而不是一个循环计数。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-12-23 14:39
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:281 天
    连续签到:1 天
     楼主| 发表于 2018-11-10 21:37:05 | 显示全部楼层
    本帖最后由 菜鸟萌新 于 2018-11-11 10:18 编辑
    1 X/ Y+ q: E% v" ]/ A. \& l- ?: g* C" `3 P+ N
    已找到问题, 是另外一个模块do循环没有加终结语结束循环,i 的值被篡改,因为我的循环语句用的是i 作为变量,对所有的循环语句都造成了干扰
    ' Z* i$ t  Q. R* ]$ h) ?& Y7 X* W
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2025-2-24 17:24

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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