35 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSV
36 REAL,
DIMENSION(:),
INTENT(OUT) :: PFAC
37 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: PCTOTA
39 REAL,
DIMENSION(NSP+NCARB+NSOA) :: ZMI
40 REAL,
DIMENSION(NSP+NCARB+NSOA) :: ZRHOI
43 REAL,
PARAMETER :: ZMOL = 6.0221367e+11
44 REAL(KIND=JPRB) :: ZHOOK_HANDLE
46 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:INIT_VAR',0,zhook_handle)
72 IF (
nsoa .EQ. 10)
THEN 87 pfac(jj)=(4./3.)*zpi*zrhoi(jj)*1.e-9
120 IF (
nsoa .EQ. 10)
THEN 144 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:INIT_VAR',1,zhook_handle)
150 PSVT, &!I [ppp] input scalar variables (moment of distribution)
196 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSVT
199 REAL,
DIMENSION(:),
INTENT(IN) :: PRHODREF
202 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PSIG1D
203 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PRG1D
204 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PN1D
205 REAL,
DIMENSION(:,:,:),
OPTIONAL,
INTENT(OUT) :: PCTOTA
206 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: PM1D
210 REAL,
DIMENSION(SIZE(PSVT,1), SIZE(PSVT,2)) :: ZSV
211 REAL,
DIMENSION(SIZE(PSVT,1)) :: ZSIGMA
212 REAL,
DIMENSION(SIZE(PSVT,1),NSP+NCARB+NSOA,JPMODE) :: ZCTOTA
213 REAL,
DIMENSION(SIZE(PSVT,1),JPMODE*3) :: ZM
214 REAL,
DIMENSION(JPMODE*3) :: ZMMIN
216 REAL,
DIMENSION(NSP+NCARB+NSOA) :: ZFAC
217 REAL,
PARAMETER :: ZDEN2MOL = 1e-6 * 6.0221367e+23 / 28.9644e-3
219 REAL(KIND=JPRB) :: ZHOOK_HANDLE
222 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:PPP2AERO_SURF',0,zhook_handle)
226 DO jj=1,
SIZE(psvt,2)
227 zsv(:,jj) = psvt(:,jj) * zden2mol * prhodref(:)
228 zsv(:,jj) = max(zsv(:,jj),1e-40 * zden2mol * prhodref(:))
238 zm(:,2) = zm(:,2)+zctota(:,jj,1)/zfac(jj)
239 zm(:,5) = zm(:,5)+zctota(:,jj,2)/zfac(jj)
247 WHERE ((zm(:,1) .LT. zmmin(1)))
259 WHERE ((zm(:,4) .LT. zmmin(4)))
276 zsigma(:)=zm(:,2)**2/(zm(:,1)*zm(:,3))
277 zsigma(:)=min(1-1e-10,zsigma(:))
278 zsigma(:)=max(1e-10,zsigma(:))
279 zsigma(:)= log(zsigma(:))
280 zsigma(:)= exp(1./3.*sqrt(-zsigma(:)))
282 * ( (zm(:,2)/zm(:,1))**(1./3.) &
283 * exp(-(3./2.)*log(zsigma(:))**2))**6 &
284 * exp(18.*log(zsigma(:))**2)
286 IF(
PRESENT(psig1d)) psig1d(:,1) = zsigma(:)
290 * ( (zm(:,2)/zm(:,1))**(1./3.) &
294 IF(
PRESENT(psig1d)) psig1d(:,1) =
xemissigi 300 zsigma(:)=zm(:,5)**2/(zm(:,4)*zm(:,6))
301 zsigma(:)=min(1-1e-10,zsigma(:))
302 zsigma(:)=max(1e-10,zsigma(:))
303 zsigma(:)= log(zsigma(:))
304 zsigma(:)= exp(1./3.*sqrt(-zsigma(:)))
307 * ( (zm(:,5)/zm(:,4))**(1./3.) &
308 * exp(-(3./2.)*log(zsigma(:))**2))**6 &
309 * exp(18.*log(zsigma(:))**2)
311 IF(
PRESENT(psig1d)) psig1d(:,2) = zsigma(:)
315 * ( (zm(:,5)/zm(:,4))**(1./3.) &
319 IF(
PRESENT(psig1d)) psig1d(:,2) =
xemissigj 325 IF(
PRESENT(pn1d)) pn1d(:,jn) = zm(:,
nm0(jn))
327 IF(
PRESENT(prg1d)) prg1d(:,jn)=(zm(:,
nm3(jn))**4. &
328 / (zm(:,
nm6(jn))*zm(:,
nm0(jn))**3.))**(1./6.)
331 IF(
PRESENT(pctota)) pctota(:,:,:) = zctota(:,:,:)
332 IF(
PRESENT(pm1d)) pm1d(:,:) = zm(:,:)
333 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:PPP2AERO_SURF',1,zhook_handle)
338 PSVT, &!IO [ppp] input scalar variables (moment of distribution)
375 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: PSVT
378 REAL,
DIMENSION(:),
INTENT(IN) :: PRHODREF
381 REAL,
DIMENSION(:,:),
INTENT(IN) :: PSIG1D
382 REAL,
DIMENSION(:,:),
INTENT(IN) :: PRG1D
386 REAL,
DIMENSION(SIZE(PSVT,1),NSP+NCARB+NSOA,JPMODE):: ZCTOTA
387 REAL,
DIMENSION(SIZE(PSVT,1), JPMODE*3) :: ZM
389 REAL,
DIMENSION(NSP+NCARB+NSOA) :: ZFAC
390 REAL,
PARAMETER :: ZDEN2MOL = 1e-6 * 6.0221367e+23 / 28.9644e-3
392 REAL(KIND=JPRB) :: ZHOOK_HANDLE
395 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:AERO2PPP_SURF',0,zhook_handle)
399 DO jj=1,
SIZE(psvt, 2)
400 psvt(:,jj) = psvt(:,jj) * zden2mol * prhodref(:)
410 zm(:,2) = zm(:,2)+zctota(:,jj,1)/zfac(jj)
411 zm(:,5) = zm(:,5)+zctota(:,jj,2)/zfac(jj)
417 zm(:,1)= zm(:,2)/ ( (prg1d(:,1)**3)*exp(4.5 * log(psig1d(:,1))**2) )
418 zm(:,4)= zm(:,5)/ ( (prg1d(:,2)**3)*exp(4.5 * log(psig1d(:,2))**2) )
422 zm(:,3) = zm(:,1)*(prg1d(:,1)**6) * exp(18 *(log(psig1d(:,1)))**2)
423 zm(:,6) = zm(:,4)*(prg1d(:,2)**6) * exp(18 *(log(psig1d(:,2)))**2)
434 psvt(:,jj) = psvt(:,jj) / (zden2mol * prhodref(:))
437 IF (
lhook)
CALL dr_hook(
'MODE_AER_SURF:AERO2PPP_SURF',1,zhook_handle)
integer, parameter jp_aer_oc
subroutine init_var(PSV, PFAC, PCTOTA)
real, parameter xdensity_dst
integer, parameter jp_aer_nh3
real, parameter xsurf_tiny
integer, parameter jpmode
integer, dimension(jpmode), save nm6
integer, parameter jp_aer_so4
subroutine aero2ppp_surf(PSVT, PRHODREF, PSIG1D, PRG1D)
subroutine ppp2aero_surf(PSVT, PRHODREF, PSIG1D, PRG1D, PN1D, PCTOTA, PM1D)
integer, parameter jp_aer_bc
integer, parameter jp_aer_h2o
integer, dimension(jpmode), save nm0
integer, parameter jp_aer_dst
integer, dimension(jpmode), save nm3
integer, parameter jp_aer_no3