Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

Excerpt
hiddentrue
nameCompiling WPS

วิธีการติดตั้ง WRF Preprocessing system

การติดตั้งโปรแกรม WRF Preprocessing System (WPS) มีขั้นตอนดังนี้

Tip

A variant of WRF must be compiled prior to WPS.

Note

ต้องใช้หน้าต่างเดียวกันเท่านั้น (ไม่เช่นนั้นต้องทำขั้นตอน 1 และ 3 ใหม่ทุกรอบ)

circle
Table of Contents
minLevel1
maxLevel7
style

...

1. Load required modules

ทำการล้างโมดูลที่โหลดไว้ก่อนหน้าทั้งหมด แล้วโหลดโมดูลที่ WPS จำเป็นต้องใช้ โดยใช้คำสั่ง

Code Block
languagebash
module purge
module load netCDF-Fortran/4.5.2-iimpi-2019b
module load libpng/1.6.37-GCCcore-8.3.0
module load JasPer/1.900.1-intel-2019b          # (MUST) JasPer version <2.0
Info

These dependencies should be compiled using with the same set of compilers.

2. Download WPS source code

ดาวน์โหลด WPS เวอร์ชั่นล่าสุดจาก GitHub มายัง Directory ปัจจุบัน

Code Block
languagebash
git clone https://github.com/wrf-model/WPS      # Version 4.40 at the time

...

สามารถย้ายตำแหน่งโฟลเดอร์ WPS นี้ ด้วยคำสั่ง mv

3. Set environment variables

ทำการตั้งค่า Environment variables ดังแสดงด้านล่าง (มีการตั้งค่า User ต้องตั้งค่า Path ไปยังโฟลเดอร์ WRF ลงในตัวแปร WRF_DIR)

Code Block
languagebash
export WRF_DIR=../WRF     # Path to WRF folder *** {USER INPUTEDIT} *** 

export NETCDF=${EBROOTNETCDFMINFORTRAN:-${EBROOTNETCDF}} # Required
export JASPERINC=$EBROOTJASPER/include                   # For GRIB2 IO (RecommendOptional)
export JASPERLIB=$EBROOTJASPER/lib                       # For GRIB2 IO (Recommend)Optional)
### Common mistake :: insert spaces before or after =
Info

สามารถดู Path ของโฟลเดอร์ WRF โดยเข้าไปในโฟลเดอร์ ได้โดยเข้าไปในโฟลเดอร์ WRF แล้วใช้คำสั่ง pwd

4. Set configure file

4.1 Run ./configure

  • เข้าไปในโฟลเดอร์ WPS ด้วยคำสั่ง cd ./WPS

  • ใช้คำสั่ง ./configure

  • พิมพ์เลข 19 แล้วกด Enter เพื่อเลือกการคำนวณขนานแบบ Distributed memory (dmpar) ด้วย Intel compiler บนระบบปฏิบัติการ Linux x86_64

  • (ใช้คำสั่ง ./clean -a ก่อน ถ้าหากต้องเริ่ม configure ใหม่)

Code Block
languagebash
cd ./WPS
./configure
# Type 19, then press Enter <-- Linux x86_64, Intel compiler (dmpar)

4.2 Edit configure.wps

  • แก้ไขไฟล์ configure.wps ในโฟลเดอร์ WPS ด้วย Editor Text editor เช่น nano, vi

  • ทำการเปลี่ยนจาก DM_FC = mpif90 เป็น DM_FC = mpiifort

  • ทำการเปลี่ยนจาก DM_CC = mpicc เป็น DM_CC = mpiicc

  • (สำหรับ WRF ที่ลงด้วย sm+dm option ให้เพิ่ม -liomp5 -lpthread ให้กับ WRF_LIB ด้วย)

Code Block
languagebash
nano configure.wps
# Change  DM_FC = mpif90  to  DM_FC = mpiifort
# Change  DM_CC = mpicc   to  DM_CC = mpiicc  
# (If WRF was compiled with sm+dm option, also append -liomp5 -lpthread to WRF_LIB)
Expand
titleUsing For nano editor
  1. Press Ctrl + W # To search

  2. Type “mpif90“, then press Enter # Search using keyword “mpif90“

  3. In line For the DM_FC , change mpif90 to mpiifort

  4. In line For the DM_CC, change mpicc to mpiicc

  5. Press Ctrl + O, then press Enter # Save file

  6. Press Ctrl + X # Exit nano

5. Compile WPS

ทำการติดตั้ง เริ่มทำการติดตั้ง WPS โดยบันทึกการแจ้งต่างๆลงในไฟล์ compile.wps.log แทน (ใช้เวลาประมาณ 5 นาทีบน TARA front-end)

Code Block
languagebash
./compile >2>&1 | tee compile.wps.log

6. Check

1.2. Heading 3

ตัวอย่างการ link ไปที่เอกสารอื่น (เตรียม R library ที่ต้องการใช้งานให้พร้อมโดยสามารถดูได้จาก Programming language (R, Python, Perl))

ปัญหาที่อาจจะพบ

Note

Troubleshooting

Error message

channel_setup_fwd_listener_tcpip: cannot listen to port: 8888

Could not request local forwarding.

วิธีแก้ไข

เปลี่ยนค่า <local-port> เป็นค่าอื่น เช่นเปลี่ยนจาก 8888 เป็น 8889 แทน

คำอธิบาย

ปัญหานี้เกิดจาก <local-port> ที่ user ระบุมีการใช้งานอยู่ในขณะเดียวกันนี้จาก application อื่น เช่น database, Jupyter Notebook, หรือ SSH เป็นต้น จึงไม่สามารถใช้งาน port ซ้อนทับในเวลาเดียวกันได้

2. Heading 2

2.1. Heading 3

Related articles

Filter by label (Content by label)
showLabelsfalse
max5
spacescom.atlassian.confluence.content.render.xhtml.model.resource.identifiers.SpaceResourceIdentifier@48ae393
sortmodified
showSpacefalse
reversetrue
typepage
cqllabel = "tunnelling" and type = "page" and space = "PLAYG"
labelssingularity python container

...

hiddentrue

...

  • ใช้คำสั่ง ls -ls ./*.exe เพื่อตรวจหา geogrid.exe, metgrid.exe และ ungrib.exe

  • ใช้คำสั่ง ls -ls ./util/*.exe เพื่อตรวจหา avg_tsfc.exe, calc_ecmwf_p.exe, g1print.exe, g2print.exe, height_ukmo.exe, int2nc.exe, mod_levs.exe และ rd_intermediate.exe

  • ใช้คำสั่ง ls -ls ./util/*.ncl เพื่อตรวจหา gfs.ncl, plotfmt.ncl, plotfmt_nc.ncl และ plotgrids.ncl

Code Block
languagebash
ls -ls ./*.exe             
# Check if geogrid.exe, metgrid.exe and ungrib.exe are present

ls -ls ./util/*.exe             
# Check if avg_tsfc.exe, calc_ecmwf_p.exe, g1print.exe, g2print.exe, 
# height_ukmo.exe, int2nc.exe, mod_levs.exe and rd_intermediate.exe are present

ls -ls ./util/*.ncl
# Check if gfs.ncl, plotfmt.ncl, plotfmt_nc.ncl and plotgrids.ncl are present

NEXT: Geography data --- for WPS geogrid.exe

...

Contact Us
ThaiSC support service : thaisc-support@nstda.or.th