【发布时间】:2011-03-14 14:29:08
【问题描述】:
我已经从一个输入文件的头部向下读取(),并在途中读取了 L 的值。
现在我来到一行 L^2 个连续实数,我需要将其输入到可分配数组 A(L,L) 的元素中。
尝试
character *100 :: buffer
read (1,10) buffer
10 format(a(L*10))
结果
Error: Syntax error in FORMAT statement at (1)
Error: FORMAT label 10 at (1) not defined
但我不确定如何处理(巨大)可变数量的实数。
尝试:
do i=1,L
do j=i,L
read (1,"(f10.7)") buffer
read (buffer,*) A(i,j)
enddo
enddo
抛出:
Fortran runtime error: Expected REAL for item 2 in formatted transfer, got CHARACTER
(f10.7)
我不能简单地读取(1,"(a1000)"),因为 L 最终会变得很大,所以我真正需要的是一种逐个解析元素的方法。
请说有办法吗?
【问题讨论】:
-
我必须承认,我很难理解您的问题。您是在问“如何将 L 个实数从一行读入一个可分配的数组?” ? (如果 L 未知,将它们读入字符变量,然后使用内部读取,对它们进行计数并将它们读入数组)。