module_input_chem_bioemiss.F
References to this file elsewhere.
1 !dis
2 !dis Open Source License/Disclaimer, Forecast Systems Laboratory
3 !dis NOAA/OAR/FSL, 325 Broadway Boulder, CO 80305
4 !dis
5 !dis This software is distributed under the Open Source Definition,
6 !dis which may be found at http://www.opensource.org/osd.html.
7 !dis
8 !dis In particular, redistribution and use in source and binary forms,
9 !dis with or without modification, are permitted provided that the
10 !dis following conditions are met:
11 !dis
12 !dis - Redistributions of source code must retain this notice, this
13 !dis list of conditions and the following disclaimer.
14 !dis
15 !dis - Redistributions in binary form must provide access to this
16 !dis notice, this list of conditions and the following disclaimer, and
17 !dis the underlying source code.
18 !dis
19 !dis - All modifications to this software must be clearly documented,
20 !dis and are solely the responsibility of the agent making the
21 !dis modifications.
22 !dis
23 !dis - If significant modifications or enhancements are made to this
24 !dis software, the FSL Software Policy Manager
25 !dis (softwaremgr@fsl.noaa.gov) should be notified.
26 !dis
27 !dis THIS SOFTWARE AND ITS DOCUMENTATION ARE IN THE PUBLIC DOMAIN
28 !dis AND ARE FURNISHED "AS IS." THE AUTHORS, THE UNITED STATES
29 !dis GOVERNMENT, ITS INSTRUMENTALITIES, OFFICERS, EMPLOYEES, AND
30 !dis AGENTS MAKE NO WARRANTY, EXPRESS OR IMPLIED, AS TO THE USEFULNESS
31 !dis OF THE SOFTWARE AND DOCUMENTATION FOR ANY PURPOSE. THEY ASSUME
32 !dis NO RESPONSIBILITY (1) FOR THE USE OF THE SOFTWARE AND
33 !dis DOCUMENTATION; OR (2) TO PROVIDE TECHNICAL SUPPORT TO USERS.
34 !dis
35 !dis
36
37 !WRF:PACKAGE:IO
38
39 MODULE module_input_chem_bioemiss
40
41 USE module_io_domain
42 USE module_domain
43 USE module_driver_constants
44 USE module_state_description
45 USE module_configure
46 USE module_date_time
47 USE module_wrf_error
48 USE module_timing
49 USE module_data_radm2
50 USE module_aerosols_sorgam
51 USE module_get_file_names
52
53
54 CONTAINS
55 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
56
57 SUBROUTINE input_ext_chem_beis3_file (grid)
58 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
59
60 IMPLICIT NONE
61
62 TYPE(domain) :: grid
63
64 INTEGER :: i,j,n,numfil,status,system
65
66 INTEGER :: ids, ide, jds, jde, kds, kde, &
67 ims, ime, jms, jme, kms, kme, &
68 ips, ipe, jps, jpe, kps, kpe
69
70 REAL, ALLOCATABLE, DIMENSION(:,:) :: emiss
71
72
73
74 ! Number of reference emission and LAI files to open
75 PARAMETER(numfil=19)
76
77 CHARACTER (LEN=80) :: message
78
79 TYPE (grid_config_rec_type) :: config_flags
80
81 ! Normalized biogenic emissions for standard conditions (moles compound/km^2/hr)
82 ! REAL, DIMENSION(i,j) :: &
83 ! sebio_iso,sebio_oli,sebio_api,sebio_lim,sebio_xyl, &
84 ! sebio_hc3,sebio_ete,sebio_olt,sebio_ket,sebio_ald, &
85 ! sebio_hcho,sebio_eth,sebio_ora2,sebio_co,sebio_nr, &
86 ! noag_grow,noag_nongrow,nononag
87
88 ! Leaf area index for isoprene
89 ! REAL, DIMENSION(i,j) :: slai
90
91 ! Filenames of reference emissions and LAI
92 CHARACTER*100 onefil
93 CHARACTER*12 emfil(numfil)
94 DATA emfil/'ISO','OLI','API','LIM','XYL','HC3','ETE','OLT', &
95 'KET','ALD','HCHO','ETH','ORA2','CO','NR', &
96 'NOAG_GROW','NOAG_NONGROW','NONONAG','ISOP'/
97
98 !!!!!-------------------------------------------------------------------
99
100 ! Get grid dimensions
101 CALL get_ijk_from_grid ( grid , &
102 ids, ide, jds, jde, kds, kde, &
103 ims, ime, jms, jme, kms, kme, &
104 ips, ipe, jps, jpe, kps, kpe )
105
106 WRITE( message , FMT='(A,4I5)' ) ' DIMS: ',ids,ide-1,jds,jde-1
107 CALL wrf_message ( message )
108
109 ALLOCATE( emiss(ids:ide-1,jds:jde-1) )
110
111
112 ! Loop over the file names
113 DO n=1,numfil
114
115 ! Remove scratch unzipped file
116 status=system('rm -f scratem*')
117
118 ! All reference emissions except NO
119 IF(n.LE.15)THEN
120 onefil='../../run/BIOREF_'// &
121 TRIM(ADJUSTL(emfil(n)))//'.gz'
122 ! NO reference emissions
123 ELSE IF(n.GE.16.AND.n.LE.18)THEN
124 onefil='../../run/AVG_'// &
125 TRIM(ADJUSTL(emfil(n)))//'.gz'
126 ! LAI
127 ELSE
128 onefil='../../run/LAI_'// &
129 TRIM(ADJUSTL(emfil(n)))//'S.gz'
130 ENDIF
131
132 ! Copy selected file to scratch
133 status=system('cp '//TRIM(ADJUSTL(onefil))//' scratem.gz')
134
135 ! Unzip scratch
136 status=system('gunzip scratem')
137
138 ! Open scratch and read into appropriate array
139 OPEN(26,FILE='scratem',FORM='FORMATTED')
140 IF(n.EQ. 1) then
141 READ(26,'(12E9.2)') emiss
142 grid%sebio_iso(ids:ide-1,jds:jde-1) = emiss
143 ENDIF
144 IF(n.EQ. 2)then
145 READ(26,'(12E9.2)') emiss
146 grid%sebio_oli(ids:ide-1,jds:jde-1) = emiss
147 ENDIF
148 IF(n.EQ. 3)then
149 READ(26,'(12E9.2)') emiss
150 grid%sebio_api(ids:ide-1,jds:jde-1) = emiss
151 ENDIF
152 IF(n.EQ. 4)then
153 READ(26,'(12E9.2)') emiss
154 grid%sebio_lim(ids:ide-1,jds:jde-1) = emiss
155 ENDIF
156 IF(n.EQ. 5)then
157 READ(26,'(12E9.2)') emiss
158 grid%sebio_xyl(ids:ide-1,jds:jde-1) = emiss
159 ENDIF
160 IF(n.EQ. 6)then
161 READ(26,'(12E9.2)') emiss
162 grid%sebio_hc3(ids:ide-1,jds:jde-1) = emiss
163 ENDIF
164 IF(n.EQ. 7)then
165 READ(26,'(12E9.2)') emiss
166 grid%sebio_ete(ids:ide-1,jds:jde-1) = emiss
167 ENDIF
168 IF(n.EQ. 8)then
169 READ(26,'(12E9.2)') emiss
170 grid%sebio_olt(ids:ide-1,jds:jde-1) = emiss
171 ENDIF
172 IF(n.EQ. 9)then
173 READ(26,'(12E9.2)') emiss
174 grid%sebio_ket(ids:ide-1,jds:jde-1) = emiss
175 ENDIF
176 IF(n.EQ.10)then
177 READ(26,'(12E9.2)') emiss
178 grid%sebio_ald(ids:ide-1,jds:jde-1) = emiss
179 ENDIF
180 IF(n.EQ.11)then
181 READ(26,'(12E9.2)') emiss
182 grid%sebio_hcho(ids:ide-1,jds:jde-1) = emiss
183 ENDIF
184 IF(n.EQ.12)then
185 READ(26,'(12E9.2)') emiss
186 grid%sebio_eth(ids:ide-1,jds:jde-1) = emiss
187 ENDIF
188 IF(n.EQ.13)then
189 READ(26,'(12E9.2)') emiss
190 grid%sebio_ora2(ids:ide-1,jds:jde-1) = emiss
191 ENDIF
192 IF(n.EQ.14)then
193 READ(26,'(12E9.2)') emiss
194 grid%sebio_co(ids:ide-1,jds:jde-1) = emiss
195 ENDIF
196 IF(n.EQ.15)then
197 READ(26,'(12E9.2)') emiss
198 grid%sebio_nr(ids:ide-1,jds:jde-1) = emiss
199 ENDIF
200 IF(n.EQ.16)then
201 READ(26,'(12E9.2)') emiss
202 grid%noag_grow(ids:ide-1,jds:jde-1) = emiss
203 ENDIF
204 IF(n.EQ.17)then
205 READ(26,'(12E9.2)') emiss
206 grid%noag_nongrow(ids:ide-1,jds:jde-1) = emiss
207 ENDIF
208 IF(n.EQ.18)then
209 READ(26,'(12E9.2)') emiss
210 grid%nononag(ids:ide-1,jds:jde-1) = emiss
211 ENDIF
212 IF(n.EQ.19)then
213 READ(26,'(12E9.2)') emiss
214 grid%slai(ids:ide-1,jds:jde-1) = emiss
215 ENDIF
216 CLOSE(26)
217
218 ENDDO
219 ! End of loop over file names
220
221 DEALLOCATE( emiss )
222
223 END SUBROUTINE input_ext_chem_beis3_file
224 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
225
226 END MODULE module_input_chem_bioemiss
227