46 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PFLUX
47 REAL,
DIMENSION(:),
INTENT(IN) :: PRHODREF
48 INTEGER,
INTENT(IN) :: KSV_CHSBEG
49 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSV
50 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: PFCO
60 REAL,
DIMENSION(NSP+NCARB+NSOA) :: ZFAC, ZRHOI, ZMI
61 REAL,
DIMENSION(SIZE(PFLUX,1),NSP+NCARB+NSOA,JPMODE) :: ZFCTOTA
62 REAL,
DIMENSION(SIZE(PFLUX,1),JPIN) :: ZFM
63 REAL,
DIMENSION(SIZE(PFLUX,1)) :: ZFCO
64 REAL,
DIMENSION(SIZE(PFLUX,1)) :: ZCONVERSION
67 REAL :: ZEMISRADIUSI, ZEMISRADIUSJ
68 REAL :: ZVALBC, ZVALOC
69 INTEGER :: I_CH_M0i, I_CH_M0j, I_CH_M6i, I_CH_M6j, I_CH_H2Oi, I_CH_H2Oj,&
70 I_CH_SO4i,I_CH_SO4j, I_CH_NO3i, I_CH_NO3j, I_CH_NH3i, I_CH_NH3j,&
71 I_CH_OCi, I_CH_OCj, I_CH_BCi, I_CH_BCj , I_CH_DSTi, I_CH_DSTj
72 REAL(KIND=JPRB) :: ZHOOK_HANDLE
81 IF (
lhook)
CALL dr_hook(
'CH_AER_EMISSION',0,zhook_handle)
103 IF (trim(hsv(jsv)) ==
"M0I") i_ch_m0i=jsv-ksv_chsbeg+1
104 IF (trim(hsv(jsv)) ==
"M0J") i_ch_m0j=jsv-ksv_chsbeg+1
105 IF (trim(hsv(jsv)) ==
"M6I") i_ch_m6i=jsv-ksv_chsbeg+1
106 IF (trim(hsv(jsv)) ==
"M6J") i_ch_m6j=jsv-ksv_chsbeg+1
107 IF (trim(hsv(jsv)) ==
"H2OI") i_ch_h2oi=jsv-ksv_chsbeg+1
108 IF (trim(hsv(jsv)) ==
"H2OJ") i_ch_h2oj=jsv-ksv_chsbeg+1
109 IF (trim(hsv(jsv)) ==
"SO4I") i_ch_so4i=jsv-ksv_chsbeg+1
110 IF (trim(hsv(jsv)) ==
"SO4J") i_ch_so4j=jsv-ksv_chsbeg+1
111 IF (trim(hsv(jsv)) ==
"NO3I") i_ch_no3i=jsv-ksv_chsbeg+1
112 IF (trim(hsv(jsv)) ==
"NO3J") i_ch_no3j=jsv-ksv_chsbeg+1
113 IF (trim(hsv(jsv)) ==
"NH3I") i_ch_nh3i=jsv-ksv_chsbeg+1
114 IF (trim(hsv(jsv)) ==
"NH3J") i_ch_nh3j=jsv-ksv_chsbeg+1
115 IF (trim(hsv(jsv)) ==
"OCI") i_ch_oci=jsv-ksv_chsbeg+1
116 IF (trim(hsv(jsv)) ==
"OCJ") i_ch_ocj=jsv-ksv_chsbeg+1
117 IF (trim(hsv(jsv)) ==
"BCI") i_ch_bci=jsv-ksv_chsbeg+1
118 IF (trim(hsv(jsv)) ==
"BCJ") i_ch_bcj=jsv-ksv_chsbeg+1
119 IF (trim(hsv(jsv)) ==
"DSTI") i_ch_dsti=jsv-ksv_chsbeg+1
120 IF (trim(hsv(jsv)) ==
"DSTJ") i_ch_dstj=jsv-ksv_chsbeg+1
123 IF (i_ch_m0i ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_M0i ')
124 IF (i_ch_m0j ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_M0j ')
127 IF (i_ch_h2oi==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_H2Oi')
128 IF (i_ch_h2oj==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_H2Oj')
129 IF (i_ch_so4i==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_SO4i')
130 IF (i_ch_so4j==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_SO4j')
131 IF (i_ch_no3i==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_NO3i')
132 IF (i_ch_no3j==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_NO3j')
133 IF (i_ch_nh3i==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_NH3i')
134 IF (i_ch_nh3j==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_NH3j')
135 IF (i_ch_oci ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_OCi ')
136 IF (i_ch_ocj ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_OCj ')
137 IF (i_ch_bci ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_BCi ')
138 IF (i_ch_bcj ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_BCj ')
139 IF (i_ch_dsti ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_DSTi ')
140 IF (i_ch_dstj ==-999)
CALL abor1_sfx (
'WRONG VALUE FOR I_CH_DSTj ')
166 zfac(jj) = (4./3.)*3.14292654*zrhoi(jj)*1.e-9
171 pflux(:,:) = max(pflux(:,:),0.)
178 IF ((
lco2pm).AND.(
PRESENT(pfco)))
THEN 181 zvalbc= 5.* 0.6e-10 / 0.4e-8
182 zvaloc= 5.* 0.3e-10 / 0.4e-8
192 pflux(:,i_ch_so4i) = pflux(:,i_ch_so4i) / zconversion(:) * zmi(
jp_aer_so4)*1e-3
193 pflux(:,i_ch_so4j) = pflux(:,i_ch_so4j) / zconversion(:) * zmi(
jp_aer_so4)*1e-3
194 pflux(:,i_ch_no3i) = pflux(:,i_ch_no3i) / zconversion(:) * zmi(
jp_aer_no3)*1e-3
195 pflux(:,i_ch_no3j) = pflux(:,i_ch_no3j) / zconversion(:) * zmi(
jp_aer_no3)*1e-3
196 pflux(:,i_ch_nh3i) = pflux(:,i_ch_nh3i) / zconversion(:) * zmi(
jp_aer_nh3)*1e-3
197 pflux(:,i_ch_nh3j) = pflux(:,i_ch_nh3j) / zconversion(:) * zmi(
jp_aer_nh3)*1e-3
198 pflux(:,i_ch_h2oi) = pflux(:,i_ch_h2oi) / zconversion(:) * zmi(
jp_aer_h2o)*1e-3
199 pflux(:,i_ch_h2oj) = pflux(:,i_ch_h2oj) / zconversion(:) * zmi(
jp_aer_h2o)*1e-3
200 pflux(:,i_ch_oci) = (pflux(:,i_ch_oci) + zfco(:) * zvaloc / 2.) / zconversion(:) * zmi(
jp_aer_oc)*1e-3
201 pflux(:,i_ch_ocj) = (pflux(:,i_ch_ocj) + zfco(:) * zvaloc ) / zconversion(:) * zmi(
jp_aer_oc)*1e-3
202 pflux(:,i_ch_bci) = (pflux(:,i_ch_bci) + zfco(:) * zvalbc / 2.) / zconversion(:) * zmi(
jp_aer_bc)*1e-3
203 pflux(:,i_ch_bcj) = (pflux(:,i_ch_bcj) + zfco(:) * zvalbc ) / zconversion(:) * zmi(
jp_aer_bc)*1e-3
204 pflux(:,i_ch_dsti) = pflux(:,i_ch_dsti) / zconversion(:) * zmi(
jp_aer_dst)*1e-3
205 pflux(:,i_ch_dstj) = pflux(:,i_ch_dstj) / zconversion(:) * zmi(
jp_aer_dst)*1e-3
210 zfctota(:,
jp_aer_so4,1) = pflux(:,i_ch_so4i) *1e+9 * prhodref(:)
211 zfctota(:,
jp_aer_so4,2) = pflux(:,i_ch_so4j) *1e+9 * prhodref(:)
213 zfctota(:,
jp_aer_nh3,1) = pflux(:,i_ch_nh3i) *1e+9 * prhodref(:)
214 zfctota(:,
jp_aer_nh3,2) = pflux(:,i_ch_nh3j) *1e+9 * prhodref(:)
216 zfctota(:,
jp_aer_no3,1) = pflux(:,i_ch_no3i) *1e+9 * prhodref(:)
217 zfctota(:,
jp_aer_no3,2) = pflux(:,i_ch_no3j) *1e+9 * prhodref(:)
219 zfctota(:,
jp_aer_h2o,1) = pflux(:,i_ch_h2oi) *1e+9 * prhodref(:)
220 zfctota(:,
jp_aer_h2o,2) = pflux(:,i_ch_h2oj) *1e+9 * prhodref(:)
222 zfctota(:,
jp_aer_oc,1) = pflux(:,i_ch_oci) *1e+9 * prhodref(:)
223 zfctota(:,
jp_aer_oc,2) = pflux(:,i_ch_ocj) *1e+9 * prhodref(:)
225 zfctota(:,
jp_aer_bc,1) = pflux(:,i_ch_bci) *1e+9 * prhodref(:)
226 zfctota(:,
jp_aer_bc,2) = pflux(:,i_ch_bcj) *1e+9 * prhodref(:)
228 zfctota(:,
jp_aer_dst,1) = pflux(:,i_ch_dsti) *1e+9 * prhodref(:)
229 zfctota(:,
jp_aer_dst,2) = pflux(:,i_ch_dstj) *1e+9 * prhodref(:)
236 zfm(:,2) = zfm(:,2)+zfctota(:,jj,1)/zfac(jj)
237 zfm(:,5) = zfm(:,5)+zfctota(:,jj,2)/zfac(jj)
242 zfm(:,1)= zfm(:,2) / ((zemisradiusi**3)*exp(4.5 * (log(
xemissigi))**2))
244 zfm(:,4)= zfm(:,5) / ((zemisradiusj**3)*exp(4.5 * (log(
xemissigj))**2))
248 zfm(:,3) = zfm(:,1) * (zemisradiusi**6) *exp(18 *(log(
xemissigi))**2)
250 zfm(:,6) = zfm(:,4) * (zemisradiusj**6) *exp(18 *(log(
xemissigj))**2)
255 pflux(:,i_ch_m0i) = zfm(:,1) * 1e-6 / (zden2mol * prhodref(:))
256 pflux(:,i_ch_m0j) = zfm(:,4) * 1e-6 / (zden2mol * prhodref(:))
258 IF (
lvarsigi) pflux(:,i_ch_m6i) = zfm(:,3) / (zden2mol * prhodref(:))
259 IF (
lvarsigj) pflux(:,i_ch_m6j) = zfm(:,6) / (zden2mol * prhodref(:))
262 pflux(:,i_ch_so4i) = pflux(:,i_ch_so4i) *
xmd / (zmi(
jp_aer_so4)*1e-3)
263 pflux(:,i_ch_so4j) = pflux(:,i_ch_so4j) *
xmd / (zmi(
jp_aer_so4)*1e-3)
264 pflux(:,i_ch_no3i) = pflux(:,i_ch_no3i) *
xmd / (zmi(
jp_aer_no3)*1e-3)
265 pflux(:,i_ch_no3j) = pflux(:,i_ch_no3j) *
xmd / (zmi(
jp_aer_no3)*1e-3)
266 pflux(:,i_ch_nh3i) = pflux(:,i_ch_nh3i) *
xmd / (zmi(
jp_aer_nh3)*1e-3)
267 pflux(:,i_ch_nh3j) = pflux(:,i_ch_nh3j) *
xmd / (zmi(
jp_aer_nh3)*1e-3)
268 pflux(:,i_ch_h2oi) = pflux(:,i_ch_h2oi) *
xmd / (zmi(
jp_aer_h2o)*1e-3)
269 pflux(:,i_ch_h2oj) = pflux(:,i_ch_h2oj) *
xmd / (zmi(
jp_aer_h2o)*1e-3)
271 pflux(:,i_ch_oci) = pflux(:,i_ch_oci) *
xmd / (zmi(
jp_aer_oc)*1e-3)
272 pflux(:,i_ch_ocj) = pflux(:,i_ch_ocj) *
xmd / (zmi(
jp_aer_oc)*1e-3)
273 pflux(:,i_ch_bci) = pflux(:,i_ch_bci) *
xmd / (zmi(
jp_aer_bc)*1e-3)
274 pflux(:,i_ch_bcj) = pflux(:,i_ch_bcj) *
xmd / (zmi(
jp_aer_bc)*1e-3)
275 pflux(:,i_ch_dsti) = pflux(:,i_ch_dsti) *
xmd / (zmi(
jp_aer_dst)*1e-3)
276 pflux(:,i_ch_dstj) = pflux(:,i_ch_dstj) *
xmd / (zmi(
jp_aer_dst)*1e-3)
279 pflux(:,i_ch_m0i) = pflux(:,i_ch_m0i) * zconversion(:)
280 pflux(:,i_ch_m0j) = pflux(:,i_ch_m0j) * zconversion(:)
282 IF (
lvarsigi) pflux(:,i_ch_m6i) = pflux(:,i_ch_m6i) * zconversion(:)
283 IF (
lvarsigj) pflux(:,i_ch_m6j) = pflux(:,i_ch_m6j) * zconversion(:)
285 pflux(:,i_ch_so4i) = pflux(:,i_ch_so4i) * zconversion(:) / (zmi(
jp_aer_so4)*1e-3)
286 pflux(:,i_ch_so4j) = pflux(:,i_ch_so4j) * zconversion(:) / (zmi(
jp_aer_so4)*1e-3)
287 pflux(:,i_ch_no3i) = pflux(:,i_ch_no3i) * zconversion(:) / (zmi(
jp_aer_no3)*1e-3)
288 pflux(:,i_ch_no3j) = pflux(:,i_ch_no3j) * zconversion(:) / (zmi(
jp_aer_no3)*1e-3)
289 pflux(:,i_ch_nh3i) = pflux(:,i_ch_nh3i) * zconversion(:) / (zmi(
jp_aer_nh3)*1e-3)
290 pflux(:,i_ch_nh3j) = pflux(:,i_ch_nh3j) * zconversion(:) / (zmi(
jp_aer_nh3)*1e-3)
291 pflux(:,i_ch_h2oi) = pflux(:,i_ch_h2oi) * zconversion(:) / (zmi(
jp_aer_h2o)*1e-3)
292 pflux(:,i_ch_h2oj) = pflux(:,i_ch_h2oj) * zconversion(:) / (zmi(
jp_aer_h2o)*1e-3)
293 pflux(:,i_ch_oci) = pflux(:,i_ch_oci) * zconversion(:) / (zmi(
jp_aer_oc)*1e-3)
294 pflux(:,i_ch_ocj) = pflux(:,i_ch_ocj) * zconversion(:) / (zmi(
jp_aer_oc)*1e-3)
295 pflux(:,i_ch_bci) = pflux(:,i_ch_bci) * zconversion(:) / (zmi(
jp_aer_bc)*1e-3)
296 pflux(:,i_ch_bcj) = pflux(:,i_ch_bcj) * zconversion(:) / (zmi(
jp_aer_bc)*1e-3)
297 pflux(:,i_ch_dsti) = pflux(:,i_ch_dsti) * zconversion(:) / (zmi(
jp_aer_dst)*1e-3)
298 pflux(:,i_ch_dstj) = pflux(:,i_ch_dstj) * zconversion(:) / (zmi(
jp_aer_dst)*1e-3)
300 IF (
lhook)
CALL dr_hook(
'CH_AER_EMISSION',1,zhook_handle)
integer, parameter jp_aer_oc
real, parameter xdensity_dst
integer, parameter jp_aer_nh3
real, parameter xavogadro
subroutine abor1_sfx(YTEXT)
integer, parameter jp_aer_so4
integer, parameter jp_aer_bc
integer, parameter jp_aer_h2o
integer, parameter jp_aer_dst
subroutine ch_aer_emission(PFLUX, PRHODREF, HSV, KSV_CHSBEG, PFCO)
integer, parameter jp_aer_no3