Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran:读取未格式化数据_Fortran - Fatal编程技术网

Fortran:读取未格式化数据

Fortran:读取未格式化数据,fortran,Fortran,我有一个大型txt文件,其中包含不同站点的经度/纬度测量值,如: 1 1 bwb02 52.38783333 13.40266667 LR 0.2 2 2 bwb04 52.53716667 13.22583333 P1 0 3 3 bwb05 52.55516667 13.202 SP 0 4 4 bwb07 52.48433333 13.4385 N1 0 我只想阅读4、5和7列,并将它们放入矩阵中,如: do j = 1,n read(12,200) latB,

我有一个大型txt文件,其中包含不同站点的经度/纬度测量值,如:

 1  1 bwb02 52.38783333 13.40266667 LR 0.2
 2  2 bwb04 52.53716667 13.22583333 P1 0
 3  3 bwb05 52.55516667 13.202 SP 0
 4  4 bwb07 52.48433333 13.4385 N1 0
我只想阅读4、5和7列,并将它们放入矩阵中,如:

  do j = 1,n
   read(12,200) latB,lonB,r
   200 Format (12x,f11.9,1x,f11.9,4x,f5.3)
   beo_data(j,1) = j
   beo_data(j,2) = lonB
   beo_data(j,3) = latB
   beo_data(j,4) = r
  end do
但是我的格式不起作用,我得到一个错误: Fortran运行时错误:浮点读取期间的值不正确

问题似乎是经纬度的格式正在改变。
您能告诉我如何读取和处理这样的文件吗?

只需使用
描述符将每一行作为字符串读取,然后您就可以使用列表定向读取(
*
而不是格式)来读取数据。如果不存在同时从两行读取的危险,也可以使用列表定向直接读取

integer :: tmp1,tmp2
character(5) :: tmp3
character(2) :: tmp4
real :: values(3)
  open(12,file="data.txt")
  do j = 1,4
   read(12,*) tmp1, tmp2, tmp3, values(1), values(2), tmp4, values(3)
   print *,values
  end do
  close(12)
end
印刷品

   52.3878326       13.4026670      0.200000003    
   52.5371666       13.2258329       0.00000000    
   52.5551682       13.2019997       0.00000000    
   52.4843330       13.4385004       0.00000000
只有在列真正固定时,使用固定列格式才有用

您也可以只使用单个字符变量
tmp
,而不使用所有这些不同的变量