Fortran Coder

查看: 1456|回复: 1
打印 上一主题 下一主题

[求助] abaqusfilm子程序我想输入温度变化数据,并赋值到数组中。

[复制链接]

7

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
17 点
跳转到指定楼层
楼主
发表于 2023-7-3 13:31:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在film子程序编写下列代码,并print数组a和sink。但最后在.log文件中看到的输出结果全是0.有没有大神帮我看看代码有问题吗?
here is my program:
[Fortran] 纯文本查看 复制代码
real a(2,240)
integer i,j
if (TIME(2).EQ.0) then
!读入温度数据
open(12,file='temperature.txt')
do i=1,240
read(12,*) a(:,i)
print*, a(:,i)
end do
close(12)
end if
! 对应时间步长
do j = 1,240
if (TIME(2).EQ.a(1,j)) then
SINK = a(2,j)
exit
else
SINK = 0
end if
end do

but in the job.log i find the result of print is all zero. why!?
here is my txt:
0 28.7100000000000
0.500000000000000 28.3600000000000
1 28.0300000000000
1.50000000000000 27.6100000000000
2 27.4900000000000
2.50000000000000 27.0800000000000
3 26.7400000000000
3.50000000000000 26.7200000000000
....
119.500000000000 24.3700000000000
120 24.3300000000000

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

7

帖子

3

主题

0

精华

入门

F 币
39 元
贡献
17 点
沙发
 楼主| 发表于 2023-7-3 15:56:33 | 只看该作者
[Fortran] 纯文本查看 复制代码
 SUBROUTINE FILM(H,SINK,TEMP,KSTEP,KINC,TIME,NOEL,NPT,
     1 COORDS,JLTYP,FIELD,NFIELD,SNAME,NODE,AREA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION H(2),TIME(2),COORDS(3), FIELD(NFIELD)
      CHARACTER*80 SNAME
      real a(2,241)
      integer i,j
      
      data iread /1/
      save iread
      save a
      
      if(iread.eq.1) then
      !读入温度数据
          iread = 2
          open(12,file='D:\abaqusworks\abaqus\temperature.txt')
          do i=1,241
              read(12,*) a(1,i),a(2,i)
              print*, a(1,i),a(2,i)
          end do
      end if
      
          close(12)
      ! 对应时间步长 
      do j = 1,241
          if (TIME(2).EQ.a(1,j)) then
              SINK = a(2,j)
              exit
          end if
      end do

我看了别的帖子,加了iread 和 save 就成功了, 虽然不知道iread是什么意思
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-1 09:12

Powered by Tencent X3.4

© 2013-2024 Tencent

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