Link Search Menu Expand Document

逐日mcip之執行腳本

Table of contents

背景

  • mcip為CMAQ系統最先需要執行的氣象前處理程式,這個版本的run_mcip_DM.csh的目標與特色:
    1. 讀取網格範圍之引數(${GRD[$i]}),啟動對應的網格範圍設定,並且將結果檔存到正確的網格目錄下,對3個網格系統都能通用。
    2. 結果檔名中不再有日期的註記,讓檔案可以逐日覆蓋,以減省儲存空間。
    3. 唯有d01的密度、d02~d03的邊界檔需按日拆解留存在目錄下,以便讓CAMS預報數據寫成CMAQ邊界檔run_bcon(逐日執行)可以使用(fcst.cs會負責拆解)。
    4. 彈性模擬日期範圍之應用:放棄固定個數的wrfout連結,改採駐日累積的方式產生。這點算是個不小的改變。
    5. 將執行核心數以環境變數形式執行模式,方便進行平行運算的調整
  • 呼叫:fcst.cs每天呼叫,執行3個網格範圍之mcip作業。
  # mcip
for i in 0 1 2;do
  cd $cmaq/data/wrfout
  for f in {0..5};do nc=$gfs/${DOM[$i]}/wrfout_d01_${dates[$f]}_00:00:00;ln -sf $nc wrfout_d0${d}_$f;done
  cd $fcst
  csh run_mcip_DM.csh ${GRD[$i]} >&/dev/null
  cd $fcst/${GRD[$i]}/mcip
  /bin/bash ~/bin/add_firstHr.sh >&/dev/null
  /bin/bash ~/bin/brk_day2.cs METBDY3D.nc >&/dev/null
done

程式設計

引數

  • 第一個引數是網格名稱(${DOM[$i]})
  • 如果引數個數是2,則為模擬天數。否則天數為5。
set DM         = $argv[1]
set ND         = 5
if (  $#argv >= 2 ) then
  set ND = $argv[2]
endif

網格系統名稱設定

  • 網格目錄:工作目錄名稱
  • 網格名稱:用在CMAQ系統之確認,將出現在CMAQ輸入及輸出檔名之中
  • 網格編號(${d}):用在wrfout的網格定義
  • 起始格:X0(西方起始格)、Y0(南方起始格)
  • 格數:NCOLS(東西向格數)、NROWS(南北向格數)
  • 網格個數:與CMAQ、排放檔案、ICBC等等都要一致
  • NP:經平行運算的試誤調整(測試NP=40,20,10等、intel、intel-PNetCDF、gcc編譯等),NP=1/gcc為最佳方案組合。
網格目錄網格名稱網格編號X0,Y0NCOLS×NROWSNP
grid45CWBWRF_45kd011,1218×12664、1
grid09SECN_9kd022,2200×20050、1
grid03TWEPA_3kd035,592×13146、1

輸入檔(wrfout)環境變數陣列

  • 設計成彈性長度之陣列,按照前述${ND}${d}的內容,每次產生。
  • wrfout之連結:在腳本外另外產生(fcst.cs)。
set InMetFiles = 
foreach i (`seq 0 ${ND}`)
  set InMetFiles = ( $InMetFiles $InMetDir/wrfout_${d}_${i} )
end

下載點