Line data Source code
1 :
2 : module mo_sim_dat
3 :
4 : private
5 : public :: set_sim_dat
6 :
7 : contains
8 :
9 1536 : subroutine set_sim_dat
10 :
11 : use chem_mods, only : clscnt, cls_rxt_cnt, clsmap, permute, adv_mass, fix_mass, crb_mass
12 : use chem_mods, only : diag_map
13 : use chem_mods, only : phtcnt, rxt_tag_cnt, rxt_tag_lst, rxt_tag_map
14 : use chem_mods, only : pht_alias_lst, pht_alias_mult
15 : use chem_mods, only : extfrc_lst, inv_lst, slvd_lst
16 : use chem_mods, only : enthalpy_cnt, cph_enthalpy, cph_rid, num_rnts, rxntot
17 : use cam_abortutils,only : endrun
18 : use mo_tracname, only : solsym
19 : use chem_mods, only : frc_from_dataset
20 : use chem_mods, only : is_scalar, is_vector
21 : use shr_kind_mod, only : r8 => shr_kind_r8
22 : use cam_logfile, only : iulog
23 :
24 : implicit none
25 :
26 : !--------------------------------------------------------------
27 : ! ... local variables
28 : !--------------------------------------------------------------
29 : integer :: ios
30 :
31 1536 : is_scalar = .false.
32 1536 : is_vector = .true.
33 :
34 1536 : clscnt(:) = (/ 23, 0, 0, 58, 0 /)
35 :
36 7680 : cls_rxt_cnt(:,1) = (/ 3, 59, 0, 23 /)
37 7680 : cls_rxt_cnt(:,4) = (/ 30, 126, 155, 58 /)
38 :
39 : solsym(: 81) = (/ 'BR ','BRCL ','BRO ','BRONO2 ','BRY ', &
40 : 'CCL4 ','CF2CLBR ','CF3BR ','CFC11 ','CFC113 ', &
41 : 'CFC114 ','CFC115 ','CFC12 ','CH2BR2 ','CH2O ', &
42 : 'CH3BR ','CH3CCL3 ','CH3CL ','CH3O2 ','CH3OOH ', &
43 : 'CH4 ','CHBR3 ','CL ','CL2 ','CL2O2 ', &
44 : 'CLO ','CLONO2 ','CLY ','CO ','CO2 ', &
45 : 'COF2 ','COFCL ','DMS ','F ','H ', &
46 : 'H2 ','H2402 ','H2O2 ','H2SO4 ','HBR ', &
47 : 'HCFC141B ','HCFC142B ','HCFC22 ','HCL ','HF ', &
48 : 'HNO3 ','HO2NO2 ','HOBR ','HOCL ','N ', &
49 : 'N2O ','N2O5 ','NO ','NO2 ','NO3 ', &
50 : 'O ','O2 ','O3 ','OCLO ','OCS ', &
51 : 'S ','SF6 ','SO ','SO2 ','SO3 ', &
52 : 'SOAG ','e ','HO2 ','N2D ','N2p ', &
53 : 'NOp ','Np ','O1D ','O2_1D ','O2_1S ', &
54 : 'O2p ','OH ','Op ','Op2D ','Op2P ', &
55 125952 : 'H2O ' /)
56 :
57 : adv_mass(: 81) = (/ 79.904000_r8, 115.356700_r8, 95.903400_r8, 141.908940_r8, 99.716850_r8, &
58 : 153.821800_r8, 165.364506_r8, 148.910210_r8, 137.367503_r8, 187.375310_r8, &
59 : 170.921013_r8, 154.466716_r8, 120.913206_r8, 173.833800_r8, 30.025200_r8, &
60 : 94.937200_r8, 133.402300_r8, 50.485900_r8, 47.032000_r8, 48.039400_r8, &
61 : 16.040600_r8, 252.730400_r8, 35.452700_r8, 70.905400_r8, 102.904200_r8, &
62 : 51.452100_r8, 97.457640_r8, 100.916850_r8, 28.010400_r8, 44.009800_r8, &
63 : 66.007206_r8, 82.461503_r8, 62.132400_r8, 18.998403_r8, 1.007400_r8, &
64 : 2.014800_r8, 259.823613_r8, 34.013600_r8, 98.078400_r8, 80.911400_r8, &
65 : 116.948003_r8, 100.493706_r8, 86.467906_r8, 36.460100_r8, 20.005803_r8, &
66 : 63.012340_r8, 79.011740_r8, 96.910800_r8, 52.459500_r8, 14.006740_r8, &
67 : 44.012880_r8, 108.010480_r8, 30.006140_r8, 46.005540_r8, 62.004940_r8, &
68 : 15.999400_r8, 31.998800_r8, 47.998200_r8, 67.451500_r8, 60.076400_r8, &
69 : 32.066000_r8, 146.056419_r8, 48.065400_r8, 64.064800_r8, 80.064200_r8, &
70 : 12.011000_r8, 0.548567E-03_r8, 33.006200_r8, 14.006740_r8, 28.013480_r8, &
71 : 30.006140_r8, 14.006740_r8, 15.999400_r8, 31.998800_r8, 31.998800_r8, &
72 : 31.998800_r8, 17.006800_r8, 15.999400_r8, 15.999400_r8, 15.999400_r8, &
73 1536 : 18.014200_r8 /)
74 :
75 : crb_mass(: 81) = (/ 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
76 : 12.011000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, 24.022000_r8, &
77 : 24.022000_r8, 24.022000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, &
78 : 12.011000_r8, 24.022000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, &
79 : 12.011000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
80 : 0.000000_r8, 0.000000_r8, 12.011000_r8, 12.011000_r8, 12.011000_r8, &
81 : 12.011000_r8, 12.011000_r8, 24.022000_r8, 0.000000_r8, 0.000000_r8, &
82 : 0.000000_r8, 24.022000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
83 : 24.022000_r8, 24.022000_r8, 12.011000_r8, 0.000000_r8, 0.000000_r8, &
84 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
85 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
86 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 12.011000_r8, &
87 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
88 : 12.011000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
89 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
90 : 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, 0.000000_r8, &
91 1536 : 0.000000_r8 /)
92 :
93 1536 : fix_mass(: 2) = (/ 0.00000000_r8, 28.0134800_r8 /)
94 :
95 : clsmap(: 23,1) = (/ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, &
96 : 16, 17, 18, 21, 22, 28, 30, 37, 41, 42, &
97 36864 : 43, 51, 62 /)
98 : clsmap(: 58,4) = (/ 1, 2, 3, 4, 15, 19, 20, 23, 24, 25, &
99 : 26, 27, 29, 31, 32, 33, 34, 35, 36, 38, &
100 : 39, 40, 44, 45, 46, 47, 48, 49, 50, 52, &
101 : 53, 54, 55, 56, 57, 58, 59, 60, 61, 63, &
102 : 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, &
103 90624 : 74, 75, 76, 77, 78, 79, 80, 81 /)
104 :
105 : permute(: 58,4) = (/ 41, 9, 57, 20, 51, 43, 16, 48, 7, 2, &
106 : 47, 37, 21, 3, 8, 12, 26, 40, 56, 22, &
107 : 4, 29, 42, 10, 38, 17, 27, 28, 35, 13, &
108 : 55, 53, 44, 46, 49, 52, 14, 15, 24, 39, &
109 : 36, 11, 1, 33, 45, 34, 23, 25, 30, 50, &
110 90624 : 5, 6, 32, 54, 31, 19, 18, 58 /)
111 :
112 : diag_map(: 58) = (/ 1, 2, 5, 8, 11, 14, 16, 18, 22, 25, &
113 : 29, 33, 39, 45, 50, 58, 64, 71, 78, 84, &
114 : 92, 96, 103, 112, 119, 125, 134, 143, 150, 159, &
115 : 170, 181, 196, 210, 225, 235, 243, 255, 266, 280, &
116 : 291, 310, 328, 350, 376, 420, 449, 475, 507, 533, &
117 1536 : 556, 579, 608, 646, 670, 692, 719, 745 /)
118 :
119 : extfrc_lst(: 13) = (/ 'DMS ','CO ','NO ','NO2 ','SO2 ', &
120 : 'N ','N2D ','N2p ','Op ','e ', &
121 21504 : 'Np ','O2p ','OH ' /)
122 :
123 : frc_from_dataset(: 13) = (/ .true., .true., .true., .true., .true., &
124 : .false., .false., .false., .false., .false., &
125 1536 : .false., .false., .false. /)
126 :
127 4608 : inv_lst(: 2) = (/ 'M ', 'N2 ' /)
128 :
129 : slvd_lst(: 14) = (/ 'e ', 'HO2 ', 'N2D ', 'N2p ', 'NOp ', &
130 : 'Np ', 'O1D ', 'O2_1D ', 'O2_1S ', 'O2p ', &
131 23040 : 'OH ', 'Op ', 'Op2D ', 'Op2P ' /)
132 :
133 1536 : if( allocated( rxt_tag_lst ) ) then
134 0 : deallocate( rxt_tag_lst )
135 : end if
136 1536 : allocate( rxt_tag_lst(rxt_tag_cnt),stat=ios )
137 1536 : if( ios /= 0 ) then
138 0 : write(iulog,*) 'set_sim_dat: failed to allocate rxt_tag_lst; error = ',ios
139 0 : call endrun
140 : end if
141 1536 : if( allocated( rxt_tag_map ) ) then
142 0 : deallocate( rxt_tag_map )
143 : end if
144 1536 : allocate( rxt_tag_map(rxt_tag_cnt),stat=ios )
145 1536 : if( ios /= 0 ) then
146 0 : write(iulog,*) 'set_sim_dat: failed to allocate rxt_tag_map; error = ',ios
147 0 : call endrun
148 : end if
149 1536 : rxt_tag_lst( 1: 200) = (/ 'jh2o_b ', 'jh2o_c ', &
150 : 'jh2o_a ', 'jh2o2 ', &
151 : 'jo2_b ', 'jo2_a ', &
152 : 'jo3_a ', 'jo3_b ', &
153 : 'jhno3 ', 'jho2no2_a ', &
154 : 'jho2no2_b ', 'jn2o ', &
155 : 'jn2o5_a ', 'jn2o5_b ', &
156 : 'jno ', 'jno_i ', &
157 : 'jno2 ', 'jno3_a ', &
158 : 'jno3_b ', 'jch2o_a ', &
159 : 'jch2o_b ', 'jch3ooh ', &
160 : 'jch4_a ', 'jch4_b ', &
161 : 'jco2 ', 'jbrcl ', &
162 : 'jbro ', 'jbrono2_b ', &
163 : 'jbrono2_a ', 'jccl4 ', &
164 : 'jcf2clbr ', 'jcf3br ', &
165 : 'jcfcl3 ', 'jcfc113 ', &
166 : 'jcfc114 ', 'jcfc115 ', &
167 : 'jcf2cl2 ', 'jch2br2 ', &
168 : 'jch3br ', 'jch3ccl3 ', &
169 : 'jch3cl ', 'jchbr3 ', &
170 : 'jcl2 ', 'jcl2o2 ', &
171 : 'jclo ', 'jclono2_a ', &
172 : 'jclono2_b ', 'jcof2 ', &
173 : 'jcofcl ', 'jh2402 ', &
174 : 'jhbr ', 'jhcfc141b ', &
175 : 'jhcfc142b ', 'jhcfc22 ', &
176 : 'jhcl ', 'jhf ', &
177 : 'jhobr ', 'jhocl ', &
178 : 'joclo ', 'jsf6 ', &
179 : 'jeuv_26 ', 'jeuv_4 ', &
180 : 'jeuv_6 ', 'jeuv_22 ', &
181 : 'jeuv_23 ', 'jeuv_25 ', &
182 : 'jeuv_18 ', 'jeuv_13 ', &
183 : 'jeuv_11 ', 'jeuv_10 ', &
184 : 'jeuv_3 ', 'jeuv_16 ', &
185 : 'jeuv_1 ', 'jeuv_14 ', &
186 : 'jeuv_2 ', 'jeuv_15 ', &
187 : 'jeuv_21 ', 'jeuv_17 ', &
188 : 'jeuv_7 ', 'jeuv_5 ', &
189 : 'jeuv_19 ', 'jeuv_24 ', &
190 : 'jeuv_12 ', 'jeuv_9 ', &
191 : 'jeuv_8 ', 'jeuv_20 ', &
192 : 'jh2so4 ', 'jocs ', &
193 : 'jso ', 'jso2 ', &
194 : 'jso3 ', 'ag1 ', &
195 : 'ag2 ', 'O1D_H2 ', &
196 : 'O1D_H2O ', 'O1D_N2 ', &
197 : 'O1D_O2 ', 'O1D_O2b ', &
198 : 'O1D_O3 ', 'O2_1D_N2 ', &
199 : 'O2_1D_O ', 'O2_1D_O2 ', &
200 : 'O2_1S_CO2 ', 'O2_1S_N2 ', &
201 : 'O2_1S_O ', 'O2_1S_O2 ', &
202 : 'O2_1S_O3 ', 'O_O3 ', &
203 : 'usr_O_O ', 'usr_O_O2 ', &
204 : 'H2_O ', 'H2O2_O ', &
205 : 'H_HO2 ', 'H_HO2a ', &
206 : 'H_HO2b ', 'H_O2 ', &
207 : 'HO2_O ', 'HO2_O3 ', &
208 : 'H_O3 ', 'OH_H2 ', &
209 : 'OH_H2O2 ', 'OH_HO2 ', &
210 : 'OH_O ', 'OH_O3 ', &
211 : 'OH_OH ', 'OH_OH_M ', &
212 : 'usr_HO2_HO2 ', 'HO2NO2_OH ', &
213 : 'N2D_O ', 'N2D_O2 ', &
214 : 'N_NO ', 'N_NO2a ', &
215 : 'N_NO2b ', 'N_NO2c ', &
216 : 'N_O2 ', 'NO2_O ', &
217 : 'NO2_O3 ', 'NO2_O_M ', &
218 : 'NO3_HO2 ', 'NO3_NO ', &
219 : 'NO3_O ', 'NO3_OH ', &
220 : 'N_OH ', 'NO_HO2 ', &
221 : 'NO_O3 ', 'NO_O_M ', &
222 : 'O1D_N2Oa ', 'O1D_N2Ob ', &
223 : 'tag_NO2_HO2 ', 'tag_NO2_NO3 ', &
224 : 'tag_NO2_OH ', 'usr_HNO3_OH ', &
225 : 'usr_HO2NO2_M ', 'usr_N2O5_M ', &
226 : 'CL_CH2O ', 'CL_CH4 ', &
227 : 'CL_H2 ', 'CL_H2O2 ', &
228 : 'CL_HO2a ', 'CL_HO2b ', &
229 : 'CL_O3 ', 'CLO_CH3O2 ', &
230 : 'CLO_CLOa ', 'CLO_CLOb ', &
231 : 'CLO_CLOc ', 'CLO_HO2 ', &
232 : 'CLO_NO ', 'CLONO2_CL ', &
233 : 'CLO_NO2_M ', 'CLONO2_O ', &
234 : 'CLONO2_OH ', 'CLO_O ', &
235 : 'CLO_OHa ', 'CLO_OHb ', &
236 : 'HCL_O ', 'HCL_OH ', &
237 : 'HOCL_CL ', 'HOCL_O ', &
238 : 'HOCL_OH ', 'O1D_CCL4 ', &
239 : 'O1D_CF2CLBR ', 'O1D_CFC11 ', &
240 : 'O1D_CFC113 ', 'O1D_CFC114 ', &
241 : 'O1D_CFC115 ', 'O1D_CFC12 ', &
242 : 'O1D_HCLa ', 'O1D_HCLb ', &
243 : 'tag_CLO_CLO_M ', 'usr_CL2O2_M ', &
244 : 'BR_CH2O ', 'BR_HO2 ', &
245 : 'BR_O3 ', 'BRO_BRO ', &
246 : 'BRO_CLOa ', 'BRO_CLOb ', &
247 : 'BRO_CLOc ', 'BRO_HO2 ', &
248 310272 : 'BRO_NO ', 'BRO_NO2_M ' /)
249 1536 : rxt_tag_lst( 201: 312) = (/ 'BRONO2_O ', 'BRO_O ', &
250 : 'BRO_OH ', 'HBR_O ', &
251 : 'HBR_OH ', 'HOBR_O ', &
252 : 'O1D_CF3BR ', 'O1D_CHBR3 ', &
253 : 'O1D_H2402 ', 'O1D_HBRa ', &
254 : 'O1D_HBRb ', 'F_CH4 ', &
255 : 'F_H2 ', 'F_H2O ', &
256 : 'F_HNO3 ', 'O1D_COF2 ', &
257 : 'O1D_COFCL ', 'CH2BR2_CL ', &
258 : 'CH2BR2_OH ', 'CH3BR_CL ', &
259 : 'CH3BR_OH ', 'CH3CCL3_OH ', &
260 : 'CH3CL_CL ', 'CH3CL_OH ', &
261 : 'CHBR3_CL ', 'CHBR3_OH ', &
262 : 'HCFC141B_OH ', 'HCFC142B_OH ', &
263 : 'HCFC22_OH ', 'O1D_CH2BR2 ', &
264 : 'O1D_CH3BR ', 'O1D_HCFC141B ', &
265 : 'O1D_HCFC142B ', 'O1D_HCFC22 ', &
266 : 'CH2O_NO3 ', 'CH2O_O ', &
267 : 'CH2O_OH ', 'CH3O2_HO2 ', &
268 : 'CH3O2_NO ', 'CH3OOH_OH ', &
269 : 'CH4_OH ', 'CO_OH_M ', &
270 : 'O1D_CH4a ', 'O1D_CH4b ', &
271 : 'O1D_CH4c ', 'usr_CO_OH_b ', &
272 : 'DMS_NO3 ', 'DMS_OHa ', &
273 : 'OCS_O ', 'OCS_OH ', &
274 : 'S_O2 ', 'S_O3 ', &
275 : 'SO_BRO ', 'SO_CLO ', &
276 : 'S_OH ', 'SO_NO2 ', &
277 : 'SO_O2 ', 'SO_O3 ', &
278 : 'SO_OCLO ', 'SO_OH ', &
279 : 'usr_DMS_OH ', 'usr_SO2_OH ', &
280 : 'usr_SO3_H2O ', 'usr_HO2_aer ', &
281 : 'usr_N2O5_aer ', 'usr_NO2_aer ', &
282 : 'usr_NO3_aer ', 'het1 ', &
283 : 'het10 ', 'het11 ', &
284 : 'het12 ', 'het13 ', &
285 : 'het14 ', 'het15 ', &
286 : 'het16 ', 'het17 ', &
287 : 'het2 ', 'het3 ', &
288 : 'het4 ', 'het5 ', &
289 : 'het6 ', 'het7 ', &
290 : 'het8 ', 'het9 ', &
291 : 'ag247nm ', 'ag373nm ', &
292 : 'ag732nm ', 'elec1 ', &
293 : 'elec2 ', 'elec3 ', &
294 : 'ion_N2p_O2 ', 'ion_N2p_Oa ', &
295 : 'ion_N2p_Ob ', 'ion_Np_O ', &
296 : 'ion_Np_O2a ', 'ion_Np_O2b ', &
297 : 'ion_O2p_N ', 'ion_O2p_N2 ', &
298 : 'ion_O2p_NO ', 'ion_Op_CO2 ', &
299 : 'ion_Op_N2 ', 'ion_Op_N2D ', &
300 : 'ion_Op_O2 ', 'Op2D_e ', &
301 : 'Op2D_N2 ', 'Op2D_O ', &
302 : 'Op2D_O2 ', 'Op2P_ea ', &
303 : 'Op2P_eb ', 'Op2P_N2a ', &
304 175104 : 'Op2P_N2b ', 'Op2P_O ' /)
305 0 : rxt_tag_map(:rxt_tag_cnt) = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, &
306 : 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, &
307 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, &
308 : 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, &
309 : 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, &
310 : 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, &
311 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, &
312 : 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, &
313 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, &
314 : 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, &
315 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, &
316 : 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, &
317 : 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, &
318 : 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, &
319 : 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, &
320 : 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, &
321 : 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, &
322 : 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, &
323 : 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, &
324 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, &
325 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, &
326 : 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, &
327 : 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, &
328 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, &
329 : 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, &
330 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, &
331 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, &
332 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, &
333 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, &
334 : 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, &
335 : 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, &
336 482304 : 311, 312 /)
337 1536 : if( allocated( pht_alias_lst ) ) then
338 0 : deallocate( pht_alias_lst )
339 : end if
340 1536 : allocate( pht_alias_lst(phtcnt,2),stat=ios )
341 1536 : if( ios /= 0 ) then
342 0 : write(iulog,*) 'set_sim_dat: failed to allocate pht_alias_lst; error = ',ios
343 0 : call endrun
344 : end if
345 1536 : if( allocated( pht_alias_mult ) ) then
346 0 : deallocate( pht_alias_mult )
347 : end if
348 1536 : allocate( pht_alias_mult(phtcnt,2),stat=ios )
349 1536 : if( ios /= 0 ) then
350 0 : write(iulog,*) 'set_sim_dat: failed to allocate pht_alias_mult; error = ',ios
351 0 : call endrun
352 : end if
353 0 : pht_alias_lst(:,1) = (/ ' ', ' ', ' ', ' ', &
354 : 'userdefined ', 'userdefined ', ' ', ' ', &
355 : ' ', ' ', ' ', ' ', &
356 : ' ', ' ', 'userdefined ', ' ', &
357 : ' ', ' ', ' ', ' ', &
358 : ' ', ' ', ' ', ' ', &
359 : ' ', ' ', ' ', ' ', &
360 : ' ', ' ', ' ', ' ', &
361 : ' ', ' ', ' ', ' ', &
362 : ' ', ' ', ' ', ' ', &
363 : ' ', ' ', ' ', ' ', &
364 : ' ', ' ', ' ', ' ', &
365 : ' ', ' ', ' ', ' ', &
366 : ' ', ' ', ' ', ' ', &
367 : ' ', ' ', ' ', ' ', &
368 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
369 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
370 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
371 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
372 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
373 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
374 : 'userdefined ', 'userdefined ', ' ', ' ', &
375 141312 : ' ', ' ', ' ' /)
376 0 : pht_alias_lst(:,2) = (/ ' ', ' ', ' ', ' ', &
377 : ' ', ' ', ' ', ' ', &
378 : ' ', ' ', ' ', ' ', &
379 : ' ', ' ', ' ', ' ', &
380 : ' ', ' ', ' ', ' ', &
381 : ' ', ' ', ' ', ' ', &
382 : ' ', ' ', ' ', ' ', &
383 : ' ', ' ', ' ', ' ', &
384 : ' ', ' ', ' ', ' ', &
385 : ' ', ' ', ' ', ' ', &
386 : ' ', ' ', ' ', ' ', &
387 : ' ', ' ', ' ', ' ', &
388 : ' ', ' ', ' ', ' ', &
389 : ' ', ' ', ' ', ' ', &
390 : ' ', ' ', ' ', ' ', &
391 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
392 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
393 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
394 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
395 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
396 : 'userdefined ', 'userdefined ', 'userdefined ', 'userdefined ', &
397 : 'userdefined ', 'userdefined ', ' ', ' ', &
398 141312 : ' ', ' ', ' ' /)
399 0 : pht_alias_mult(:,1) = (/ 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
400 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
401 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
402 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
403 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
404 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
405 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
406 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
407 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
408 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
409 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
410 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
411 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
412 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
413 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
414 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
415 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
416 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
417 141312 : 1._r8 /)
418 0 : pht_alias_mult(:,2) = (/ 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
419 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
420 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
421 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
422 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
423 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
424 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
425 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
426 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
427 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
428 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
429 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
430 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
431 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
432 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
433 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
434 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
435 : 1._r8, 1._r8, 1._r8, 1._r8, 1._r8, &
436 141312 : 1._r8 /)
437 1536 : allocate( cph_enthalpy(enthalpy_cnt),stat=ios )
438 1536 : if( ios /= 0 ) then
439 0 : write(iulog,*) 'set_sim_dat: failed to allocate cph_enthalpy; error = ',ios
440 0 : call endrun
441 : end if
442 1536 : allocate( cph_rid(enthalpy_cnt),stat=ios )
443 1536 : if( ios /= 0 ) then
444 0 : write(iulog,*) 'set_sim_dat: failed to allocate cph_rid; error = ',ios
445 0 : call endrun
446 : end if
447 : cph_rid(:) = (/ 96, 97, 98, 100, 101, &
448 : 102, 104, 105, 106, 107, &
449 : 108, 109, 110, 113, 116, &
450 : 117, 118, 119, 122, 123, &
451 : 124, 127, 129, 130, 131, &
452 : 135, 136, 144, 145, 285, &
453 : 286, 287, 288, 289, 290, &
454 : 291, 292, 294, 295, 296, &
455 : 297, 299, 301, 302, 303, &
456 : 304, 305, 306, 307, 308, &
457 84480 : 309, 310, 311, 312 /)
458 : cph_enthalpy(:) = (/ 189.810000_r8, 32.910000_r8, 189.810000_r8, 94.300000_r8, 94.300000_r8, &
459 : 94.300000_r8, 62.600000_r8, 62.600000_r8, 62.600000_r8, 62.600000_r8, &
460 : 392.190000_r8, 493.580000_r8, 101.390000_r8, 232.590000_r8, 203.400000_r8, &
461 : 226.580000_r8, 120.100000_r8, 194.710000_r8, 293.620000_r8, 67.670000_r8, &
462 : 165.300000_r8, 165.510000_r8, 229.610000_r8, 177.510000_r8, 313.750000_r8, &
463 : 133.750000_r8, 193.020000_r8, 34.470000_r8, 199.170000_r8, 483.390000_r8, &
464 : 321.300000_r8, 163.060000_r8, 82.389000_r8, 508.950000_r8, 354.830000_r8, &
465 : 339.590000_r8, 67.530000_r8, 95.550000_r8, 239.840000_r8, 646.280000_r8, &
466 : 406.160000_r8, 271.380000_r8, 105.040000_r8, 139.900000_r8, 150.110000_r8, &
467 : 319.370000_r8, 128.320000_r8, 319.360000_r8, 469.400000_r8, 163.060000_r8, &
468 84480 : 482.430000_r8, 291.380000_r8, 67.540000_r8, 501.720000_r8 /)
469 1536 : allocate( num_rnts(rxntot-phtcnt),stat=ios )
470 1536 : if( ios /= 0 ) then
471 0 : write(iulog,*) 'set_sim_dat: failed to allocate num_rnts; error = ',ios
472 0 : call endrun
473 : end if
474 : num_rnts(:) = (/ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, &
475 : 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, &
476 : 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, &
477 : 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, &
478 : 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, &
479 : 2, 2, 2, 2, 3, 2, 2, 3, 3, 3, &
480 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
481 : 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, &
482 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
483 : 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, &
484 : 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, &
485 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
486 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
487 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
488 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
489 : 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
490 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
491 : 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, &
492 : 1, 1, 2, 2, 2, 1, 1, 2, 2, 2, &
493 : 1, 1, 2, 1, 1, 1, 2, 2, 2, 2, &
494 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
495 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, &
496 340992 : 2 /)
497 :
498 1536 : end subroutine set_sim_dat
499 :
500 : end module mo_sim_dat
|