Re: [问题] 依照循环变量读取阵列

楼主: JiGo (ㄐㄍ)   2013-12-27 11:43:09
※ 引述《snowanimal (动物先生)》之铭言:
: ※ 引述《JiGo (ㄐㄍ)》之铭言:
: : 目前有一笔11x11的资料(二维阵列?)
: : 每一个横行的资料我都会分别做计算所以使用一维阵列去读值
: : 但是我要的资料只有矩阵的一半,对角线是右上到左下
: : 如下:
: : 1 1 1 1 1 1 1 1 1 1 1
: : 1 1 1 1 1 1 1 1 1 1 0
: : 1 1 1 1 1 1 1 1 1 0 0
: : 1 1 1 1 1 1 1 1 0 0 0
: : 1 1 1 1 1 1 1 0 0 0 0
: : 1 1 1 1 1 1 0 0 0 0 0
: : 1 1 1 1 1 0 0 0 0 0 0
: : 1 1 1 1 0 0 0 0 0 0 0
: : 1 1 1 0 0 0 0 0 0 0 0
: : 1 1 0 0 0 0 0 0 0 0 0
: : 1 0 0 0 0 0 0 0 0 0 0
: 1的部分是我要读的值,并做一点计算
: 如果我没搞错问题,那么方法该跟下面的方式差不多。
: 先声明一点,因为太久没用fortran,所以我无法保证语法的正确性。
: do x=LYR,1,-1 (循环11次)
: array(x)=0.0
: read (,)array(x)
: enddo
: 循环的变量可以由小变大,也可以由大变小。
: 所以你就让他从11格读到剩下1格就好啦,然后计算的东西就包在循环里面即可。
: 我不确定是不是百分之百正确,因为太久没用fortran,所以语法可能有误。
应该这样说
我是用下面的方式去读值
101 READ(Rline,FMT3)U_B,U_A
102 READ(Rline,FMT4)U_1,U_2,U_3,U_4,U_5,U_6,U_7,U_8,U_9
FMT3和FMT4会随循环数变化
先读最外面的两个值
再读中间的其他值
但是在第二个循环的时候U_9因为不在格式中所以会有错误
第三个圈时U_8和U_9亦然
因此造成程式停摆
所以想问说在102行后面读取值的编号与个数
要怎么用成可以随循环数改变
因为每个值都会用来计算
所以想对读取到的每个值做编号
随后可能就是利用 U_A+2*U_1+3*U_2+.......+n*U_B 之类的计算

Links booklink

Contact Us: admin [ a t ] ucptt.com