懒癌症患者 发表于 2018-11-10 16:26:14

在pscad里编程遇到error#8093,error#6511,

      #LOCAL INTEGER N
      #LOCAL INTEGER L

      N=$dim      
      L=$ttd
      
      #LOCAL INTEGERT1 $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

懒癌症患者 发表于 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.   
Description
error #6511: This DO variable has already been used as an outer DO variable in the same nesting structure.   
这是错误描述,说双重循环出问题

fcode 发表于 2018-11-11 01:25:16

我试了一下你给出的代码段,并没有出现你的问题。

懒癌症患者 发表于 2018-11-12 20:04:59

fcode 发表于 2018-11-11 01:25
我试了一下你给出的代码段,并没有出现你的问题。

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

懒癌症患者 发表于 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    未知


页: [1]
查看完整版本: 在pscad里编程遇到error#8093,error#6511,