找回密码
 注册
Simdroid-非首页
查看: 464|回复: 10

[3. Fortran] 【求助】FORTRAN

[复制链接]
yoan 该用户已被删除
发表于 2004-4-8 17:28:34 | 显示全部楼层 |阅读模式 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2004-4-8 21:14:13 | 显示全部楼层 来自 美国

回复: 【求助】FORTRAN

Simdroid开发平台
基本模版
open(1, file='a.dat', status='old')
do j = 1, n
do i = 1, m
read(1,*) aa(i,j)
enddo
enddo
close(1)
建议把基础打好!

评分

1

查看全部评分

yoan 该用户已被删除
 楼主| 发表于 2004-4-9 08:19:27 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2004-4-26 11:09:24 | 显示全部楼层 来自 武汉大学

回复: 【求助】FORTRAN

斑竹,怎么太大的数组我一次读入会溢出呢?
  
就是read(1,*) ((aa(i,j),i=1,m),j=1,n)
  
要是很大的数组aa(300,5),就会溢出的
发表于 2004-4-26 22:28:12 | 显示全部楼层 来自 美国

回复: 【求助】FORTRAN

猜测会不会应该是
aa(300,5)
read(1,*) ((aa(i, j), j = 1, 5), i = 1, 300)
不知道你数据文件的数据格式是怎样的。我用aa(504,50)测试了一下没有问题。
发表于 2004-4-27 13:24:09 | 显示全部楼层 来自 武汉大学

回复: 【求助】FORTRAN

是的,首先真是感谢你这么负责,我把这个版内的关于Fortran的资料全部看了一遍,我的数据就是你上面列出的那样,我在debug的时候看Fortran只读了好像是aa(110,4),后面提示是array expansion limited to 1000 nodes.
  
还有,我就在这个帖子后面继续发把,不开新的主题了。
就是 read(u,10,end=100) a,b,c,
100 close (u)
这样它不能做循环的,只是读一句,如果我的那个读入的数据很多的时候,我只能用do循环才能把数据读入么?这样读的话,没读一个新的文件的时候,我都要判断它的循环次数,很不方便,我就希望能用end来代替,这样就不用每次判断循环次数了。我看了一下,国外几个网站上推荐的是iostat这个东东,可是我不熟的,你能简单的介绍一下么?
  
3x
发表于 2004-4-27 17:38:07 | 显示全部楼层 来自 江苏南京

回复: 【求助】FORTRAN

110    read(u,*) a,b,c
      if(.not. EOF(u)) goto 110
           ................
不知是否可行?
发表于 2004-4-27 19:13:43 | 显示全部楼层 来自 浙江宁波

回复: 【求助】FORTRAN

在FORTRAN里
开动态数组如何开?
请高手给出源代码可以吗?
发表于 2004-4-27 19:45:35 | 显示全部楼层 来自 Invalid

回复: 【求助】FORTRAN

动态数组:(例)
allocatable,integer:a(:,:)
  
allocate(a(1000))
发表于 2004-4-27 22:03:37 | 显示全部楼层 来自 美国

回复: 【求助】FORTRAN

楼上的示例有点问题,声明的是二维数组,分配的却为一维数组。
  
另外关于读入文件的错误判断可以用如下两种方式:
  1. I = 0
  2. DO
  3.     I = I + 1
  4.     READ (1, *, END = 100)  (B(I, J), J = 1, 50)
  5. ENDDO
  6. 100 CONTINUE
复制代码

  1. INTEGER :: IOS
  2. I = 0
  3. DO
  4.     I = I + 1
  5.     READ (1, *, IOSTAT = IOS) (B(I, J), J = 1, 50)
  6.     IF (IOS /= 0) EXIT
  7. ENDDO
复制代码
发表于 2004-4-28 14:21:09 | 显示全部楼层 来自 武汉大学

回复: 【求助】FORTRAN

to freepu
采用斑竹的方法,真的搞定了,(不过采用Gwinston的方法,我试了一下,是不行的额,只读入了一句,后面的没有循环。)
错了额,采用Gwinston的方法也是可以的,只是我刚才把那个判断语句方错了地方的。
谢谢大家出的主意,一直没找到一个好的讨论Fortran的论坛,这里看样子是个好地方。
3x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-2 05:39 , Processed in 0.041213 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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