依次运行:
->cd ~/wly/LIBRARIES/ParallelIO-pio2_6_6/build->cmake .. -DCMAKE_INSTALL_PREFIX=../install -DPIO_ENABLE_EXAMPLES=ON
->make examples -j4
->grep -i examples CMakeCache.txt | grep ON
PIO_ENABLE_EXAMPLES:BOOL=ON
说明CMake 配置中确实启用了 PIO_ENABLE_EXAMPLES=ON。
但是目前 make examples 没有生成可执行文件,这通常是因为:
🔹 某些版本的 PIO(包括 2.6.6)虽然有 examples/ 目录,但 CMakeLists.txt 里没有实际添加构建指令。
🔹 所以要手动编译或进入源码目录单独构建。
下一步:手动检查并编译 Fortran 示例
->cd ~/wly/LIBRARIES/ParallelIO-pio2_6_6
->find examples -type f \( -name "examplePio.F90" -o -name "examplePio.F*" -o -name "darray_no_async.F90" \)
examples/f03/examplePio.F90
找到了正确的示例文件!!!
接下来:
->cd examples/f03
->mpifort -I/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/build -I/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/build/src/flib -I/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/install/include -I$NETCDF/include -I/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/install/include examplePio.F90 -L/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/install/lib -lpiof -lpioc -lgptl -L$NETCDF/lib -lnetcdff -lnetcdf -L$PNETCDF/lib -lpnetcdf -o examplePio_f90
输出:
ld: skipping incompatible /lib/libgcc_s.so.1 when searching for libgcc_s.so.1
ld: warning: libnetcdf.so.15, needed by /public/home/chaosuan/SHU_10010844/wly/LIBRARIES/netcdf/lib/libnetcdff.so, may conflict with libnetcdf.so.19
表明已经能通过编译阶段,并且没有再报 config.h 或 pio.mod 找不到的错误。
设置运行时库路径:
->export LD_LIBRARY_PATH=/public/home/chaosuan/SHU_10010844/wly/LIBRARIES/ParallelIO-pio2_6_6/install/lib:$NETCDF/lib:$PNETCDF/lib:$LD_LIBRARY_PATH
直接运行:
->mpirun -np 4 ./examplePio_f90