added README_changes.txt
[wrffire.git] / wrfv2_fire / chem / module_input_chem_bioemiss.F
blobe4cc2a82ae774387bc157de5c4729a4b1c0b816e
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
37 !WRF:PACKAGE:IO
39 MODULE module_input_chem_bioemiss
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
54 CONTAINS
55 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
57 SUBROUTINE input_ext_chem_beis3_file (grid)
58 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
60    IMPLICIT NONE
62    TYPE(domain)           ::  grid
64    INTEGER ::  i,j,n,numfil,status,system
66    INTEGER :: ids, ide, jds, jde, kds, kde,    &
67               ims, ime, jms, jme, kms, kme,    &
68               ips, ipe, jps, jpe, kps, kpe
70    REAL, ALLOCATABLE, DIMENSION(:,:) :: emiss
74 ! Number of reference emission and LAI files to open
75       PARAMETER(numfil=19)
77    CHARACTER (LEN=80) :: message
79    TYPE (grid_config_rec_type)              :: config_flags
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
88 ! Leaf area index for isoprene
89 !     REAL, DIMENSION(i,j) ::  slai
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'/
98 !!!!!-------------------------------------------------------------------
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    )
106      WRITE( message , FMT='(A,4I5)' ) ' DIMS: ',ids,ide-1,jds,jde-1
107      CALL  wrf_message ( message )
109      ALLOCATE( emiss(ids:ide-1,jds:jde-1) )
112 ! Loop over the file names
113       DO n=1,numfil
115 !   Remove scratch unzipped file
116        status=system('rm -f scratem*')
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
132 !   Copy selected file to scratch
133        status=system('cp '//TRIM(ADJUSTL(onefil))//' scratem.gz')
135 !   Unzip scratch
136        status=system('gunzip scratem')
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)
218       ENDDO
219 ! End of loop over file names
221     DEALLOCATE( emiss )
223 END SUBROUTINE input_ext_chem_beis3_file 
224 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
226 END MODULE module_input_chem_bioemiss