紫外線數據與光解係數

 

背景

  • CAMx的光解係數是一個很大的對照表,由網格所在位置的臭氧垂直濃度(參見[[2022-07-01-TOMS]]1)、返照率、也考慮到地形及離地高度,範例如下所示。
kuang@master /nas1/camxruns/2021/inputs/tuv/tuv4.8.camx7.00
$ head tuv.do_CB6.210101.d1
TUV4.8CAMx7.00
 O3 Column =   278. Albedo=  0.040 Terrain  =  0.000
  0.000    km above surface
   5.661E-01   5.613E-01   5.458E-01   5.190E-01   4.766E-01   4.137E-01   3.244E-01   2.045E-01   1.002E-01   2.616E-02
   2.587E-02   2.575E-02   2.533E-02   2.461E-02   2.347E-02   2.172E-02   1.902E-02   1.458E-02   8.975E-03   1.862E-03
   2.592E-03   2.507E-03   2.255E-03   1.879E-03   1.408E-03   9.090E-04   4.699E-04   1.681E-04   4.967E-05   8.365E-06
   4.772E-04   4.694E-04   4.451E-04   4.056E-04   3.488E-04   2.754E-04   1.894E-04   1.006E-04   4.365E-05   1.042E-05
   1.153E+01   1.149E+01   1.136E+01   1.111E+01   1.070E+01   1.002E+01   8.857E+00   6.783E+00   4.066E+00   8.031E-01
   1.442E+00   1.438E+00   1.424E+00   1.397E+00   1.352E+00   1.276E+00   1.146E+00   9.031E-01   5.666E-01   1.134E-01
   3.022E-03   2.975E-03   2.830E-03   2.594E-03   2.252E-03   1.803E-03   1.268E-03   6.959E-04   3.098E-04   7.596E-05
  • 處理過程會讀取臭氧垂直濃度,即TOMS數據處理的結果,必須配套處理。
  • 每層網格系統有個自的臭氧垂直濃度,因此也必須一一處理其TUV檔案

程式下載編譯

  • TUV與CAMx版本間的關係如下表

TUV與CAMx版本關係表

CAMx版本 重要改變 tuv版本及下載點
v6.3-v6.5 增加SAPRC07TC、更改對照方式 tuv4.8.camx6.30.8apr16.tgz
v7.00 臭氧改Dobson值 tuv4.8.camx7.00.31may20.tgz
v7.10 +CB6r5 tuv4.8.camx7.10.15dec20.tgz
v7.20 +CB7 tuv4.8.camx7.20.30apr22.tgz

編譯

  • 使用Makefile
    • 3種編譯器可供選擇
# Linux PC with Portland Group 64-bit compiler (PGF90)
#FFLAGS = -O2 -Mextend -Kieee
#FC = pgf90
#EXC = tuv

# Linux PC with Intel compiler (IFORT)
FFLAGS = -O2 -mieee-fp -extend_source
FC = ifort
EXC = tuv

# Linux PC with GNU compiler (GFORTRAN)
#FFLAGS = -O2 -frecord-marker=4 -ffixed-line-length-0
#FC = gfortran
#EXC = tuv
  • 如需執行tuvcompr,需另外分別編譯(也有Makefile)

執行腳本

  • 由於C shell腳本會改變環境變數,無法多批次同步處理,同時程式也沒有設計成平行化或多工處理方式,需循序一一執行。

執行選項

環境變數 內容 選項
MECH 化學機制 CB05, CB6, SAPRC07
SCHEME 計算方法 1 = pseudo spherical 2-stream/2 = discrete ordinates(recommended)
RUN_TUVCOMPR 是否執行比較 ‘YES’, ‘NO’
number of vert levels 垂直層數 11層或15層

tuv.inp 輸入變數內容

變數 內容 範例
program version 程式版本 TUV4.8CAMx7.00
output file name 輸出檔名稱 ./$OUTFILE
o3map file name o3map檔名 ../../toms/o3map.20$1.d$DOM
number of vert levels 垂直層數 11
levels, km agl 各層離地高Km 0. 0.15 0.35 0.60 1.00 2.00 3.00 4.00 6.00 8.00 10.0
date (YYMMDD) 日期 $yymmdd
rad transfer scheme 自由基傳輸方式 $SCHEME
num of phot reactions 光化反應數 $RXNUM
TUV reaction #s 光解反應式 $RXLST

輸入檔案連結

  • 需將程式包中的參數檔目錄(DATA*),連結到工作目錄,以利程式讀取
  • 這些數據與反應機制有關,必須保持版本一致。
tree ./tuv/tuv4.8.camx7.00/src
|-- DATAE1
|   |-- ATM
|   |-- GRIDS
|   |-- NO2
|   |-- O2
|   |-- O3
|   |-- SO2
|   |-- SUN
|   `-- wmo85
|-- DATAJ1
|   |-- ABS
|   |-- BROMINE
|   |-- C2H5CHO
|   |-- CB6
|   |-- CH2O
|   |-- CH3CHO
|   |-- CH3COCH3
|   |-- CH3COCHO
|   |-- CH3OOH
|   |-- CHLORINE
|   |-- CHOCHO
|   |-- IODINE
|   |-- IUPAC04
|   |-- RONO2
|   |-- SAPRC07
|   |-- SAPRC99
|   `-- YLD
|-- DATAJ2
|   `-- KFA
|-- DATAS1

執行批次

  • 按年月依序呼叫執行腳本
    • 程式碼在m3mapN.cs內。(N為層數,N=1,2,3,4)
(unresp)
kuang@master /nas1/camxruns/2019/inputs/toms
$ tail -n11 m3mapd1.cs
# doing the tuv job
cd /home/camxruns/2016_v7/inputs/tuv/tuv4.8.camx7.00
for Y in 16;do
for i in {01..12};do
cb6.job $Y${i}01 1
done
done

腳本內容

  • 引數為
    1. 年月日(yymmdd format)
    2. 層數N=1,2,3,4
#!/bin/csh -f
set MECH    =  CB6                  # [CB05|CB6|SAPRC07]
set SCHEME  =  2                    # 1 = pseudo spherical 2-stream
                                    # 2 = discrete ordinates (recommended)
set yymmdd  = $1                    # YYMMDD format
set DOM     = $2                    # 1,2,3,4format
set RUN_TUVCOMPR = 'NO'             # Run TUV comparison

if ($SCHEME == 1) set SCM = 'ps2str'
if ($SCHEME == 2) set SCM = 'do'
set TUVINP  = tuv.${SCM}_${MECH}.inp
set TUVOUT  = tuv.${SCM}_${MECH}.diag
set OUTFILE = tuv.${SCM}_${MECH}.$yymmdd.d$DOM

if ($MECH == 'CB6') then
  set RXNUM = 23
  set RXLST = '94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 114, 115, 116, 111, 112, 113'
endif
if ($MECH == 'CB05') then
  set RXNUM = 19
  set RXLST = '77, 84, 83, 79, 78, 87, 66, 88, 89, 90, 91, 63, 68, 67, 62, 92, 61, 93, 82'
endif
if ($MECH == 'SAPRC07') then
  set RXNUM = 29
  set RXLST = '168 169 170 172 173 161 158 159 155 175 157 156 149 148 143 165 152 154 153 166 146 147 145 164 167 163 160 144 174'
endif

cat << EOF >! ./tuv.inp
program version    |TUV4.8CAMx7.00
output file name   |./$OUTFILE
o3map file name    |../../toms/o3map.20$1.d$DOM
# of vert levels   | 11
levels, km agl     | 0. 0.15 0.35 0.60 1.00 2.00 3.00 4.00 6.00 8.00 10.0
date (YYMMDD)      | $yymmdd
rad transfer scheme| $SCHEME
# of phot reactions| $RXNUM
TUV reaction #s    | $RXLST
EOF

/cluster/src/CAMx/tuv/tuv4.8.camx7.00/src/tuv
mv -f tuv.inp $TUVINP
mv -f tuv_diag.out $TUVOUT

# Do a quick comparison of CAMx photolysis rate files
# and report the ratios in a flat ASCII format
# Note: Number of reactions in the two files have to be the same.

if ( $RUN_TUVCOMPR == 'YES' ) then
/cluster/src/CAMx/tuv/tuv4.8.camx7.00/tuvcompr/tuvcompr << EOF
rates file 1       |./tuv.do_${MECH}.$yymmdd.d$DOM
rates file 2       |./tuv.ps2str_${MECH}.$yymmdd
summary output file|./compare.${MECH}_do_ps2str
number of reactions| $RXNUM
number of altitudes| 15
EOF
endif
  1. https://sinotec2.github.io/FAQ/2022/07/01/TOMS.html “ 臭氧垂直濃度之處理 “