Fortran Coder

标题: 写入后,读取,再写入对不上,总差一个时间增量 [打印本页]

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


F1.txt

111.44 KB, 下载次数: 2

URDFIL子程序输出正常的样子

F2.txt

844.59 KB, 下载次数: 2

DLOAD读取再写入的样子


作者: fcode    时间: 2019-12-23 21:35
只有数据,没有代码。什么信息也得不到~~

正确的代码可能只有几种写法,但错误的写法成千上万种。
作者: 18822146653    时间: 2019-12-24 13:07
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
1000  CONTINUE
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
这个是CODE

code.txt

1.22 KB, 下载次数: 0


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




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