Fortran Coder

查看: 7164|回复: 2
打印 上一主题 下一主题

[绘图界面库] fortran读取nc文件,读出的数据跟原始数据不能对应

[复制链接]

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
跳转到指定楼层
楼主
发表于 2017-12-3 22:46:03 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
按照网上的方法写了一个读取nc文件的小程序nc文件为
Band1(1145,702)原始数据为
用该程序得出的结果为 ,请问是哪里出了错误
程序如下:

! This program is for reading area.nc
      program read
      implicit none
      integer, parameter :: longitude=3600, latitude=1800
      integer ierr,ncid,varid,varidx,varidy,len_file,err
      real(8)  area(longitude,latitude)
      real lon(longitude),lat(latitude)
      character*299 barl_out
      include 'netcdf.inc'
      barl_out='/home/iga/data/xycao/05area/barley/op/barl_harvest_2005_01.nc'

      len_file=len_trim(barl_out)
      ierr=nf_open(trim(barl_out),nf_write,ncid)    !open nc file,get ID number (ncid)
      ierr=nf_inq_varid (ncid, 'longitude',varidx)
      ierr=nf_get_var_real(ncid,varidx,lon)
      ierr=nf_inq_varid (ncid, 'latitude',varidy)
      ierr=nf_get_var_real(ncid,varidy,lat)
      ierr=nf_inq_varid (ncid, 'Band1', varid)      !open 'Band1',get ID number
      ierr=nf_get_var_real (ncid,varid,area)
      print*,'ierr'
      print*, area(1145,702),area(1145,704)                                !check
      err=nf_close(ncid)
      end program read



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

4

帖子

0

主题

0

精华

入门

F 币
32 元
贡献
18 点
板凳
发表于 2018-3-8 00:36:36 | 只看该作者
ierr=nf_get_var_real (ncid,varid,area)这是读单精度变量的,你用读双精度的试试,我一般直接用nf_get_var就可以了。

25

帖子

8

主题

0

精华

熟手

F 币
164 元
贡献
104 点
沙发
 楼主| 发表于 2017-12-4 09:31:26 | 只看该作者
@fcode大神,请问Band1为什么读不出来
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-15 01:16

Powered by Tencent X3.4

© 2013-2024 Tencent

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