- UID
- 1813
- 性别
- 男
绿手
- 积分
- 142
- F 币
- 83 元
- 最后登录
- 2018-4-26
- 贡献
- 48 点
- 注册时间
- 2016-4-23
- 权杖
- 0 枚
惯用编译器:GFortran / G77 for Linux
入门
绿手
- F 币
- 83 元
- 贡献
- 48 点
|
2F 币
本帖最后由 一声叹息010 于 2016-6-14 17:51 编辑
主要问题就是:
read(11,"(5a10)") ((x(i,j),y(i,j),z(i,j),j=1,4),i=1,6)
将其写成两个do循环就出错,
两种循环的详细的区别原因是什么?如果必须要用do循环形式,有没有应对的办法?
由于我不会论坛的贴代码功能,为了看的直观,我贴出各个文件的截图,对应的文件也都上传至附件。
输入文件in.txt
正确的输出结果out1(2).txt
用Simply Fortran得到的奇奇怪怪的结果out1.txt
隐式循环形式的test1.f90
do循环形式的test2.f90
1、在win32位系统中,用SF编译执行test1.f90,会得到奇奇怪怪的结果out1.txt
2、在linux系统中,用gfortran编译执行test1.f90,会得到正确的结果out1(2).txt
3、编译执行test2.f90,执行时一定会出错,也不会有结果输出。因为此时只有in.txt的每一行的第一个数据会被读取到。当循环还没有结束时,文件已经结尾了。
|
|