白明Z 发表于 2024-5-23 13:47:40

新人求助,很多语法错误,自己试了试,但是太菜了

本帖最后由 kyra 于 2024-5-23 13:52 编辑

详细的代码在附件,主要是一下几个问题
这是我的维度定义
real(kind = 8) :: F(3,3), B(3,3), J, t1, t2, t3, mu, kappa
   1 U(3,3),BBNEW(nblock,3,3),S(3,3),eigVec(nblock,3,3)
      dimension stressBE(nblock,ndir+nshr),stressT(nblock,ndir+nshr)

      dimensionSTRESSA(nblock,6),STRESSB(nblock,6),DVSB(nblock,6)
      integer i
C
      CHARACTER*80 cmname




error #6410: This name has not been declared as an array or a function.                           U(J,K) = 1.0d0


DO J = 1,3
            DO K = 1,3
                  IF (J==K) THEN
                        U(J,K) = 1.0d0
                  ELSE
                        U(J,K) = 0.0D0
                  END IF
            END DO
      END DO


error #6351: The number of subscripts is incorrect.
BBNEW(1,1) = U(1,1) + dt*AA*(LAMADA-1+EE)**CC*MS*2*S(1,1)
error #6410: This name has not been declared as an array or a function   
BENEW(3,3) =error #6366: The shapes of the array expressions do not conform.   
      stressBE(i,1) = tt2 * S*(BENEW(1,1) -t1) + t3 B(3,3)-BBNEW(3,3)

kyra 发表于 2024-5-23 13:56:03

本帖最后由 kyra 于 2024-5-23 13:59 编辑

real(kind = 8) :: F(3,3), B(3,3), J, t1, t2, t3, mu, kappa ,
   1 U(3,3),BBNEW(nblock,3,3),S(3,3),eigVec(nblock,3,3)

此处第一行结尾处加一个逗号。

BBNEW(nblock,3,3) 是一个三维数组,所以你不能
BBNEW(1,1) = U(1,1) + dt*AA*(LAMADA-1+EE)**CC*MS*2*S(1,1)
只给2个下标。

其他问题,例如 BENEW 没有定义等。
建议你写上 implicit none,这些莫名其妙的问题就会变得很清晰。


白明Z 发表于 2024-5-23 14:18:10

kyra 发表于 2024-5-23 13:56
real(kind = 8) :: F(3,3), B(3,3), J, t1, t2, t3, mu, kappa ,
   1 U(3,3),BBNEW(nblock,3,3),S(3,3), ...


非常感谢您!我下去试试
页: [1]
查看完整版本: 新人求助,很多语法错误,自己试了试,但是太菜了