source: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/finemission.F @ 4934

Last change on this file since 4934 was 2196, checked in by jescribano, 10 years ago

Dust emission scheme changes: (1) Included possibility of use previous dust emission scheme (with 2 dust bins). (2) Parameter of Marticorena and Bergametti 1995 set to it's original value (2.61) for testing purposes with pdtphys=15min. (3) Cleaning ustar calculation.

File size: 6.4 KB
RevLine 
[2175]1C This subroutine calculates the emissions of BLACK CARBON and ORGANIC
2C MATTER
3      SUBROUTINE finemission(zdz,pdtphys,zalt,kminbc,kmaxbc,
4     .                       scale_param_bb,scale_param_ff,
5     .                       iregion_ind,iregion_bb,
6     .                       nbreg_ind,nbreg_bb,
7     .                       lmt_bcff,lmt_bcnff,lmt_bcbb_l,lmt_bcbb_h,
8     .                       lmt_bcba,lmt_omff,lmt_omnff,lmt_ombb_l,
9     .                       lmt_ombb_h,lmt_omnat,lmt_omba,id_fine,
10     .                                    flux_sparam_bb,flux_sparam_ff,
11     .                                        source_tr,flux_tr,tr_seri)
12
13      USE dimphy
14      USE indice_sol_mod
15      USE infotrac
16!      USE phytracr_spl_mod, ONLY : nbreg_dust, nbreg_ind, nbreg_bb
17      IMPLICIT NONE
18
19#include "dimensions.h"
20#include "chem.h"
21#include "../phylmd/YOMCST.h"
22c #include "../phylmd/dimphy.h"
23c #include "../phylmd/indicesol.h"
24#include "paramet.h"
25
26      INTEGER i, k, kminbc, kmaxbc
27c============================= INPUT ===================================
28      REAL pdtphys  ! pas d'integration pour la physique (seconde)
29      REAL zalt(klon,klev)
30      REAL zdz(klon,klev)
31c
32c------------------------- Scaling Parameters --------------------------
33c   
34      INTEGER nbreg_ind,nbreg_bb
35      INTEGER iregion_ind(klon)  !Defines regions for SO2, BC & OM
36      INTEGER iregion_bb(klon)   !Defines regions for SO2, BC & OM
37      REAL scale_param_bb(nbreg_bb) !Scaling parameter for biomas burning
38      REAL scale_param_ff(nbreg_ind) !Scaling parameter for industrial emissions (fossil fuel)
39      INTEGER id_fine
40c============================= OUTPUT ==================================
41      REAL source_tr(klon,nbtr)
42      REAL flux_tr(klon,nbtr)
43      REAL tr_seri(klon,klev,nbtr) ! traceur
44      REAL flux_sparam_bb(klon), flux_sparam_ff(klon)
45c========================= LOCAL VARIABLES =============================
46      REAL zzdz
47c------------------------- BLACK CARBON emissions ----------------------
48      REAL lmt_bcff(klon)       ! emissions de BC fossil fuels
49      REAL lmt_bcnff(klon)      ! emissions de BC non-fossil fuels
50      REAL lmt_bcbb_l(klon)     ! emissions de BC biomass basses
51      REAL lmt_bcbb_h(klon)     ! emissions de BC biomass hautes
52      REAL lmt_bcba(klon)       ! emissions de BC bateau
53c------------------------ ORGANIC MATTER emissions ---------------------
54      REAL lmt_omff(klon)     ! emissions de OM fossil fuels
55      REAL lmt_omnff(klon)    ! emissions de OM non-fossil fuels
56      REAL lmt_ombb_l(klon)   ! emissions de OM biomass basses
57      REAL lmt_ombb_h(klon)   ! emissions de OM biomass hautes
58      REAL lmt_omnat(klon)    ! emissions de OM Natural
59      REAL lmt_omba(klon)     ! emissions de OM bateau
60                               
61      EXTERNAL condsurfc                               
62c========================================================================
63c                        LOW LEVEL EMISSIONS
64c========================================================================
65           
66c corresponds to bc_source.EQ.3
67
68      DO i=1,klon
69         IF (iregion_ind(i).GT.0) THEN
[2196]70       IF(id_fine>0)    source_tr(i,id_fine)=source_tr(i,id_fine)+
[2175]71     .                (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+     !g/m2/s
72     .                 scale_param_ff(iregion_ind(i))*lmt_omff(i)
73     .                 )     * 1.e4                        !g/m2/s
74c
[2196]75      IF(id_fine>0)     flux_tr(i,id_fine)=flux_tr(i,id_fine)+
[2175]76     .                (scale_param_ff(iregion_ind(i))*lmt_bcff(i)+     !mg/m2/s
77     .                 scale_param_ff(iregion_ind(i))*lmt_omff(i)
78     .                 )     * 1.e4 *1.e3                  !mg/m2/s
79c
80           flux_sparam_ff(i)= flux_sparam_ff(i) +
81     .                     scale_param_ff(iregion_ind(i))*
82     .                     ( lmt_bcff(i)+lmt_omff(i))
83     .                     *1.e4*1.e3
84         ENDIF
85         IF (iregion_bb(i).GT.0) THEN
[2196]86       IF(id_fine>0)    source_tr(i,id_fine)=source_tr(i,id_fine)+
[2175]87     .                (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+   !g/m2/s
88     .                 scale_param_bb(iregion_bb(i))*lmt_ombb_l(i)    !g/m2/s
89     .                 )     * 1.e4                        !g/m2/s
90c
[2196]91       IF(id_fine>0)    flux_tr(i,id_fine)=flux_tr(i,id_fine)+
[2175]92     .                (scale_param_bb(iregion_bb(i))*lmt_bcbb_l(i)+   !mg/m2/s
93     .                 scale_param_bb(iregion_bb(i))*lmt_ombb_l(i)+   !mg/m2/s
94     .                 scale_param_bb(iregion_bb(i))*lmt_bcbb_h(i)+   !mg/m2/s
95     .                 scale_param_bb(iregion_bb(i))*lmt_ombb_h(i)    !mg/m2/s
96     .                 )     * 1.e4 *1.e3                  !mg/m2/s
97c
98           flux_sparam_bb(i)=flux_sparam_bb(i) +
99     .                   scale_param_bb(iregion_bb(i))*(lmt_bcbb_l(i) +
100     .                   lmt_bcbb_h(i) + lmt_ombb_l(i) + lmt_ombb_h(i))
101     .                   *1.e4*1.e3
102         ENDIF
[2196]103       IF(id_fine>0)  source_tr(i,id_fine)=source_tr(i,id_fine)+
[2175]104     .                (lmt_bcnff(i)+lmt_bcba(i)+lmt_omnff(i)+
105     .                 lmt_omnat(i)+lmt_omba(i))     * 1.e4           !g/m2/s
106c
[2196]107       IF(id_fine>0)  flux_tr(i,id_fine)=flux_tr(i,id_fine)+
[2175]108     .                (lmt_bcnff(i)+lmt_omnff(i)+lmt_omnat(i)+
109     .                 lmt_omba(i)+lmt_bcba(i))     * 1.e4 *1.e3      !mg/m2/s
110c
111         flux_sparam_ff(i)= flux_sparam_ff(i) +
112     .                      (lmt_omba(i)+lmt_bcba(i))*1.e4*1.e3
113      ENDDO
114
115c========================================================================
116c                        HIGH LEVEL EMISSIONS
117c========================================================================
118                             
119c  Sources hautes de BC/OM
120
121c
122c HIGH LEVEL EMISSIONS OF SO2 ARE IN PRECUREMISSION.F
123c
124      k=2                             !introducing emissions in level 2
125cnhl      DO i = 1, klon
126c
127cnhl      tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+scale_param_ff(iregion_ind(i))*
128cnhl     .               (lmt_bcff_h(i)+lmt_omff_h(i))/zdz(i,k)/100.*pdtphys
129c
130cnhl      ENDDO
131
132      DO k=kminbc, kmaxbc
133      DO i = 1, klon
134          zzdz=zalt(i,kmaxbc+1)-zalt(i,kminbc)
135c
136         IF (iregion_bb(i) .GT.0) THEN
[2196]137        IF(id_fine>0)   tr_seri(i,k,id_fine)=tr_seri(i,k,id_fine)+
[2175]138     .              (scale_param_bb(iregion_bb(i))*lmt_bcbb_h(i)+
139     .               scale_param_bb(iregion_bb(i))*lmt_ombb_h(i))
140     .                              /zzdz/100.*pdtphys
141         ENDIF
142c
143      ENDDO
144      ENDDO
145c
146      END
Note: See TracBrowser for help on using the repository browser.