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