Not found netcdf.inc when I try to configure WRF

助教您好打擾了,

根據安裝文件的說明,我執行

./clean -a
./configure 並選擇35(想說從之前的情況看起來我們用的應該是GNU的編譯器?)

但出現

image.png

(也有試過文件中的67但看起來好像更錯的樣子…希望我沒有誤會他)

找一找發現netcdf.inc是在netcdf-fortran-4.4.5/include下,於是嘗試export NETCDF=/home/taro/wrf-hw/opt/netcdf-c-4.7.3/:/home/taro/wrf-hw/opt/netcdf-fortran-4.4.5/

但他卻還是跟我說沒有找到…

image.png

不知道這是不是導致後面./compile -j 4 em_real >& build_wrf.log 的時候跳出Problems building executables的原因呢?

還是是因為我跳過了不能執行的rsync -avz ~lcl_davidg/.local/ ~/.local/ ?(我是有執行看看啦,但他有報錯我覺得很合理(?所以沒有太管他;因為我覺得有點怪,這台電腦應該和文件中的電腦不一樣,所以我應該沒有這個檔案吧…)

不知道能不能請教助教一些解決的方向的提示呢?

以下是build_wrf.log的部分訊息(因為錯誤訊息有一點小多,因此不太確定要截哪裡…)

image.png

image.png


此外,我想請教一下這一行指令

sed -i ‘s#/lib/cpp#/scinet/niagara/software/2019b/core/bin/cpp#’ configure.wrf

我想我應該要改成sed -i ‘/usr/bin/cpp’ configure.wrf (?若他說主要是為了告訴makefile cpp的位置)

不過他會跳出

image.png

麻煩助教解答了 謝謝助教!

首先關於 ./configure 選擇 compiler, 35) GNU 應該沒有問題,因為如果在虛擬機 Ubuntu 22 內建的應該不會太舊,不過課程中我們有安裝 Intel oneAPI, 也可以試試 Intel compilers.

接著 NetCDF 或許就是這次作業最棘手的部分之一。你的想法利用 : 分隔兩個 path 是可以被理解的,但可惜 WRF 並無法認得;他的問題是當初 NetCDF 原本 C, Fortran 是不分家的。因此,換個方向想,能不能把 path 歸為一呢?

rsync 的話他是像 scp 那樣跨機器複製檔案的指令,而我們不在 ISC 主機上錯誤確實很正常。

最後,sed 指令常見的功用是取代檔案中的文件,這裡的兩個 sed 其實是希望把 configure.wrf 中 CFLAGS_LOCAL 後面取消註解掉 -DRSL0_ONLY 使得執行時不要產生太多我們不會用到的檔案,以及把 cpp (C pre-processor) 改成他想要的版本(照用 /lib/cpp 應該也沒差,你可以用 which cpp 來確認),其實可以用 vim 編輯就好。

Best regards,

翁君牧