我想对一个实数数组进行一些算术运算,后来我必须把它作为字符变量的输入来读。我用read语句仍然得到错误
单位规格必须是整数或字符变量。
我还验证了格式描述符。这是我的一段代码
real::la(10), sl
integer::i
character(len=5)::lat
character(len=7)::station
sl=11.25
do i=1,10
la = sl+ (i*0.25)
read(la(i),'(F5.2)')lat
station= lat//'xx'
end do
答案 0 :(得分:2)
当你有
时read(la(i),'(F5.2)') lat
您要求从单位la(i)
(外部文件)中读取字符变量lat
。这不是你想要的,但也是错的。这种错误会导致您看到错误消息:单元号必须是整数。
但是,将la
更正为整数并不是您想要做的。
相反,您希望对字符变量lat
进行内部写入:
write(lat, '(F5.2)') la(i)
答案 1 :(得分:0)
F5.2
格式指定正在读取real
值。 lat是一串字符。这两者不兼容。
最简单的解决方法是读取real
的变量。
替代方案,将格式更改为A
(表示字符串),然后使用lat
格式从F5.2
进行内部读取。