Fortran Coder

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

[求助] 数组赋值问题

[复制链接]

29

帖子

10

主题

0

精华

熟手

F 币
152 元
贡献
98 点
跳转到指定楼层
楼主
发表于 2021-6-15 21:19:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[Fortran] 纯文本查看 复制代码
SUBROUTINE UMATHT_MAT2(U,DUDT,DUDG,FLUX,DFDT,DFDG,
     1 STATEV,TEMP,DTEMP,DTEMDX,TIME,DTIME,PREDEF,DPRED,
     2 CMNAME,NTGRD,NSTATV,PROPS,NPROPS,COORDS,PNEWDT,
     3 NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME
      DIMENSION DUDG(NTGRD),FLUX(NTGRD),DFDT(NTGRD),
     1 DFDG(NTGRD,NTGRD),STATEV(NSTATV),DTEMDX(NTGRD),
     2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3)
C
      REAL rho_v, rho_f, phi_v, phi_f, A, E, n, R, m_g,
     1 rho, M, delta_rho, f, Cv, Cf, Cp, Cpg, phi, delta_mg,
     2 delta_U, V, kv, kf, rho_g, rho_pro, kv1, kf1,
     3 miu,delta_rhog,L,K,S,NN,D3,i2  
      REAL GAMA(3),SJ(10325,93)
中间程序无问题 不进行展示 将数据存储到二维数组有问题
C     根据节点标号写出坐标 
       IF((TIME(1)).EQ.0)THEN
        DO i=7745,15488,1
            IF(i==NOEL)THEN
              DO j=1,8,1
                  IF(j==NPT)THEN
                   SJ((i-7745)*8+j,1) = COORDS(1)
                   SJ((i-7745)*8+j,2) = COORDS(2)
                   SJ((i-7745)*8+j,3) = COORDS(3)
                 END IF
              END DO
          END IF 
        ENDDO
       ENDIF
C    记录TEMP   
           DO j=4,93,1
                       IF (((j-3)*10)==TIME(1))THEN
                           DO i=1,10125,1
                              SJ(i,j)=STATEV(10)
                         enddo
               ENDIF
           ENDDO
           
C   写出二维数组        
           
          
      do  i=1,7745,1
          
      WRITE(*,*) SJ(i,1),SJ(i,2),SJ(i,3),SJ(i,4)end do

上述程序中建立的二维数组输出出来是乱的 而且只记录了一个坐标  为什么后续坐标不进行记录  

微信图片_20210615211811.png (53.4 KB, 下载次数: 342)

微信图片_20210615211811.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

213

帖子

2

主题

0

精华

宗师

F 币
2142 元
贡献
875 点

规矩勋章

沙发
发表于 2021-6-15 22:05:53 | 只看该作者
查一下变量NOEL和NPT

29

帖子

10

主题

0

精华

熟手

F 币
152 元
贡献
98 点
板凳
 楼主| 发表于 2021-6-16 09:10:34 | 只看该作者
风平老涡 发表于 2021-6-15 22:05
查一下变量NOEL和NPT

NOEL是单元编号 NPT是节点编号 这两个数都没有问题的

29

帖子

10

主题

0

精华

熟手

F 币
152 元
贡献
98 点
地板
 楼主| 发表于 2021-6-16 09:13:02 | 只看该作者
图中依次是NOEL、NPT、COORDS(1)、COORDS(2)、COORDS(3)的输出量 这些值单独正常输出是没有问题的  

微信截图_20210616090924.png (32.52 KB, 下载次数: 340)

微信截图_20210616090924.png

213

帖子

2

主题

0

精华

宗师

F 币
2142 元
贡献
875 点

规矩勋章

5#
发表于 2021-6-16 20:53:49 | 只看该作者
本帖最后由 风平老涡 于 2021-6-17 00:38 编辑
916115735 发表于 2021-6-16 09:13
图中依次是NOEL、NPT、COORDS(1)、COORDS(2)、COORDS(3)的输出量 这些值单独正常输出是没有问题的  
...

在第28行插入print *, i, j, sj((i-7745)*8+j, 1:3)。另最后一行enddo换行。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-25 21:07

Powered by Tencent X3.4

© 2013-2024 Tencent

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