ThaiSC

How to Install WRF-Chem (version 3.8.1 intel2019b)

การติดตั้งโปรแกรม WRF-Chem มีการขั้นตอนในการติดตั้งตามลำดับ เริ่มจาก การติดตั้ง netCDF-Fortran ซึ่งเป็น toolchains ของ WRF จากนั้นเป็นขั้นตอนติดตั้ง WRF-Chem ,WPS และตัวอย่าง script สำหรับ submit job เข้าใช้งานระบบ TARA

1. Build netCDF-Fortran/4.5.2-iimpi-2019b โดยการใช้โปรแกรม Easybuild

1.1 Download โปรแกรม netCDF-Fortran 4.5.2 โดยใช้คำสั่ง

				
					wget https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/n/netCDF-Fortran/netCDF-Fortran-4.5.2-iimpi-2019b.eb
				
			

1.2 ทำการติดตั้ง netCDF-Fortran 4.5.2 ด้วยใช้โปรแกรม Easybuild โดยใช้คำสั่ง

				
					module load EasyBuild
eb -r netCDF-Fortran-4.5.2-iimpi-2019b.eb
				
			

เมื่อทำการติดตั้งเสร็จจะขึ้นดังนี้

				
					== COMPLETED: Installation ended successfully (took 2 min 5 sec)
== Results of the build can be found in the log file(s) /tarafs/data/home/tarauser/.local/easybuild/software/netCDF-Fortran/4.5.2-iimpi-2019b/easybuild/easybuild-netCDF-Fortran-4.5.2-20210407.100126.log
== Build succeeded for 2 out of 2
== Temporary log file(s) /tmp/eb-L3jRIQ/easybuild-yfSspF.log* have been removed.
== Temporary directory /tmp/eb-L3jRIQ has been removed.
				
			

2. ติดตั้ง WRF, WRF-Chem และ WPS

2.1 Download โปรแกรม WRF, WRF-Chem และ WPS โดยใช้คำสั่ง

				
					wget https://www2.mmm.ucar.edu/wrf/src/WRFV3.8.1.TAR.gz
wget https://www2.mmm.ucar.edu/wrf/src/WRFV3-Chem-3.8.1.TAR.gz
wget https://www2.mmm.ucar.edu/wrf/src/WPSV3.8.1.TAR.gz
				
			

2.2 ทำการแตกไฟล์ WRF, WRF-Chem และ WPS

				
					tar zxvf WRFV3-Chem-3.8.1.TAR.gz
tar zxvf WRFV3.8.1.TAR.gz
tar zxvf WPSV3.8.1.TAR.gz
				
			

จะได้โฟลเดอร์มาจำนวน 3 โฟลเดอร์ ดังนี้

				
					ls -l
total 42185
drwxr-xr-x  3 tarauer tarausers    16384 Aug 12  2016 chem
drwxr-xr-x 16 tarauser tarausers    4096 Aug 12  2016 WRFV3
drwxr-xr-x  7 tsuwan tarausers      4096 Aug 12  2016 WPS

				
			

2.3 ทำการย้ายโฟลเดอร์ chem เข้าไปในโฟลเดอร์ WRFV3

				
					mv chem WRFV3
				
			

2.4 ทำการเรียกใช้งานโปรแกรม netCDF-Fortran และ export ค่า เพื่อเตรียมสำหรับติดตั้ง WRF

				
					module purge 
mu
ml netCDF-Fortran/4.5.2-iimpi-2019b 
ml libpng/1.6.37-GCCcore-8.3.0
ml JasPer/1.900.1-intel-2019b

export NETCDF=${EBROOTNETCDFMINFORTRAN:-${EBROOTNETCDF}}
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export WRF_EM_CORE=1
export WRF_NMM_CORE=0
export WRF_CHEM=1
export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib
				
			

2.5 เข้าไปที่โฟลเดอร์ WRFV3 และ รันไฟล์ configure

กรณีมีความต้องการใช้งาน grib2 ใน WRF ให้ดำเนินการแก้ Config ตามข้างล่างก่อนรัน ./configure

				
					cd WRFV3
vi arch/Config_new.pl

$I_really_want_to_output_grib2_from_WRF = "FALSE" ;

เป็น 

$I_really_want_to_output_grib2_from_WRF = "TRUE" ;
				
			

หากไม่ต้องการใช้งาน grib2 ให้ทำการรัน configure ได้เลย

				
					
./configure
				
			

**หมายเหตุ เมื่อขึ้นหน้าที่ให้เลือก Option ของโปรแกรม WRF ให้ทำการเลือก 20 [Enter] , (dmpar) INTEL (ifort/icc): Xeon (SNB with AVX mods)

และ 1 [Enter] , 1=basic

ถ้าเสร็จเรียบร้อย จะได้ไฟล์ชื่อว่า configure.wrf

				
					ls -al
-rw-r--r--  1 tarauser tarausers 21222 Apr  7 10:55 configure.wrf
				
			

2.6 เข้าไปแก้ไขค่าในไฟล์ configure.wrf

				
					vi configure.wrf
				
			

ทำการหา Parameter ที่มีชื่อว่า DM_FC  และ DM_CC  และปรับตั้งค่า ดังนี้

				
					DM_FC = mpiifort -f90=$(SFC)
DM_CC = mpiicc -cc=$(SCC) -DMPI2_SUPPORT
				
			

2.7 เมื่อทำการปรับตั้งค่าเสร็จเรียบร้อย ทำการติดตั้งโปรแกรม WRF โดยใช้คำสั่ง

				
					./compile em_real >& log.compile
				
			

2.8 เข้าไปที่โฟลเดอร์ WPS และทำการ export ค่า เพื่อเตรียมสำหรับติดตั้ง WPS

				
					cd WPS
export WRF_DIR = ../WRFV3
				
			

2.9 รันไฟล์ clean และ configure

				
					./clean
./configure
				
			

**หมายเหตุ เมื่อขึ้นหน้าที่ให้เลือก Option ของโปรแกรม WPS ให้ทำการเลือก 19 [Enter] , ( Linux x86_64, Intel compiler    (dmpar))

ถ้าเสร็จเรียบร้อย จะได้ไฟล์ชื่อว่า configure.wps

				
					ls -al
-rw-r--r--  1 tarauser tarausers 21222 Apr  7 11:00 configure.wps
				
			

2.10 เข้าไปแก้ไขค่าในไฟล์ configure.wps

				
					vi configure.wps
				
			

ทำการหา Parameter ที่มีชื่อว่า DM_FC  และ DM_CC  และปรับตั้งค่า ดังนี้

				
					DM_FC = mpiifort -f90=ifort
DM_CC = mpiicc -cc=icc -DMPI2_SUPPORT
				
			

2.11 เมื่อทำการปรับตั้งค่าเสร็จเรียบร้อย ทำการติดตั้งโปรแกรม WPS โดยใช้คำสั่ง

				
					./compile >& log.compile
				
			

**หมายเหตุ หากทำการติดตั้งโปรแกรมเสร็จสิ้นในโฟลเดอร์ WPS จะมีค่าขึ้นตามข้างล่างนี้

				
					geogrid.exe -> geogrid/src/geogrid.exe
ungrib.exe -> ungrib/src/ungrib.exe
metgrid.exe -> metgrid/src/metgrid.exe
				
			

3. ตัวอย่าง script สำหรับ submit job เข้าใช้งานระบบ TARA

3.1 ทำการสร้าง script สำหรับ submit job เข้าระบบ TARA โดยใช้คำสั่ง

**หมายเหตุ script ที่สร้างต้องสร้างไว้ที่ path /WRFV3/test/em_real

				
					cd /WRFV3/test/em_real
				
			
				
					vi submit.sh
				
			

3.2 ระบุรายละเอียดตามตัวอย่างด้านล่าง โดยสามารถปรับเปลี่ยนได้ตามการใช้งาน (ดูรายละเอียดเพิ่มเติมได้ที่ การสั่งรัน Job ใน SLURM โดยใช้ script )

				
					#!/bin/bash
#SBATCH -p compute                  
#SBATCH -N 2  --ntasks-per-node=40   
#SBATCH -t 02:00:00                 
#SBATCH -J WRF_test                   
#SBATCH -A <project ID>               

module purge 
mu
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

export JASPERINC=$EBROOTJASPER/include
export JASPERLIB=$EBROOTJASPER/lib

ulimit -s unlimited              # ต้องมีคำสั่งนี้ใน script ไม่เช่นนั้นจะรัน WRF Error
srun ./real.exe                  # Run your program or executable code
srun ./wrf.exe
				
			

3.3 เมื่อเตรียม script (submit.sh) สำหรับรันงานและตรวจสอบ input files เสร็จเรียบร้อย ทำการ submit job เข้าระบบ โดยใช้คำสั่ง

				
					sbatch submit.sh