Fortran Coder

标题: 新人求助,很多语法错误,自己试了试,但是太菜了 [打印本页]

作者: 白明Z    时间: 2024-5-23 13:47
标题: 新人求助,很多语法错误,自己试了试,但是太菜了
本帖最后由 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)

      dimension  STRESSA(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]                        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]
BENEW(3,3) =error #6366: The shapes of the array expressions do not conform.   [STRESSBE]
      stressBE(i,1) = tt2 * S*(BENEW(1,1) -t1) + t3 B(3,3)-BBNEW(3,3)

vumat_nh11.for

9.69 KB, 下载次数: 1


作者: kyra    时间: 2024-5-23 13:56
本帖最后由 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
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), ...


非常感谢您!我下去试试




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2