-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathReadmeSergio_HITRAN2UMBCLBL
251 lines (199 loc) · 10.4 KB
/
ReadmeSergio_HITRAN2UMBCLBL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
To make the new distribution of files that can be read with the mexed HITRAN
reader, do the following
1) bring the HITRAN distribution from taro
cd /asl/data/hitran/HITRAN08_SERGIO/HITRAN2008/By-Molecule/Compressed-files
scp from taro *_hit08.zip
2) unzip the files
cd /asl/data/hitran/HITRAN08_SERGIO/Lines
unzipper !!! run this script, which looks like
unzip ../By-Molecule/Compressed-files/01_hit08.zip
unzip ../By-Molecule/Compressed-files/02_hit08.zip
unzip ../By-Molecule/Compressed-files/03_hit08.zip
unzip ../By-Molecule/Compressed-files/04_hit08.zip
unzip ../By-Molecule/Compressed-files/05_hit08.zip
unzip ../By-Molecule/Compressed-files/06_hit08.zip
...
unzip ../By-Molecule/Compressed-files/40_hit08.zip
unzip ../By-Molecule/Compressed-files/41_hit08.zip
3) if necessary, look for updates, and unzip them eg
update_unzipper
4) strip out extra characters and store into h08.by.gas
cd /asl/data/hitran
fix08 !!!! run this script, which looks like
#!/bin/sh
#
# build the local HITRAN datbase from HITRAN04 plus updates
# run in /asl/data/hitran
tr -d '\015\032' < HITRAN08_SERGIO/Lines/01_hit08.par > h08.by.gas/g1.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/02_hit08_f53.par > h08.by.gas/g2.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/03_hit08.par > h08.by.gas/g3.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/04_hit08.par > h08.by.gas/g4.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/05_hit08.par > h08.by.gas/g5.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/06_hit08.par > h08.by.gas/g6.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/07_hit08.par > h08.by.gas/g7.dat
...
tr -d '\015\032' < HITRAN08_SERGIO/Lines/38_hit08.par > h08.by.gas/g38.dat
tr -d '\015\032' < HITRAN08_SERGIO/Lines/39_hit08.par > h08.by.gas/g39.dat
Then you need to go to eg
/home/sergio/SPECTRA/Global_Data_HITRAN2008/
and modify codes
-rwxr-xr-x 1 sergio users 622663 2010-05-01 08:56 TIPS_2008_allisotopes.x
-rw-r--r-- 1 sergio users 234378 2010-05-01 08:54 TIPS_2008_try_include1.f
-rw-rw-rw- 1 sergio users 968 2010-05-01 08:53 BD_ISO_82_TO_85.FOR
-rw-r--r-- 1 sergio users 801 2010-04-30 18:23 TIPS_2008_allisotopes.f
-rw-r--r-- 1 sergio users 232052 2010-04-30 18:22 BD_TIPS_2003_try_include1.f
-rwxr-xr-x 1 sergio users 622384 2010-04-30 18:14 BD_TIPS_2003_allisotopes.x
-rw-rw-rw- 1 sergio users 3555 2010-04-30 18:12 BD_ISO_2002.FOR
-rw-rw-rw- 1 sergio users 691 2010-04-30 18:05 BD_MOL.FOR
-rw-r--r-- 1 sergio users 858 2010-04-30 17:57 BD_TIPS_2003_allisotopes.f
-rw-r--r-- 1 sergio users 1883 2010-04-30 17:42 converter_mass08.m
-rw-r--r-- 1 sergio users 5899 2010-04-30 16:38 MOLPARAM.txt.simple
-rw-r--r-- 1 sergio users 1638 2010-04-30 13:58 co2vibs
-rwxr-xr-x 1 sergio users 351029 2010-04-30 13:57 mapHITRAN_v1v2lv3r.x
-rw-r--r-- 1 sergio users 14446 2010-04-30 13:56 mapHITRAN_v1v2lv3r.f
-rw-r--r-- 1 sergio users 16488 2010-04-30 13:55 BD_Vibs.for
-rw-r--r-- 1 sergio users 8589 2010-04-30 12:20 mass08.dat
-rw-r--r-- 1 sergio users 6808 2010-04-30 11:26 molparam1.txt
as well as fix a few codes in /home/sergio/SPECTRA which look for files in
/home/sergio/SPECTRA/Global_Data_HITRAN20XY/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
README is Howard's main readme
Look for his data on taro:/strowdata1/taro2/s2/motteler/absdat_2007_10_06
Make sure you correctly set the start/stop wavenumbers
set the inpute/output directories
in each .m file eg
wn1 = 605;
wn2 = 630-15;
fmin = wn1;
topts = runXtopts_params_smart(fmin);
topts = runXtopts_params_smart(500);
dv = topts.ffin*nbox*pointsPerChunk;
a) Produce the ODS using run8 or run8water or xsec25
b) Speed up the OD production using nodes that are freed up
c) Put together the 11 files (and 5 pressure offsets) into one big file
d) Compress the ODs
e) Output the SVD compressions into f77 binary format
f) update KCARTA/INCLUDE/kcarta.param, KCARTA/INCLUDE/pre_defined.param
g) update HT2007.param for kCARTA (using scripts in KCARTA/UTILITY and
KCARTA/SCRIPTS)
h) write up a new CKD database
Warning for VIS/UV
See paper by J.Orphal, K.Chance/ JQSRT v82 (2003) pgs 491-504
a) special NIR/VIS/UV xsec files, see MAKENIR4 and MAKEVIS1 and MAKEUV1
Essentially look for lines in the usual HITRAN files, and then look for
lines in the xsec directories. Add together d0 + dxsec = d
This is all taken care of in "runXtopts_mkgxsecvfiles.m"
b) O2_O2 dimer abs coeff has units of sigma = cm5/molecules2
kCARTA uses units Q = mol/cm2. If Z = path length then
Q/Z Q/Z Z sigma = unitless = Q^2 /Z sigma
(see paper by Zender, JGR v104 pg 24471 (1999)
This is taken care of in runXtopts_savexsec.m --> calc_xsec_UV.m
Quick sanity check : according to paper by Zender the atmospheric
sum(Q/Z * Q/Z * Z) column (where Q = molecules/cm2 for O2 and Z is layer
thickness) is about 15e43 molecules^2/cm^5 while the cross
section at 17000 cm-1 is about 1e-45 cm^5/molecules^2. So column OD ~ 1e-2
c) for ozone in the VIS, we use Li Zhu's datafiles (stored in
SPECTRA/VISIBLE_OD) as this includes some very weak absorption from ozone
between 14000-22000 cm-1
This taken care of in runXtopts_savexsec.m --> calc_xsec_UV_ozone_li_zhu.m
Quick sanity check : according to paper by Orphal, at 17000 cm-1,
the O3 cross section is about 0.5*1e-17*1e-3 cm2/molecule
dd = load('/home/sergio/SPECTRA/IPFILES/std_g3 or std_gx3_6')
We have total about sum(dd(:,5)) = 1.5480e-08 kilomoles/cm2
or 9.3239e18 molcules/cm2 in the column
So the column OD is about 0.0466 !!!!!
d) still need to worry about BrO,OClO,NO3
eg NO3 cross section is 2e-17 cm2/molecule at 15000 cm-1
Looks like NO3 concentration is about 1-10 ppt. So if atmospheric density
is about 2.5e19 molecules/cm3 * (air column = 30 km = 30*10^3*10^2)
==> 7.5e25 molecules/cm2 of air ==> for 10 ppt there are
7.5e13 molecules/cm2 of NO3 ==> column OD = 7.5e13 X 2e-17 = 1.5e-3
So for now, ignore these gases
e) Still need to worry about Rayleigh
f) cannot find SO2 UV xsec between 30000-40000 cm0-1 (this is what OMI uses!)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
RUN KCARTA!!!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
X : Useful files on home/sergio/SPECTRA
show_vis_ir_lines_wavenumber_individualgas.m
findlines_plot.m
findxsec_plot.m
dopplerwidth_database.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A : SCRIPT CODE TO MAKE THE OPTICAL DEPTHS DATABASE (UNCOMPRESSED)
freq_boundaries.m
set the start/stop frequency, [dv ffin] params and output directories here
runXtopts_savegas1.sc
for an individual node you are on, this script loops through calling
run8water.m for each wavenumber chunk
runXtopts_savexsecX.sc
for an individual node you are on, this script loops through calling
code to compute xsec absorptions for each wavenumber chunk
This is very fast code
loop_nodes_driver.sc
logs into the airs nodes and calls runXtopts_savegasX.m
this starts looping through calling run8.m for the gasID,
for each wavenumber chunk
[runXtopts_savegasX.sc .... not really needed
for an individual node you are on, this script loops through calling run8.m
for the gasID, for each wavenumber chunk
So it individually performs the task of runXtops_savegasX.sc, if needed]
loop_nodes_driver_co2.sc
Since linemixing code for some CO2 bands could be slow (eg 500-605,
605-2830 cm-1), this gasID should be REMOVED from runXtopts_savegas1.m.
After optical depths for all other gases hve been computed (using eg
loop_nodes_driver.sc), this script uses all airnodes to compute ONLY
CO2 optical depths.
On each node, keeps calling runXtopts_savegas2.m. So divvy up the jobs
carefully in this file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
B : SCRIPT CODE TO ** RESTART ** COMPUTING THE OPTICAL DEPTHS
Jobs on some nodes finish faster than others (eg, some gases have very few
or no lines). As this goes on, can use the freed-up nodes to put jobs for
gasIDS which are computationally intensive
g1_backwards_nir_runXtopts_savegas1.sc
calls g1_backwards_nir_runXtopts_savegas1.m, so it loops backwards
from the ending wavenumber to produce ODs for gasid 1
gX_backwards_nir_runXtopts_savegasX.sc GID
calls gX_backwards_nir_runXtopts_savegasX.m, so it loops backwards
from the ending wavenumber to produce ODs for gasid GID
gX_forwards_nir_runXtopts_savegasX.sc GID VCHUNK
calls gX_forwards_nir_runXtopts_savegasX.m, so it loops forwards
from the wavenumber VCHUNK to produce ODs for gasid GID
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
OTHER MISC CODE
loop_gas_done already
calls gas_done_already(gid) to let you know how the OD computation is
progressing for each gas
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C,D,E : COMPRESSING THE DATABASE
Make sure you have all waveumber bdries/directories set correctly
runXtopts_mkg1vfiles.m
puts together all the chunks/pressure offsets for water, into one file
runXtopts_mkgXvfiles.m
puts together all the chunks for each gas, into one file
then go to /home/sergio/abscmp
cmprunFIRX.m
will start compressing the optical depths.
then go to /home/sergio/abscmp/fortran/mat2for
loop_mat2forFIRX.m
will read the compressed mat files and output ieee-le f77 binary files
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
F,G : KCARTA
Go to KCARTA/UTILITY and edit compdatabase.f so that the new band info
can be added into HT2007.param
Go to KCARTA/SCRIPTS and write/run comp_firXdatabase.sc so that the new band
info can be added into HT2007.param
Add this into /home/sergio/KCARTADATA/General/compHT2007_extended0909.param
/home/sergio/KCARTADATA/General/xsecHT2007_extended0909.param
Go to KCARTA/INCLUDE and update/run dump_kaTag_for_predefined.m
This adds on the tag info for the new band being added
The output needs to be put into pre_defined.param
Also updata kcarta.param* with the directory information for the
added band database.
Go to KCARTA/SRC and edit s_misc.f so that the new bandinfo is in kcarta
make kcarta.x!!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
H : CKD database
edit/run ckd_lookupBIN_FIRX.m (make sure 2901 points are included)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%