Windows Intel Fortran编译netCDF-Fortran

2025年3月29日更新:

  1. 移除新版netcdf-fortran已经不需要的步骤
  2. CMake指定Ninja作为生成器提升编译速度

附一份编译好的库文件,有需要的同学可以自取☞蓝奏云:https://wwyo.lanzouu.com/ikQku2s1pvjc
编译和测试平台:Windows11、Intel Fortran Compiler 2024.2.0.424、VS2022
顺便说:

  1. 使用AMD CPU的同学需要额外安装Intel Fortran Compiler runtime才能正常使用Intel Fortran Compiler,不想去官网下载的同学可以自取☞蓝奏云:https://wwyo.lanzouu.com/iDH5Z2s23y7c
  2. 我用Intel Fortran Compiler 2025执行CMake会出现找不到Fortran编译器的问题,两种解决方案:一是手动安装使用最新版的cmake(目前是4.0),二是安装2023或2024版本的Intel Fortran Compiler,现在官网已经下载不到老版本的安装包了,但可以从这里找到:https://github.com/KaranKad/winget-pkgs/tree/90723dae495070c4cedce8e4f902a7c6b2dbb344/manifests/i/Intel/FortranCompiler
  3. 祝大家能都享受到Fortan带来的运算效率的提升。

步骤

  1. 下载安装预编译的netCDF-C https://downloads.unidata.ucar.edu/netcdf/,目前(2025年3月29日)最新版的是netCDF4.9.3-NC4-DAP-64.exe。 假设安装在了C:\myLibs\netcdf-c\

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

  3. 解压源代码到C:\myLibs\netcdf-fortran\source

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

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

    cd C:\myLibs\netCDF-fortran\
    cmake -S source -B build-debug -G Ninja -DnetCDF_LIBRARIES=C:/myLibs/netcdf-c/lib/netcdf.lib -DnetCDF_INCLUDE_DIR=C:/myLibs/netcdf-c/include -DCMAKE_INSTALL_PREFIX=C:/myLibs/netcdf-fortran/Debug
    
  6. 编译。正常情况下,不会有错误出现。

    cmake --build build-debug
    
  7. 执行安装命令,会安装到第5步指定的-DCMAKE_INSTALL_PREFIX=目录下

    cmake --install build-debug
    

总结

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

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

    cd C:\myLibs\netcdf-fortran\
    
    cmake -S source -B build-release  -G Ninja -DCMAKE_BUILD_TYPE:STRING=RELEASE -DnetCDF_LIBRARIES=C:/myLibs/netcdf-c/lib/netcdf.lib -DnetCDF_INCLUDE_DIR=C:/myLibs/netcdf-c/include -DCMAKE_INSTALL_PREFIX=C:/myLibs/netcdf-fortran/Release
    
    cmake --build build-release
    cmake --install build-release
    

    测试

在Visual Studio 新建一个fortran项目

  • 项目->属性->Fortran->Additional Include Directories,添加C:\myLibs\netcdf-fortran\Debug\include
  • 项目->属性->Linker->Additional Library Directories,添加C:\myLibs\netcdf-fortran\Debug\lib;C:\myLibs\netcdf-c\lib
  • 项目->属性->Linker->Input->Additional Dependencies,填写netcdff.lib netcdf.lib
  • 项目->属性->Debugging->Environment,填写PATH=C:\myLibs\netcdf-fortran\Debug\bin;C:\myLibs\netCDF-c\bin

测试代码(感谢山丘0528提供的测试代码)

program main
    use netcdf
    implicit none
    print *, "NetCDF version:", nf90_inq_libvers()
end program main

正常情况下会输出

 NetCDF version:
 4.9.3 of Feb 20 2025 16:14:34 $

这个方案时使用intel x64 的终端编译的,使用时一定要注意这里的x64,
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐