18822146653 发表于 2019-12-23 17:28:17

写入后,读取,再写入对不上,总差一个时间增量

我先使用子程序URDFILWRITE写入到一个文件F1.txt中(实时写入,只显示一个时间增量的),之后再在DLOAD子程序读取F1.txt中的数据,再写入到另一个文件F2.txt中,但数据竟然不同步,而且,F1与F2中第一个数据不对应,请问这是怎么回事?
TXT文件中,F1.TXT的每四个数据的前两行是F2.TXT的前两列数据
希望可以得到帮助,真的不理解,也看过帮助文档,没有解决问题


fcode 发表于 2019-12-23 21:35:16

只有数据,没有代码。什么信息也得不到~~

正确的代码可能只有几种写法,但错误的写法成千上万种。

18822146653 发表于 2019-12-24 13:07:29

fcode 发表于 2019-12-23 21:35
只有数据,没有代码。什么信息也得不到~~

正确的代码可能只有几种写法,但错误的写法成千上万种。 ...

感谢雪球。这就把代码弄来
      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=18,FILE='E:\tempabaqus\1224WX\F11.txt')
      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.101)THEN
      WRITE(18,160)ARRAY(6)
      ELSE IF(KEY.EQ.102)THEN
      WRITE(18,160)ARRAY(6)
160   FORMAT(F20.10,5X)
      END IF
C
100   CONTINUE
1000CONTINUE
110   CONTINUE
      CLOSE(18)
      RETURN
      END
      
      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 UB,UT,VB,VT,U,V
      OPEN(UNIT=18,FILE='E:\tempabaqus\1224WX\F11.txt')
      OPEN(UNIT=101,FILE='E:\tempabaqus\1224WX\F12.txt')
      READ(18,*)UB,UT,VB,VT
      U=UT-UB
      V=VT-VB
      F=-100000
      WRITE(101,180)UB,UT,U
180   FORMAT(F20.10,5X,F20.10,5X,F20.10,5X)
      CLOSE(18)
      RETURN
      END

18822146653 发表于 2019-12-24 13:12:20

这个是CODE

18822146653 发表于 2019-12-24 13:22:13

①在ABAQUS中,我一共三个分析步,前两个静力分析步(共1S),第三个是动力分析步(共20S)。设置的输出是从第3分析步开始。
②在URDFIL中,输出到F11.TXT中数据和ABAQUS每一个增量步的数据可以对上。
③之后DLOAD读取F11.TXT中的数据,之后再写入F12.TXT中,开头和结尾都对不上:DLOAD最后写入F12.TXT中的数据,是URDFIL的倒数第二个数据,对不上。好几天了,一直不明白为什么?
页: [1]
查看完整版本: 写入后,读取,再写入对不上,总差一个时间增量