【交流】瞬太问题,如何在原来计算的基础上继续计算?
fepg吧
全部回复
仅看楼主
level 7
gyyjszs 楼主
对于瞬太问题,如果经过50步的迭代计算,发现计算结果正常。希望在原理计算的基础上,增加计算步数例如100步。如何操作可以保留以前的计算结果,而继续从51步开始计算呢?曾经修改过time0文件,好像不能实现上述的功能。
希望大家给予指点,非常感谢!
请修改计算的批处理文件,只留下你的对时间循环计算那一段。就是把1:行前面的去掉。
另外如果你原来的time0设的最大计算步数就是50的话,还要修改bft文件把时间加长。
最后删除目录下的stop文件,就可以接着原来的结果往下继续计算。
我按照您的提示进行了修改,其中“另外如果你原来的time0设的最大计算步数就是50的话,还要修改bft文件把时间加长。”不知如何修改bft文件?
只进行1和3操作,程序可以在原来50步的基础上计算,但是我运行*.bat文件,只是继续计算了一步就停止了,再运行bat,又继续计算了一步。
bft.for中有这一段
2013年11月15日 01点11分 1
level 7
gyyjszs 楼主
C.......OPENTIME FILE
OPEN(1,FILE=' ',FORM='UNFORMATTED')
READ(1) TMAX,DT,TIME,IT
T = TIME+DT
TIME = TIME+DT
IT = IT+1
CC WRITE(*,*) ' TMAX,DT,TIME,IT=',TMAX,DT,TIME,IT
REWIND(1)
tmax= 给出你希望结束的时刻------1
WRITE(1) TMAX,DT,TIME,IT
CLOSE(1)
C.......OPEN COOR FILE
OPEN (1,FILE=' ',FORM='UNFORMATTED',STATUS='OLD')
READ (1)KNODE,NCOOR,((COOR(I,J),I=1,NCOOR),J=1,KNODE)
CLOSE(1)
IF (TIME-TMAX.GT.-1.0D-20) THEN
OPEN(1,FILE='STOP',FORM='UNFORMATTED',STATUS='UNKNOWN') 把该行 c 掉-----2
ENDIF
2013年11月15日 01点11分 2
level 7
gyyjszs 楼主
C.......OPENTIME FILE
OPEN(1,FILE=' ',FORM='UNFORMATTED')
READ(1) TMAX,DT,TIME,IT
T = TIME+DT
TIME = TIME+DT
IT = IT+1
CC WRITE(*,*) ' TMAX,DT,TIME,IT=',TMAX,DT,TIME,IT
REWIND(1)
tmax= 给出你希望结束的时刻------1
WRITE(1) TMAX,DT,TIME,IT
CLOSE(1)
C.......OPEN COOR FILE
OPEN (1,FILE=' ',FORM='UNFORMATTED',STATUS='OLD')
READ (1)KNODE,NCOOR,((COOR(I,J),I=1,NCOOR),J=1,KNODE)
CLOSE(1)
IF (TIME-TMAX.GT.-1.0D-20) THEN
OPEN(1,FILE='STOP',FORM='UNFORMATTED',STATUS='UNKNOWN') 把该行 c 掉-----2
ENDIF
2013年11月15日 01点11分 3
level 7
gyyjszs 楼主
以上两种办法都可以,第一种办法按你给出的最大时刻结束计算。
第二种情况不生成stop文件将一直计算下去,不过你随时可以关闭dos计算
2013年11月15日 01点11分 4
level 7
gyyjszs 楼主
以上两种办法都可以,第一种办法按你给出的最大时刻结束计算。
第二种情况不生成stop文件将一直计算下去,不过你随时可以关闭dos计算
2013年11月15日 01点11分 5
level 7
gyyjszs 楼主
以上两种办法都可以,第一种办法按你给出的最大时刻结束计算。
第二种情况不生成stop文件将一直计算下去,不过你随时可以关闭dos计算
2013年11月15日 01点11分 6
1