如何将实数读作字符

时间:2015-04-07 10:58:12

标签: fortran fortran90 gfortran

我想对一个实数数组进行一些算术运算,后来我必须把它作为字符变量的输入来读。我用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 

2 个答案:

答案 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进行内部读取。