爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5035|回复: 3

[求助] 按照网上的资料,自己理解着编了一个f90读取nc数据的程序,编译时显示出错

[复制链接]
发表于 2012-11-2 16:55:46 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Deleting intermediate files and output files for project 'readnc - Win32 Debug'.
--------------------Configuration: readnc - Win32 Debug--------------------
Compiling Fortran...
D:\doctor\holland\readnc\read_nc_slp.f90
D:\doctor\holland\readnc\read_nc_slp.f90(18) : Error: Conflicting attributes or multiple declaration of name.   [NF_OPEN]
  external nf_open
-------------------------^
D:\doctor\holland\readnc\read_nc_slp.f90(19) : Error: Conflicting attributes or multiple declaration of name.   [NF_INQ_VARID]
  external nf_inq_varid
-------------------------^
D:\doctor\holland\readnc\read_nc_slp.f90(20) : Error: Conflicting attributes or multiple declaration of name.   [NF_GET_VAR_REAL]
  external nf_get_var_real
-------------------------^
D:\doctor\holland\readnc\read_nc_slp.f90(21) : Error: Conflicting attributes or multiple declaration of name.   [NF_CLOSE]
  external nf_close
-------------------------^
Error executing df.exe.
readnc.exe - 4 error(s), 0 warning(s)

将external语句都注释掉

之后,也出错:
Deleting intermediate files and output files for project 'readnc - Win32 Debug'.
--------------------Configuration: readnc - Win32 Debug--------------------
Compiling Fortran...
D:\doctor\holland\readnc\read_nc_slp.f90
Linking...
read_nc_slp.obj : error LNK2001: unresolved external symbol _HANDLE_ERR@4
Debug/readnc.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
readnc.exe - 2 error(s), 0 warning(s)

现将程序附上,请高手给予知道,不胜感激!
!---Longitude(经度),Latitude(纬度)
program read_ncdata
  implicit none
  !---读取某一层高度场数据
  include  'netcdf.inc'
  
!  real*4, parameter  :: add_offset=117965.0, scale_factor=1.0    !偏移量,放大系数
!  integer*4, parameter :: missing_value=32766, lats=73, lons=144, levs=17   !缺测值,纬度数,经度数,高度场层数           
  integer*4    :: ncid,status,uwnd
  character*4    :: year_str
  character*200   :: in_file_str
!  character*200   :: out_file_str
  integer*4    :: year,days
  integer*4    :: i,j,l  !---
  real*4,allocatable  :: uwind(:,:,:) !动态数组,尚未分配控件,实传递到读数据子程序空间,读一年数据
!  integer*4    :: get_days_of_year
  external handle_err
!  external nf_open
!  external nf_inq_varid
!  external nf_get_var_real
!  external nf_close
!  days = get_days_of_year(year)
!  allocate(uwind(lons,lats,days))  !给动态数组分配控件,lon:0~357.5;lat:90~-90;lev:1~17;day:1~365
  

  !生成所要读取的nc文件的文件名
!  write(year_str,'(i4)')year
!  in_file_str = 'e:\work\data\slp\slp.'//year_str//'.nc'
  in_file_str='D:\doctor\holland\data\uwnd.sig995.1949.nc'   
   
  !----------读netcdf数据------------------------------------------------
  status=nf_open(trim(in_file_str),nf_nowrite,ncid)   !打开nc
  if(status/=nf_noerr) call handle_err(status)
  
  status=nf_inq_varid(ncid,'uwnd',uwnd) !获取变量信息
  if(status/=nf_noerr) call handle_err(status)
  
  status = nf_get_var_real(ncid,uwnd,uwind) !---读取变量
  if(status/=nf_noerr) call handle_err(status)
  
  status=nf_close(ncid)   ! 关闭nc
  if(status/=nf_noerr) call handle_err(status)
  !-------------------------------------------------------------------------
  !生成数据到数组
  do l = 1,1460 !---对天数循环
   do j = 0,25 !---对纬度格数循环
    do i = 100,125 !---对经度格数循环
     uwind(i,j,l)=uwind(i,j,l)   
    enddo
   enddo
  enddo
  
end


密码修改失败请联系微信:mofangbao
0
早起挑战累计收入
发表于 2012-11-2 18:48:36 | 显示全部楼层
读取nc有现成的库,楼主在论坛搜索一下看看
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2012-11-3 16:45:53 | 显示全部楼层
现成的库?是不是也要通过fortran程序调用的啊?
密码修改失败请联系微信:mofangbao
发表于 2016-6-29 10:16:57 | 显示全部楼层
mofangbao 发表于 2012-11-2 18:48
读取nc有现成的库,楼主在论坛搜索一下看看

想问一下管理员,哪里可以找到 nf_open,nf_nowrite,if ( status /= nf_noerr)   还有nf_inq_varid 的意思和用法呢?我不明白他们的用法和含义
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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