Fortran Coder

查看: 7962|回复: 4
打印 上一主题 下一主题

[其他行业算法] 在pscad里编程遇到error#8093,error#6511,

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
跳转到指定楼层
楼主
发表于 2018-11-10 16:26:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
001#LOCAL INTEGER N
002#LOCAL INTEGER L
003 
004N=$dim     
005L=$ttd
006 
007#LOCAL INTEGER  T1 $dim
008#LOCAL REAL M $dim
009#LOCAL REAL Uk $dim
010#LOCAL REAL Ukk $ttd
011#LOCAL REAL M1
012#LOCAL REAL N1
013 
014 
015IF ($CLK>0.9) THEN
016 
017DO I=1, N
018Uk(I)=$Us1(I)
019 
020END DO
021 
022 
023DO K=1,N
024Ukk(K)=K
025Ukk(N+K)=Uk(K)
026END DO
027 
028IF($Iarm>0) THEN
029  Hld1=1.0
030 
031  DO I=1, N
032 
033  IF ($Ts1(I)==1) THEN
034    Ukk(N+I)=Ukk(N+I)*Hld1
035  ENDIF
036  END DO
037 
038  DO I=1,N-1
039    !  Flag1=1
040    DO J=1, N-I
041     IF (Ukk(N+J)>Ukk(N+J+1)) THEN
042       M1=Ukk(J+1)
043       N1=Ukk(N+J+1)
044       Ukk(J+1)=Ukk(J)
045       Ukk(J)=M1
046       Ukk(N+J+1)=Ukk(N+J)
047       Ukk(N+J)=N1
048       Flag1=0
049     ENDIF
050    END DO
051   !  IF (Flag1==1) THEN
052    !  EXIT
053     !  ENDIF
054  ENDDO
055    DO I=1, N
056      T1(I)=0
057    ENDDO
058    DO I=1,$Unum
059     M(I)=Ukk(I)
060     T1(M(I))=1
061    END DO
062ENDIF
063 
064IF($Iarm<0) THEN
065  Hld=1.0
066  DO I=1, N
067   
068  IF($TS1(I)==1) THEN
069    Ukk(N+I)=Ukk(N+I)*Hld
070  ENDIF
071  END DO
072   
073  DO I=1, N-1
074  Flag1=1
075   DO J=1, N-I
076   IF (Ukk(N+J)>Ukk(N+J+1)) THEN
077       M1=Ukk(J+1)
078       N1=Ukk(N+J+1)
079       Ukk(J+1)=Ukk(J)
080       Ukk(J)=M1
081       Ukk(N+J+1)=Ukk(N+J)
082       Ukk(N+J)=N1
083       Flag1=0
084    ENDIF
085   END DO
086    !  IF (Flag1==1) THEN
087     !  EXIT   
088       !  ENDIF
089  ENDDO
090   DO I=1, N
091    T1(I)=0
092   ENDDO
093   DO I=1, $Unum
094     M(I)=Ukk(N+1-I)
095   T1(M(I))=1
096   END DO
097ENDIF
098  DO I=1, N
099  $TS1(I)=T1(I)
100  END DO
101 
102ENDIF
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
沙发
 楼主| 发表于 2018-11-10 16:28:58 | 只看该作者
本帖最后由 懒癌症患者 于 2018-11-10 16:30 编辑

上面是代码,$是值替换前缀,就是将dim的值赋给N,由于在pscad编写,可能格式有些不一样,用的是ivf编绎器
Description
error #8093: A do-variable within a DO body shall not appear in a variable definition context.   [I]
Description
error #6511: This DO variable has already been used as an outer DO variable in the same nesting structure.   [I]
这是错误描述,说双重循环出问题

2038

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1676 元
贡献
715 点

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

板凳
发表于 2018-11-11 01:25:16 | 只看该作者
我试了一下你给出的代码段,并没有出现你的问题。

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
地板
 楼主| 发表于 2018-11-12 20:04:59 | 只看该作者
fcode 发表于 2018-11-11 01:25
我试了一下你给出的代码段,并没有出现你的问题。

谢谢,我后来查了下是其他元件代码出问题,报错报在这段上

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
5#
 楼主| 发表于 2018-11-15 14:22:03 | 只看该作者
本帖最后由 懒癌症患者 于 2018-11-15 14:25 编辑
fcode 发表于 2018-11-11 01:25
我试了一下你给出的代码段,并没有出现你的问题。

你好,后来我进行调试的时候,总是在
DO I=1,$Unum
M(I)=Ukk(I)
T1(M(I))=1
ENDDO
出现断点,M(I)=Ukk(I)还有T1(M(I))=1两行出现 断点,请问这两行语法不对吗
出现提示>    MMC_dc.exe!MAINDYN(INTEGER(4)  NUM ) 行 371    未知


您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2025-4-30 15:34

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

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