Fortran Coder

查看: 12171|回复: 3
打印 上一主题 下一主题

[求助] 由fortran把緯度和經度由分、秒轉換成小數點的表示法

[复制链接]

35

帖子

12

主题

0

精华

熟手

F 币
173 元
贡献
117 点
跳转到指定楼层
楼主
发表于 2014-9-8 17:57:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[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

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2014-9-8 18:37:51 | 只看该作者
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

35

帖子

12

主题

0

精华

熟手

F 币
173 元
贡献
117 点
板凳
 楼主| 发表于 2014-9-8 18:54:52 | 只看该作者
本帖最后由 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 ...

感謝您^ ^

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2014-9-8 19:01:03 | 只看该作者
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
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 04:51

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表