Re: [问题] 连续变量名称跟加法的设定

楼主: snowanimal (动物先生)   2013-05-19 17:43:27
※ 引述《zmack0905 (降太)》之铭言:
: 标题: Re: [问题] 连续变量名称跟加法的设定
: 时间: Thu May 16 09:41:54 2013
:
: DO i=1,333
: DO j=1,495
: DO k=1,35
: READ(10,*)A(i,j,k)
: END DO
: END DO
: END DO
:
: 1.READ回报错误编号(24)forrtl: severe (24): end-of-file during read, unit
:
: 简单的说就是宣告读值的范围比实际的档案大
: 不过在以前用
:
: DO i=1,333
: DO j=1,495
: READ(10,*)S1(i,j),S2(i,j),S3(i,j),S4(i,j),
: & S5(i,j),S6(i,j),S7(i,j),S8(i,j),
: & S9(i,j),S10(i,j),S11(i,j),S12(i,j),
: & S13(i,j),S14(i,j),S15(i,j),S16(i,j),
: & S17(i,j),S18(i,j),S19(i,j),S20(i,j),
: & S21(i,j),S22(i,j),S23(i,j),S24(i,j),
: & S25(i,j),S26(i,j),S27(i,j),S28(i,j),
: & S29(i,j),S30(i,j),S31(i,j),S32(i,j),
: & S33(i,j),S34(i,j),S35(i,j)
: ENDDO
: ENDDO
:
: 都OK...难道这种两种写法是不一样的?
是的,这两种方法当然不一样 = ="
因为就如推文的板友所说的资料结构不同,所以才会这样,
遇到这种状况就是把读进去的资料立刻写出来,看是不是你要的东西。
先读一层就知道他有没有摆放在正确的位置了。
或许你应该要用:
do i=1,333
do j=1,495
read (10,*) (s(i,j,k)k=1,35)
enddo
enddo
或者把k包在最外面也能解决 = =?
do k=1,35
do i=1,333
do j=1,495
read (10,*) s(i,j,k)
enddo
enddo
enddo
: ◆ From: 140.120.29.185
: → Cypresslin:Q1-> 我猜你35笔资料都在同一行,一个read会换一行 05/16 23:34
: → Cypresslin:所以新的读取方法只读到第一个值就跳下一行继续读 05/16 23:35
作者: Cypresslin (啊哈哈~~)   2013-05-21 22:02:00
k包在外面也是一样的结果喔

Links booklink

Contact Us: admin [ a t ] ucptt.com