我在台灣衫一號下,嘗試安裝 WRF ,
按照 hackmd 上的說明安裝好 Dependency ,
安裝的是說明使用的 gcc/7.5.0 、mpich-3.1.4-t 、hdf5-1.8.21-t、
pnetcdf-1.12.0-t、netcdf-c-4.7.3-t、netcdf-fortran-4.4.5-t
執行編譯並查看結果後發現,執行檔並未成功被建立。
以下是我編譯過程的記錄,我有什麼做的不對的地方嗎?
==========================================================================
build started: Sat Feb 10 01:07:21 CST 2024
build completed: Sat Feb 10 01:14:16 CST 2024
---> Problems building executables, look for errors in the build log <---
==========================================================================
查看 build log,第一個遇到的問題如下。
gcc 並沒有 “-ip” 這個參數。
我認為是編譯器問題,
在嘗試更換編譯器版本、更換成 intel 編譯器、
載入 mpi 相關模組、載入 fortan 相關模組,
均未得到解決。
(上略)
make[3]: Entering directory `/home/u1/jonathan0hsu/wrf-hw/WRF_ISC21/external/io_g
rib_share'
make[4]: Entering directory `/home/u1/jonathan0hsu/wrf-hw/WRF_ISC21/external/io_g
rib_share'
rm -f io_grib_share.o
gcc -I. -w -O3 -ip -DRSL0_ONLY -DDM_PARALLEL -DLANDREAD_STUB=1 -DMAX_HISTORY=25
-DNMM_CORE=0 -c get_region_center.c
/pkg/gcc/9.3.0/bin/cpp -P -nostdinc -traditional-cpp -I. io_grib_share.F > io_g
rib_share.f90
gcc -I. -w -O3 -ip -DRSL0_ONLY -DDM_PARALLEL -DLANDREAD_STUB=1 -DMAX_HISTORY=25
-DNMM_CORE=0 -c gridnav.c
gcc -I. -w -O3 -ip -DRSL0_ONLY -DDM_PARALLEL -DLANDREAD_STUB=1 -DMAX_HISTORY=25
-DNMM_CORE=0 -c open_file.c
gcc: error: unrecognized command line option ‘-ip’; did you mean ‘-p’?
make[4]: [gridnav.o] Error 1 (ignored)
gcc: error: unrecognized command line option ‘-ip’; did you mean ‘-p’?
make[4]: [get_region_center.o] Error 1 (ignored)
gcc: error: unrecognized command line option ‘-ip’; did you mean ‘-p’?
make[4]: [open_file.o] Error 1 (ignored)
gfortran -I. -w -ffree-form -ffree-line-length-none -fconvert=big-endian -frecord-marker=4 -I. -c io_grib_share.f90
ar ru ./libio_grib_share.a io_grib_share.o get_region_center.o gridnav.o open_file.o
ar: creating ./libio_grib_share.a
ar: get_region_center.o: No such file or directory
make[4]: [thisdir_archive] Error 1 (ignored)
ranlib ./libio_grib_share.a
ranlib: './libio_grib_share.a': No such file
make[4]: [thisdir_archive] Error 1 (ignored)
make[4]: Leaving directory `/home/u1/jonathan0hsu/wrf-hw/WRF_ISC21/external/io_grib_share'
make[3]: Leaving directory `/home/u1/jonathan0hsu/wrf-hw/WRF_ISC21/external/io_grib_share'
(下略)
我的步驟
module load gcc/7.5.0
module load intel
module load mpi/openmpi-4.0.5/gcc930
module load zlib-1.2.11-t
module load mpich-3.1.4-t
module load hdf5-1.8.21-t
module load pnetcdf-1.12.0-t
module load netcdf-c-4.7.3-t
module load netcdf-fortran-4.4.5-t
export APPROOT=/home/jonathan0hsu/wrf-hw
export NETCDF=/usr
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export NETCDF_classic=1
export HDF5=$APPROOT/opt/hdf5-1.8.21
export PNETCDF=$APPROOT/opt/pnetcdf-1.12.0
./clean -a
./configure 選擇 35
sed -i '/^CFLAGS_LOCAL/s/.*/CFLAGS_LOCAL = -w -O3 -ip -DRSL0_ONLY/' configure.wrf
qsub script.sh
我的 PBS 檔案( script.sh )如下
#!/bin/bash
#PBS -l nodes=2:ppn=40
#PBS -P ACD112218
#PBS -q ctest
#PBS -N compileWrf
module purge
module load gcc/7.5.0
module load intel
module load mpi/openmpi-4.0.5/gcc930
module load zlib-1.2.11-t
module load mpich-3.1.4-t
module load hdf5-1.8.21-t
module load pnetcdf-1.12.0-t
module load netcdf-c-4.7.3-t
module load netcdf-fortran-4.4.5-t
export APPROOT=/home/jonathan0hsu/wrf-hw
export NETCDF=/usr
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export NETCDF_classic=1
export HDF5=$APPROOT/opt/hdf5-1.8.21
export PNETCDF=$APPROOT/opt/pnetcdf-1.12.0
cd ./wrf-hw/WRF_ISC21
./compile -j 6 em_real >& build_wrf.log
echo "Compile End"
查詢過後試過但失敗的方法:
- 改使用 gcc/9.3.0,得到一樣的結果
- 在執行 ./compile -j 16 em_real >& build_wrf.log 前,
增加 cpp 位置:sed -i ‘s#/lib/cpp#/pkg/gcc/9.3.0/bin/cpp#’ configure.wrf - 試過 configure 選擇 67 ,並且改使用 intel/2019_u5,發生了 ifort 編譯問題
- 改在台灣衫三號上執行,安裝好 Dependency 後編譯,遇到同樣的問題
- 將 configure 檔案中的 -ip 改成 -p,編譯未成功
- 將編譯的核心數由 16 個改為現在的 6 個,並不影響
另外我在一個論壇上,看到有人與我遇到相似的問題,
但並未附上解決方法。
https://bbs.06climate.com/forum.php?mod=viewthread&tid=96875&page=1&mobile=no
想請問我是否有哪一個步驟做的不對或是漏掉了什麼東西,
以及是否有解決方法?
感激不盡