Fortran Coder

标题: 由fortran把緯度和經度由分、秒轉換成小數點的表示法 [打印本页]

作者: max533    时间: 2014-9-8 17:57
标题: 由fortran把緯度和經度由分、秒轉換成小數點的表示法
[Fortran] 纯文本查看 复制代码
program convert_lat_lon
implicit none

integer :: stat,lata,lona,latb,lonb
character :: station*6
real*8 :: lat,latc,lon,lonc

   open (11,file="dbar.txt")
   open (22,file="dbar_out.txt")

   stat=0
   do while (stat==0)
     read (11,100,iostat=stat) station,lata,latb,latc,lona,lonb,lonc
100 format (a6,7x,i3,1x,i2,2x,f3.1,3x,i2,1x,i2,2x,f3.1)
     if (stat/=0) exit
     lat=(lata+(latb/60)+(latc/3600.0000))
     lon=(lona+(lonb/60)+(lonc/3600.0000))
     write (22,"(a6,3x,f12.8,3x,f11.8)") station,lat,lon   
   end do
end program

-------------------------------------------------------------------------

想藉由fortran把緯度和經度由分、秒轉換成小數點的表示法
但dbar_out.txt 此檔案卻一直為0KB,沒有寫入,懇請高手大大指教。

dbar.txt

31.28 KB, 下载次数: 2


作者: vvt    时间: 2014-9-8 18:37
100 format (a6,7x,i3,1x,i2,2x,f3.1,3x,i2,1x,i2,2x,f3.1)
修改为
100 format (a6,7x,i3,2x,i2,2x,f4.1,6x,i2,2x,i2,2x,f4.1)

主要问题有:
1.您数据里的空格为全角空格,占2个字符。所以是 2x
2.您数据里的横线也是全角的。所以是 6x
3.您的秒是 41.0 这种格式,应该为 f4.1
作者: max533    时间: 2014-9-8 18:54
本帖最后由 max533 于 2014-9-8 18:59 编辑
vvt 发表于 2014-9-8 18:37
100 format (a6,7x,i3,1x,i2,2x,f3.1,3x,i2,1x,i2,2x,f3.1)
修改为
100 format (a6,7x,i3,2x,i2,2x,f4.1,6x ...

感謝您^ ^
作者: vvt    时间: 2014-9-8 19:01
C0A980   121.01138889   25.01138889
C0A990   121.01563889   25.00841667
C0A9A0   121.00138889   25.01305556
C0A9B0   121.00588889   25.00091667
C0A9C0   121.01222222   25.00277778
C0A9E0   121.01166667   25.00888889


我这里计算正确。用的 gfortran




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2