module_input_chem_emissopt3.F
References to this file elsewhere.
1
2
3 MODULE module_input_chem_emissopt3
4
5 USE module_io_domain
6 USE module_domain
7 USE module_driver_constants
8 USE module_state_description
9 USE module_configure
10 USE module_date_time
11 USE module_wrf_error
12 USE module_timing
13 USE module_data_radm2
14 ! USE module_aerosols_sorgam
15 ! USE module_data_sorgam
16 USE module_utility
17 USE module_get_file_names
18
19
20 IMPLICIT NONE
21
22 CONTAINS
23
24 SUBROUTINE med_read_bin_chem_emissopt3 ( grid , config_flags )
25 USE module_bc_time_utilities
26 #ifdef DM_PARALLEL
27 USE module_dm
28 #endif
29
30
31 IMPLICIT NONE
32
33 ! Arguments
34 TYPE(domain) :: grid
35 TYPE (grid_config_rec_type) , INTENT(IN) :: config_flags
36 !INTEGER , INTENT(IN) :: start_step , step , end_step
37 ! Type (ESMF_Time ) :: start_time, stop_time, CurrTime
38 ! TYPE(WRFU_TimeInterval) :: time_interval
39
40
41 ! Local data
42 LOGICAL, EXTERNAL :: wrf_dm_on_monitor
43 LOGICAL :: emiss_opened
44 INTEGER :: ierr , open_status , fid
45 REAL :: time, btime, bfrq
46 REAL, ALLOCATABLE :: dumc0(:,:,:)
47 REAL, ALLOCATABLE :: dumc1(:,:)
48 CHARACTER (LEN=256) :: message
49 CHARACTER (LEN=80) :: bdyname
50
51 CHARACTER (LEN=9 ),DIMENSION(30) :: ename
52 CHARACTER (LEN=20) :: dname
53 INTEGER :: nv,i , j , k, itime, &
54 ids, ide, jds, jde, kds, kde, &
55 ims, ime, jms, jme, kms, kme, &
56 ips, ipe, jps, jpe, kps, kpe
57
58
59 #include <wrf_io_flags.h>
60
61 write(message, '(A,I9)') 'call read emissions opt3'
62 call wrf_message( TRIM( message ) )
63
64 CALL construct_filename1 ( bdyname , '../../run/emissopt3' , grid%id , 2 )
65
66 IF (wrf_dm_on_monitor()) THEN
67 open (92,file=bdyname,form='unformatted')
68 ENDIf
69 write(message, '(A,A)') ' OPENED FILE: ',bdyname
70 call wrf_message( TRIM( message ) )
71 CALL wrf_debug( 100 , 'med_read_bin_chem_emissopt3: calling emissions for opt 3' )
72
73 CALL get_ijk_from_grid ( grid , &
74 ids, ide, jds, jde, kds, kde, &
75 ims, ime, jms, jme, kms, kme, &
76 ips, ipe, jps, jpe, kps, kpe )
77
78 ALLOCATE (dumc0(ids:ide,kds:grid%kemit,jds:jde))
79 ALLOCATE (dumc1(ids:ide,jds:jde))
80
81 write(message, '(A,4I6)') ' I am reading fire emissions, dims: =',ids, ide-1, jds, jde-1
82 call wrf_message( TRIM( message ) )
83
84 read(92)nv
85 print *,'nv = ',nv
86 read(92)dname
87 read(92)itime
88 call wrf_message( TRIM( message ) )
89
90 ! read(92)dumc0
91 ! grid%e_so2(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
92 ! read(92)dumc0
93 ! grid%e_no(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
94 ! read(92)dumc0
95 ! grid%e_ald(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
96 ! read(92)dumc0
97 ! grid%e_hcho(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
98 ! read(92)dumc0
99 ! grid%e_ora2(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
100 ! read(92)dumc0
101 ! grid%e_nh3(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
102 ! read(92)dumc0
103 ! grid%e_hc3(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
104 ! read(92)dumc0
105 ! grid%e_hc5(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
106 ! read(92)dumc0
107 ! grid%e_hc8(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
108 ! read(92)dumc0
109 ! grid%e_eth(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
110 ! read(92)dumc0
111 ! grid%e_co(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
112 ! read(92)dumc0
113 ! grid%e_ol2(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
114 ! read(92)dumc0
115 ! grid%e_olt(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
116 ! read(92)dumc0
117 ! grid%e_oli(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
118 ! read(92)dumc0
119 ! grid%e_tol(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
120 ! read(92)dumc0
121 ! grid%e_xyl(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
122 ! read(92)dumc0
123 ! grid%e_ket(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
124 ! read(92)dumc0
125 ! grid%e_csl(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
126 ! read(92)dumc0
127 ! grid%e_iso(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
128 ! read(92)dumc0
129 ! grid%e_pm25(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
130 ! read(92)dumc0
131 ! grid%e_pm10(ids:ide-1,kds:grid%kemit,jds:jde-1)=dumc0(ids:ide-1,kds:grid%kemit,jds:jde-1)
132
133
134 read(92)dumc1
135 grid%e_so2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
136 read(92)dumc1
137 grid%e_no(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
138 read(92)dumc1
139 grid%e_ald(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
140 read(92)dumc1
141 grid%e_hcho(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
142 read(92)dumc1
143 grid%e_ora2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
144 read(92)dumc1
145 grid%e_nh3(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
146 read(92)dumc1
147 grid%e_hc3(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
148 read(92)dumc1
149 grid%e_hc5(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
150 read(92)dumc1
151 grid%e_hc8(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
152 read(92)dumc1
153 grid%e_eth(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
154 read(92)dumc1
155 grid%e_co(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
156 read(92)dumc1
157 grid%e_ol2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
158 read(92)dumc1
159 grid%e_olt(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
160 read(92)dumc1
161 grid%e_oli(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
162 read(92)dumc1
163 grid%e_tol(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
164 read(92)dumc1
165 grid%e_xyl(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
166 read(92)dumc1
167 grid%e_ket(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
168 read(92)dumc1
169 grid%e_csl(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
170 read(92)dumc1
171 grid%e_iso(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
172 read(92)dumc1
173 grid%e_pm25(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
174 read(92)dumc1
175 grid%e_pm10(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
176
177 CALL construct_filename1 ( bdyname , '../../run/emissfire' , grid%id , 2 )
178
179 IF (wrf_dm_on_monitor()) THEN
180 open (93,file=bdyname,form='unformatted')
181 ENDIf
182 write(message, '(A,A)') ' OPENED FILE: ',bdyname
183 call wrf_message( TRIM( message ) )
184 CALL wrf_debug( 100 , 'med_read_bin_chem_emissopt3: calling fire emissions for opt 3' )
185 read(93)nv
186 read(93)dname
187 read(93)itime
188
189 read(93)dumc1
190 ! grid%ebu_so2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
191 read(93)dumc1
192 grid%ebu_no(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
193 read(93)dumc1
194 grid%ebu_ald(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
195 read(93)dumc1
196 grid%ebu_hcho(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
197 read(93)dumc1
198 grid%ebu_ora2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
199 read(93)dumc1
200 ! grid%ebu_nh3(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
201 read(93)dumc1
202 grid%ebu_hc3(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
203 read(93)dumc1
204 grid%ebu_hc5(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
205 read(93)dumc1
206 grid%ebu_hc8(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
207 read(93)dumc1
208 grid%ebu_eth(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
209 read(93)dumc1
210 grid%ebu_co(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
211 read(93)dumc1
212 ! grid%ebu_ol2(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
213 read(93)dumc1
214 grid%ebu_olt(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
215 read(93)dumc1
216 grid%ebu_oli(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
217 read(93)dumc1
218 grid%ebu_tol(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
219 read(93)dumc1
220 grid%ebu_xyl(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
221 read(93)dumc1
222 grid%ebu_ket(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
223 read(93)dumc1
224 grid%ebu_csl(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
225 read(93)dumc1
226 grid%ebu_iso(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
227 read(93)dumc1
228 grid%ebu_pm25(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
229 read(93)dumc1
230 grid%ebu_pm10(ids:ide-1,kds,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
231 read(93)dumc1
232 grid%mean_fct_agtf(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
233 read(93)dumc1
234 grid%mean_fct_agef(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
235 read(93)dumc1
236 grid%mean_fct_agsv(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
237 read(93)dumc1
238 grid%mean_fct_aggr(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
239 read(93)dumc1
240 grid%firesize_agtf(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
241 read(93)dumc1
242 grid%firesize_agef(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
243 read(93)dumc1
244 grid%firesize_agsv(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
245 read(93)dumc1
246 grid%firesize_aggr(ids:ide-1,jds:jde-1)=dumc1(ids:ide-1,jds:jde-1)
247
248
249 DEALLOCATE ( dumc0 )
250 DEALLOCATE ( dumc1 )
251 RETURN
252 END SUBROUTINE med_read_bin_chem_emissopt3
253
254 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
255 END MODULE module_input_chem_emissopt3
256