回 帖 发 新 帖 刷新版面

主题:格式问题第二弹   依然求解答!

想读入的文件是NLIST.DAT 的全部四行
--------------------------------------------------
  NODE        X                   Y                   Z
     122    -5.00000000000      -3.00000000000       0.00000000000    
     123     5.00000000000      -3.00000000000       0.00000000000    
     124    -4.80000000000      -3.00000000000       0.00000000000    
     125    -4.60000000000      -3.00000000000       0.00000000000    
     126    -4.40000000000      -3.00000000000       0.00000000000    
     127    -4.20000000000      -3.00000000000       0.00000000000    
     128    -4.00000000000      -3.00000000000       0.00000000000    
     129    -3.80000000000      -3.00000000000       0.00000000000    
     130    -3.60000000000      -3.00000000000       0.00000000000    
     131    -3.40000000000      -3.00000000000       0.00000000000    
     132    -3.20000000000      -3.00000000000       0.00000000000    
     133    -3.00000000000      -3.00000000000       0.00000000000    
     134    -2.80000000000      -3.00000000000       0.00000000000    
     135    -2.60000000000      -3.00000000000       0.00000000000    
     136    -2.40000000000      -3.00000000000       0.00000000000    
     137    -2.20000000000      -3.00000000000       0.00000000000    
     138    -2.00000000000      -3.00000000000       0.00000000000    
     139    -1.80000000000      -3.00000000000       0.00000000000    
     140    -1.60000000000      -3.00000000000       0.00000000000    
     141    -1.40000000000      -3.00000000000       0.00000000000    

   NODE        X                   Y                   Z
     142    -1.20000000000      -3.00000000000       0.00000000000    
     143    -1.00000000000      -3.00000000000       0.00000000000    
.................
类似这样的数据块  ( 空两行 + 一行英文标识 +20行数据)一共有69块
--------------------
程序部分
REAL MATNO(2000),LNODS(2000,9),TITLE(30)
    REAL COORD(2000,3)
    NELEM=1280
    NNODE=4

    OPEN(6,FILE='ELIST.DAT',STATUS='OLD')
    OPEN(7,FILE='NLIST.DAT',STATUS='OLD')
    OPEN(8,FILE='ELEMENT.DAT',STATUS='UNKNOWN')
    OPEN(9,FILE='NODE COORDINATES.DAT',STATUS='UNKNOWN')

    DO 20 I=1,69
    READ(7,*)
    READ(7,*)
    DO 20 J=1,20

    READ(7,200) IPOIN,(COORD(IPOIN,IDIME),IDIME=1,3) 
    WRITE(9,200) IPOIN,(COORD(IPOIN,IDIME),IDIME=1,3)
200    FORMAT(3X,I5,3X,F14.12,3X,F14.12)
20    CONTINUE
输出结果
-----------------------------------------------
 122   **************   **************
     123
     124   **************   **************
     125
     126   **************   **************
     127
     128   **************   **************
     129
     130   **************   **************
     131
     132   **************   **************
     133
     134   **************   **************
     135
     136   **************   **************
     137
     138   **************   **************
     139
     140   **************   **************
     141
数据只有这么多 而且显示数组COORD(2000,3)越界  我调整数组为双精度时  依然显示越界


求解答!!!!

回复列表 (共8个回复)

沙发

FORMAT(3X,I5,3X,F14.12,3X,F14.12)
改成:
FORMAT(I8,3(F18.11,2X))

板凳



先谢谢了!  不过用FORMAT(I8,3(F18.11,2X))后  

仍然显示数组越界。。。。

3 楼

不好意思,写错了。

不是数组越界,运行的时候显示 input conversion error,unit7,

反正是读入的时候出问题了,不知道怎么改。

麻烦您再给看看  

谢谢了!

4 楼

FORMAT(I8,3(F18.11,2X))
改成:
FORMAT(I8,2(F18.11,2X),F18.11)

5 楼

还是不行啊 ! 运行的时候依然显示 input conversion error,unit7,

6 楼

还是不行啊 ! 运行的时候依然显示 input conversion error,unit7,

7 楼

问题解决了!谢谢你

FORMAT(I8,3(F18.11,2X))
改成
FORMAT(I8,2X,3(F18.11,2X))就可以了

总觉得格式什么的  很烦人啊!
有什么经验可以介绍下吗?前辈

8 楼

那就改成:
FORMAT(I8,3F20.11))
吧。
I和F后面的数(8,20)就是数据占的空间(包括空格)

我来回复

您尚未登录,请登录后再回复。点此登录或注册