Fortran Coder

查看: 100|回复: 3

[子程序] 关于子程序中数据的输入输出

[复制链接]

11

帖子

3

主题

0

精华

入门

F 币
58 元
贡献
35 点
发表于 2019-9-12 14:09:36 | 显示全部楼层 |阅读模式
现在想请教:在DLOAD如何读取指定节点编号、位移、速度
     SUBROUTINE URDFIL(LSTOP,LOVRWRT,KSTEP,KINC,DTIME,TIME)

C
      INCLUDE'ABA_PARAM.INC'
C
      DIMENSION ARRAY(513),JRRAY(NPRECD,513),TIME(2),LRUNIT(2,1)
     1,COORD(3)
      EQUIVALENCE(ARRAY(1),JRRAY(1,1))
      CALL POSFIL(KSTEP,KINC,ARRAY,JRCD)
      OPEN(UNIT=17,FILE='E:\tempabaqus\2.DAT')
      WRITE(17,*)KINC,KSTEP
      DO 1000 K2=1,10
          DO 100 K1=1,9999999
C
      CALL DBFILE(0,ARRAY,JRCD)
      IF(JRCD.NE.0)GO TO 110
          KEY=JRRAY(1,2)
C
          IF(KEY.EQ.107)THEN
              KEL=JRRAY(1,3)
              COORD(1)=ARRAY(4)
              COORD(2)=ARRAY(5)
              COORD(3)=ARRAY(6)
          WRITE(17,120)KEL,COORD(1),COORD(2),COORD(3)
120       FORMAT(5X,'NODE',I5,5X,'X',F20.14,5X,'Y',F20.14,5X,'Z'
     1,F20.14,5X)
          ELSE IF(KEY.EQ.101)THEN
              KEL=JRRAY(1,3)
              COORD(1)=ARRAY(4)
              COORD(2)=ARRAY(5)
              COORD(3)=ARRAY(6)
          WRITE(17,140)KEL,COORD(1),COORD(2),COORD(3)
140       FORMAT(5X,'NODE',I5,5X,'UX',F20.14,5X,'UY',F20.14,5X
     1,'UZ',F20.14,5X)
          ELSE IF(KEY.EQ.102)THEN
          WRITE(17,130)ARRAY(3),ARRAY(4),ARRAY(5),ARRAY(6)
130   FORMAT(5X,'NODE',I5,5X,'VX',F20.14,5X,'VY',F20.14,5X,'VZ'
     1,F20.14,5X)
          END IF
C
100   CONTINUE
1000  CONTINUE
110   CONTINUE
      CLOSE(17)
      RETURN
      END
以上的代码是我在书上看到然后自己抄了一遍,用来输出坐标、位移和速度的代码。
接下来的是DLOAD程序,我想要读取.DAT文件中的数据,然后写入另一个.DAT文件中。
但此时,不知道该如何读取。      
       SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS
     1,JLTYP,SNAME)
C
      INCLUDE'ABA_PARAM.INC'
C
      DIMENSION TIME(2),COORDS(3)
      CHARACTER*80 SNAME
C
      REAL C
      OPEN(UNIT=17,FILE='E:\tempabaqus\2.DAT')
      READ(17,*)NODE,X
      OPEN(UNIT=18,FILE='E:\tempabaqus\10.DAT')
      WRITE(18,150)NODE,X
图片是生成的2.DAT文件中的内容。

file:///C:/Users/DELL/AppData/Roaming/Tencent/Users/519771355/QQ/WinTemp/RichOle/Y3%7DH9(%7BWW%60CKTLW0KSAVMVR.png


2.DAT

2.DAT
回复

使用道具 举报

11

帖子

3

主题

0

精华

入门

F 币
58 元
贡献
35 点
 楼主| 发表于 2019-9-12 14:10:37 | 显示全部楼层
希望得到大家的帮助

408

帖子

1

主题

0

精华

宗师

F 币
2136 元
贡献
1380 点
发表于 2019-9-12 16:09:27 | 显示全部楼层
这是文本文件,只能依次读取每一行,判断节点编号是否是你需要的。如果你存为二进制文件,每个点的信息放一起,是可以按位置查找的。

11

帖子

3

主题

0

精华

入门

F 币
58 元
贡献
35 点
 楼主| 发表于 2019-9-12 16:32:03 | 显示全部楼层
li913 发表于 2019-9-12 16:09
这是文本文件,只能依次读取每一行,判断节点编号是否是你需要的。如果你存为二进制文件,每个点的信息放一 ...

非常非常感谢您的回答,我语言基础比较薄弱。。不太明白该怎样判断节点编号,可以帮忙解答一下吗?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-11-20 02:12

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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