Forked from
Méso-NH / Méso-NH code
2598 commits behind the upstream repository.
ch_aer_nucl.f90 3.85 KiB
!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
!ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!ORILAM_LIC for details.
!-----------------------------------------------------------------
!--------------- special set of characters for RCS information
!-----------------------------------------------------------------
! $Source$ $Revision$
! MASDEV4_7 chimie 2006/05/18 13:07:25
!-----------------------------------------------------------------
!! ################################
MODULE MODI_CH_AER_NUCL
!! ################################
!!
INTERFACE
!!
SUBROUTINE CH_AER_NUCL(ZRH,ZT,ZCONC,ZJ,ZAL,KVECNPT)
IMPLICIT NONE
!!
REAL, DIMENSION(:), INTENT(INOUT) :: ZJ,ZAL
REAL, DIMENSION(:), INTENT(IN) :: ZRH,ZT
REAL, DIMENSION(:), INTENT(INOUT) :: ZCONC
INTEGER, INTENT(IN) :: KVECNPT
!!
!!
END SUBROUTINE CH_AER_NUCL
!!
END INTERFACE
!!
END MODULE MODI_CH_AER_NUCL
!!
!! #########################################################################
SUBROUTINE CH_AER_NUCL(ZRH,ZT,ZCONC,ZJ,ZAL,KVECNPT)
!###########################################################
!
!!
!!
!!
!! PURPOSE
!! -------
!!
!! compute nucleation rate for binary sulfate/H2O
!! (Kulmala 1998)
!!
!! AUTHOR
!! ------
!! F.Cousin * Laboratoire d'Aerologie*
!!
!! MODIFICATIONS
!! -------------
!! P. Tulet 05/01/04
!! M.Leriche 2015 : correction bug
!----------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
!
IMPLICIT NONE
!
!* 0.1 Declarations of dummy arguments :
!
REAL, DIMENSION(:), INTENT(INOUT) :: ZJ,ZAL
REAL, DIMENSION(:), INTENT(IN) :: ZRH,ZT
REAL, DIMENSION(:), INTENT(INOUT) :: ZCONC
INTEGER, INTENT(IN) :: KVECNPT
INTEGER :: II
REAL, DIMENSION(KVECNPT) :: RA,XH2O,PVH2O,PVH2SO4,KHI,SIG,XNSULFC,XNSULF
REAL :: Kb,TC,T0
Kb=1.381E-23
TC = 905.15
T0 = 360.15
! 1. Saturation vapor pressure for water (N/m2, T in K)
! (Preining et al, 1981)
PVH2O(:) = EXP(77.344913-7235.4247/ZT(:)-8.2*LOG(ZT(:))+0.0057113*ZT(:))
! 2. Water concentration (molec/cm3)
XH2O(:) = ZRH(:)*PVH2O(:)/(Kb*ZT(:))/1.E6
ZJ(:)=0.
ZAL(:)=0.
RA(:)=0.
WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1))
! 1. Saturation vapor pressure for water (N/m2, T in K)
! (Preining et al, 1981)
PVH2O(:) = EXP(77.344913-7235.4247/ZT(:)-8.2*LOG(ZT(:))+0.0057113*ZT(:))
! 2. Water concentration (molec/cm3)
XH2O(:) = ZRH(:)*PVH2O(:)/(Kb*ZT(:))/1.E6
! 3. Saturation vapor pressure for H2SO4
! (Kulmala et al 1990, Seinfeld 577p)
!PVH2SO4 = 1./T-1./T0+0.38*T0*(1./T-1./T0)/(TC-T0)
!PVH2SO4 = PVH2SO4 + 0.38/(TC-T0)*LOG(T/T0)
!PVH2SO4 = -10156.0*PVH2SO4 - 0.414
!PVH2SO4= EXP(PVH2SO4)
PVH2SO4(:)=EXP(-10156./T0+16.259+10156.*(-1./ZT(:)+1./T0+0.38/(TC-T0)*&
(1.+LOG(T0/ZT(:))-T0/ZT(:))))*101325.
! 4. Relative Acidity
RA(:)=ZCONC(:)*1.E6*(Kb*ZT(:))/PVH2SO4(:)
END WHERE
! 5. H2SO4 mole fraction in the critical nucleous
DO II=1,SIZE(ZCONC,1)
IF((ZCONC(II)>0.).AND.(XH2O(II)>0.).AND.(RA(II)/=0.)) THEN
ZAL(II)=1.2233-0.0154*RA(II)/(RA(II)+ZRH(II))+0.0102*&
LOG(ZCONC(II))-0.0415*LOG(XH2O(II))+0.0016*ZT(II)
END IF
END DO
WHERE(((ZT(:)>=223.).OR.(ZT(:)<=298)).AND.(ZRH(:)>=0.1).AND.ZAL(:)/=0.)
! 6. Sulfuric nucleation rate (molec/cm3/s)
XNSULFC(:)=EXP(-14.5125+0.1335*ZT(:)-10.5462*ZRH(:)+1958.4*ZRH(:)/ZT(:))
SIG(:) = 1.+(ZT(:)-273.15)/273.15
XNSULF(:)=LOG(ZCONC(:)/XNSULFC(:))
KHI(:)=25.1289*XNSULF(:)-4890.8*XNSULF(:)/ZT(:)-1743.3/ZT(:)-2.2479*SIG(:)*XNSULF(:)*ZRH(:)+&
7643.4*ZAL(:)/ZT(:)-1.9712*ZAL(:)*SIG(:)/ZRH(:)
ZJ(:)=EXP(KHI(:))
END WHERE
RETURN
END SUBROUTINE CH_AER_NUCL