Fortran Coder

查看: 6650|回复: 4

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

[复制链接]

6

帖子

2

主题

0

精华

入门

F 币
90 元
贡献
45 点
发表于 2018-11-10 16:26:14 | 显示全部楼层 |阅读模式
[Fortran] 纯文本查看 复制代码
      #LOCAL INTEGER N
      #LOCAL INTEGER L

      N=$dim      
      L=$ttd
      
      #LOCAL INTEGER  T1 $dim
      #LOCAL REAL M $dim
      #LOCAL REAL Uk $dim
      #LOCAL REAL Ukk $ttd
      #LOCAL REAL M1
      #LOCAL REAL N1
      
     
      IF ($CLK>0.9) THEN
      
      DO I=1, N
      Uk(I)=$Us1(I)
      
      END DO
      
      
      DO K=1,N
      Ukk(K)=K
      Ukk(N+K)=Uk(K)
      END DO

      IF($Iarm>0) THEN
        Hld1=1.0
      
        DO I=1, N
      
        IF ($Ts1(I)==1) THEN
          Ukk(N+I)=Ukk(N+I)*Hld1
        ENDIF
        END DO
     
        DO I=1,N-1
          !  Flag1=1
          DO J=1, N-I
           IF (Ukk(N+J)>Ukk(N+J+1)) THEN
             M1=Ukk(J+1)
             N1=Ukk(N+J+1)
             Ukk(J+1)=Ukk(J)
             Ukk(J)=M1
             Ukk(N+J+1)=Ukk(N+J)
             Ukk(N+J)=N1
             Flag1=0
           ENDIF
          END DO
         !  IF (Flag1==1) THEN
          !  EXIT
           !  ENDIF
        ENDDO
          DO I=1, N
            T1(I)=0
          ENDDO 
          DO I=1,$Unum
           M(I)=Ukk(I)
           T1(M(I))=1
          END DO
      ENDIF
      
      IF($Iarm<0) THEN
        Hld=1.0
        DO I=1, N
        
        IF($TS1(I)==1) THEN
          Ukk(N+I)=Ukk(N+I)*Hld
        ENDIF
        END DO
        
        DO I=1, N-1
        Flag1=1
         DO J=1, N-I
         IF (Ukk(N+J)>Ukk(N+J+1)) THEN
             M1=Ukk(J+1)
             N1=Ukk(N+J+1)
             Ukk(J+1)=Ukk(J)
             Ukk(J)=M1
             Ukk(N+J+1)=Ukk(N+J)
             Ukk(N+J)=N1
             Flag1=0
          ENDIF
         END DO
          !  IF (Flag1==1) THEN
           !  EXIT    
             !  ENDIF
        ENDDO
         DO I=1, N
          T1(I)=0
         ENDDO
         DO I=1, $Unum
           M(I)=Ukk(N+1-I)
         T1(M(I))=1
         END DO
      ENDIF
        DO I=1, N
        $TS1(I)=T1(I)
        END DO
      
      ENDIF

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]
这是错误描述,说双重循环出问题

1947

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1295 元
贡献
545 点

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

发表于 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 点
 楼主| 发表于 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, 2024-3-28 20:07

Powered by Tencent X3.4

© 2013-2024 Tencent

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