本帖最后由 wxy 于 2017-3-5 14:01 编辑
vvt 发表于 2017-3-5 09:28
这个问题就复杂了。
如果数据量不大,可以用数组存储,然后查找(关于距离,因为有乘方的关系,所以计算速 ...
之前的代码是把经纬度分别放入两个数组,我想把经纬度放入一个二维动态数组再排序,但二维动态数组还不太会用出现了图片中的错误,麻烦帮我看一下怎么改[Fortran] 纯文本查看 复制代码 program near
implicit none
integer m,i,k
character(len=12) :: country
character(len=30) , allocatable :: site(:)
real , allocatable :: array(:,:)
character(len=32) :: c
open(8,file="soil.sol")
open(10,file="find_close.txt")
!read(8,*)m !//m无法再文件中获取,需手动输入或获取文件行数减去3,得到。
m=414503 !//m 此时的含义为,有多少个数据(而不是有多少行)
allocate(array(m,m),site(m))
O:Do i = 1 , m
do
Read(8,'(a)',iostat=k) c
if ( k/=0 ) exit O
if ( c(1:1) == '*' ) exit
end do
Read(8,*)
read(8,*) site(i) , country ,array(i,i)
write(10,*) trim(site(i)) , array(i,i)
End Do O
end program near
[indent]
|