首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetCDF fortran无法nf90_open以头行HDF开头的netCDF文件

NetCDF fortran无法nf90_open以头行HDF开头的netCDF文件
EN

Stack Overflow用户
提问于 2022-04-19 00:46:24
回答 1查看 286关注 0票数 1

我在处理从CCMP_Wind_Analysis_yyyymmdd_V02.0_L3.0_RSS.nc下载的风分析时遇到了问题。

NetCDF fortran库使用所提供的示例代码成功地打开了气候学,但没有打开单独的每日数据。

代码语言:javascript
复制
program open
  USE netcdf
  IMPLICIT NONE
  INTEGER(KIND=4) :: ierr  !Open netCDF file 
  ierr=nf90_open(path='infile', mode=nf90_nowrite, ncid=ncid)
  ierr=nf90_close(ncid)
end program open

它回来了

代码语言:javascript
复制
error code -51, "NetCDF: Unknown file format "

失败的文件似乎是由Matlab创建的,它的版本是netcffd-4经典模型

代码语言:javascript
复制
$ ncdump -k Data/CCMP/200408/CCMP_Wind_Analysis_20040801_V02.0_L3.0_RSS.nc
$ netCDF-4 classic model

气候学是由IDL创建的,它的版本也很简单

代码语言:javascript
复制
$ ncdump -k Data/CCMP/CCMP_Wind_Analysis_climatology_V02.0_L3.5_RSS.nc
$ classic

每日数据和气候学数据都可以由ncdump或grads来打开,但是我想二进制地转储每日数据,如果我可以使用fortran,速度会更快。

有人知道为什么和如何解决这个问题吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-04-19 17:50:53

您的Fortran代码很可能链接到netCDF经典库,而不是netCDF4库。netCDF4库将产生类似于以下对nf-config的响应

代码语言:javascript
复制
zender@spectral:~$ nf-config

This  4.5.3 has been built with the following features: 

  --cc        -> clang
  --cflags    -> -I/opt/homebrew/Cellar/netcdf/4.8.1_1/include  -fPIC -g -Wall -Wno-unused-variable -Wno-unused-parameter -O2 

  --fc        -> /opt/homebrew/bin/gfortran
  --fflags    -> -I/opt/homebrew/Cellar/netcdf/4.8.1_1/include -I/opt/homebrew/Cellar/netcdf/4.8.1_1/include
  --flibs     -> -L/opt/homebrew/Cellar/netcdf/4.8.1_1/lib -lnetcdff -lnetcdf
  --has-f90   -> TRUE
  --has-f03   -> yes

  --has-nc2   -> yes
  --has-nc4   -> yes

  --prefix    -> /opt/homebrew/Cellar/netcdf/4.8.1_1
  --includedir-> /opt/homebrew/Cellar/netcdf/4.8.1_1/include
  --version   ->  4.5.3

zender@spectral:~$ 

确保--has-nc4 -> yes而不是-> no

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71918478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档