Windows Intel Fortran编译netCDF-Fortran

步骤

  1. 下载安装预编译的netCDF-C https://docs.unidata.ucar.edu/netcdf-c/current/winbin.html 假设安装在了C:\Libs\netCDF-c\4.9.1

  2. 在nerCDF-Fortran的GitHub主页下载最新的Release https://github.com/Unidata/netcdf-fortran/releases/tag/v4.6.0

  3. 解压源代码到C:\Libs\netCDF-fortran\source

  4. 从开始菜单打开Intel oneAPI command prompt for Intel 64 for Visual Studio 2022

  5. 使用cmake生成项目。注意cmake参数中路径分隔符不要用反斜杠\
    假设我们要安装到C:/Libs/netCDF-fortran/Debug目录下

    cd C:\Libs\netCDF-fortran\
    cmake -S source -B build-debug -DnetCDF_LIBRARIES=C:/Libs/netCDF-c/4.9.1/lib/netcdf.lib -DnetCDF_INCLUDE_DIR=C:/Libs/netCDF-c/4.9.1/include -DCMAKE_INSTALL_PREFIX=C:/Libs/netCDF-fortran/Debug
    
  6. 编译生成netcdff

    cmake --build build-debug --target netcdff netcdff_c --config Debug
    
  7. 手动生成netcdff.lib

    cd build-debug\fortran
    lib netcdff.dir\Debug\*.obj netcdff_c.dir\Debug\netcdff_c.lib /out:Debug\netcdff.lib
    
  8. 编译生成测试。正常情况下,生成失败数应该是0。

    cd ..\..\
    cmake --build build-debug --target ALL_BUILD --config Debug
    
  9. 执行安装命令,会安装到第5步指定的-DCMAKE_INSTALL_PREFIX=目录下

    cmake --build build-debug --target INSTALL --config Debug
    

总结

  • 第五步的指定netCDF_LIBRARIESnetCDF_INCLUDE_DIR很关键,不然cmake找不到netcdf-c,会报错netcdf-c version 4.7.4 or greater is required

  • 第7步的手动生成netcdff.lib很关键。应该是项目的bug,编译netcdff时不会在Debug目录中生成netcdff.lib,会导致最终安装的文件没有该链接库文件,并且测试项目也不会通过(因为需要链接这个库文件,会报错fatal error LNK1104: 无法打开文件“..\fortran\Debug\netcdff.lib”

  • cmake默认编译的是Debug版本,Release版本的编译方法如下(不再详细解释)

    cd C:\Libs\netCDF-fortran\cmake -S source -B build-release  -DCMAKE_BUILD_TYPE:STRING=RELEASE -DnetCDF_LIBRARIES=C:/Libs/netCDF-c/4.9.1/lib/netcdf.lib -DnetCDF_INCLUDE_DIR=C:/Libs/netCDF/4.9.1/include -DCMAKE_INSTALL_PREFIX=C:/Libs/netCDF-fortran/Releasecmake --build build-release --target netcdff netcdff_c --config Releasecd build-release\fortran
    lib netcdff.dir\Release\*.obj netcdff_c.dir\Release\netcdff_c.lib /out:Release\netcdff.libcd ..\..\
    cmake --build build-release --target ALL_BUILD --config Release
    cmake --build build-release --target INSTALL --config Release
    

    测试

在Visual Studio 新建一个fortran项目

  • 项目->属性->Fortran->Additional Include Directories,添加C:\Libs\netcdf-fortran\Debug\inlude\Debug
  • 项目->属性->Linker->Additional Library Directories,添加C:\Libs\netCDF-fortran\Debug\libC:\Libs\netCDF-c\4.9.1\lib
  • 项目->属性->Linker->Input->Additional Dependencies,填写netcdff.lib netcdf.lib
PROGRAM testnc
USE netcdf
IMPLICIT NONE
INTEGER :: ncid, status
CHARACTER(len=*),parameter:: ncfile = "C:\Datasets\OSTIA\202202\20220201120000-UKMO-L4_GHRSST-SSTfnd-OSTIA-GLOB-v02.0-fv02.0.nc"status = nf90_open(ncfile, nf90_nowrite, ncid)call list_all_var(ncid)
END PROGRAMSUBROUTINE list_all_var(fid)
USE netcdf
IMPLICIT NONE
INTEGER, Intent(IN) :: fid
INTEGER             :: nVars, res, varid
CHARACTER(len=20)::var_name
res = nf90_inquire(fid, nVariables=nvars)
PRINT *,"所有变量:"
DO varid=1, nVarsres= nf90_inquire_variable(fid,varid,name=var_name)print *, varid,". ",var_name
END DO
END SUBROUTINE

Windows Intel Fortran编译netCDF-Fortran相关推荐

  1. 在VSCode中使用Compaq Visual Fortran编译运行Frotran程序

    本片文章主要是为了使用VSCode编译运行带QuickWin库的老版本Fortran代码. 一.准备工作 安装VSCode和Compaq Visual Fortran6.6,相关安装方法在网上找. 二 ...

  2. Intelnbsp;Fortran安装netcdf库amp;n…

       一直头痛于win7下的compaq fortran兼容性问题,安装intel fortran 10.1 + vs2008,接下来遇到了,compaq fortran 安装netcdf库的方法,无 ...

  3. Fortran 编译提示 Error:This USE statement is not positioned correctly within the scoping unit.

    问题: fortran编译出现错误 Error:This USE statement is not positioned correctly within the scoping unit. 解决问题 ...

  4. mysql netcdf_Linux下用Intel编译器编译安装NetCDF-Fortan库(4.2以后版本)

    本来这个问题真的没必要写的,可是真的困扰我太久%>_ 首先,最权威清晰的安装文档还是官方的: 那这个文档最开始就告诉我们,自NetCDF库4.2版本以后,Fortran的库和C的库就要分开bui ...

  5. 使用VS2019+Intel OneAPI (ifort)+Intel MPI编译和运行MPI程序与Coarray程序

    使用VS2019+Intel OneAPI (ifort)+Intel MPI编译和运行MPI程序与Coarray程序 一.安装环境 安装vs2019 安装Intel OneAPI Base Tool ...

  6. Compaq Visual Fortran 6.6 (Fortran编译器)

    Compaq Visual Fortran 6.6 (Fortran编译器) 注册码:33106-060-1186591-00003 Visual Fortran 6.6为Fortran编译器类,Co ...

  7. 乐鑫esp8266学习rtos3.0笔记:如何在 windows 用 CMake 编译 ESP8266 项目。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  8. Qt最新版5.14在Windows环境静态编译安装和部署的完整过程 VS 2019-Qt static link build Windows 32 bit/64 bit

    文章目录 为什么要静态编译(static link) 1.源码下载/source code download 2. 编译工具下载/compiler download 编译环境选择:MinGW/MSVC ...

  9. Qt最新版5.13在Windows环境静态编译安装和部署的完整过程(VS 2017/VS 2019)

    文章目录 为什么要静态编译 1.源码下载 2. 编译工具下载 ActivePerl Python Ruby 编译环境选择 3.编译 1.修改源码里的qtbase\mkspecs\common\msvc ...

最新文章

  1. Linux下的一个图形管理工具webmin
  2. BCH零确认和比特币RBF该怎么选?
  3. AD5933阻抗模块测量值校正
  4. 代码农民从做事情的经验
  5. c++判断数字是否为3的倍数的算法实现(附完整源码)
  6. [转]MSBuild入门
  7. 使用Dotfuscator混淆winphone8应用XAP
  8. Telink Mesh 开发(1)调试log打印
  9. csdn如何上传附件
  10. 谷歌街景地图推出“时光机”功能
  11. C. New Year Ratings Change
  12. u3d:200个插件免费分享
  13. 腾讯互娱面经-游戏客户端开发
  14. 16进制颜色代码对照表
  15. 是否使用安全模式启动word
  16. Arturia黑五促销,仅剩一天
  17. Java对象大小内幕浅析
  18. 乐高拉力机器人图纸_乐高MOC图纸分享:乐高MINI机器人制作教程(图文版)
  19. 一文看懂中国的运营商入库认证(中国联通入库指南)
  20. Google帝国的接班人,凭什么是他?

热门文章

  1. 论文对比实验图神器MulimgViewer
  2. 调用tensorflow2中的tf.keras.applications.VGG16并进行微调
  3. NERO刻录使用教程
  4. Nero 刻录系统盘
  5. 通达信结构紧凑形态选股公式编写思路
  6. C++抽奖(随机数+人名的不停闪烁)
  7. win7旗舰版卸载“获取Windows10”升级助手
  8. UTools工具下载网址
  9. liquibase编写sql脚本
  10. 遗传算法-python版(计算机智能算法)