6 SUBROUTINE ch_aer_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK,PDPK, PVGG,PDPG)
43 USE yomhook
,ONLY : lhook, dr_hook
44 USE parkind1
,ONLY : jprb
50 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pvgk,pdpk
51 REAL,
DIMENSION(:),
INTENT(OUT) :: pmu
52 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pvgg
53 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pdpg
54 REAL,
DIMENSION(:,:),
INTENT(IN) :: prhop
55 REAL,
DIMENSION(:,:),
INTENT(IN) :: psig, prg
56 REAL,
DIMENSION(:),
INTENT(IN) :: pta, prhodref
60 REAL,
DIMENSION(size(PSIG,1)) :: zlambda
62 REAL,
DIMENSION(size(PSIG,1)) :: zrg,zln2s
64 REAL,
DIMENSION(size(PSIG,1)) :: zkng
66 REAL,
PARAMETER :: gasmw=28.9644d0
67 REAL :: zk, zrd, zavogadro, zboltz, zmd, zpi, zg
70 REAL(KIND=JPRB) :: zhook_handle
72 IF (lhook) CALL dr_hook(
'CH_AER_VELGRAV1D',0,zhook_handle)
74 zavogadro = 6.0221367e+23
77 zrd = zavogadro * zboltz / zmd
82 pmu(:)=1.8325d-5*416.16/(pta(:)+120)*(pta(:)/296.16)*sqrt(pta(:)/296.16)
85 zlambda(:)=pmu(:)/prhodref(:)*sqrt(1.89d-4*gasmw/pta(:))*1.e6
89 zrg(:)=prg(:,ii) * 1e-6
90 zln2s(:)=log(psig(:,ii))**2
92 zkng(:)=zlambda(:) / prg(:,ii)
94 pvgg(:,ii)= 2.*zg*prhop(:,ii)*zrg(:)**2 /(9.*pmu(:))
95 pdpg(:,ii)=zboltz*pta(:)/ (6.*zpi* zrg(:)*pmu(:))
102 pdpk(:,3*ii+ij-2)=pdpg(:,ii)*(exp((-2.*zk+1.)/2.*zln2s(:))+1.246*zkng(:)*&
103 exp((-4.*zk+4)/2.*zln2s(:)))
105 pvgk(:,3*ii+ij-2)=pvgg(:,ii)*&
106 (exp((4.*zk+4.)/2.*zln2s(:)) + 1.246*zkng(:)* exp((2.*zk+1.)/2.*zln2s(:)))
111 IF (lhook) CALL dr_hook(
'CH_AER_VELGRAV1D',1,zhook_handle)
subroutine ch_aer_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK, PDPK, PVGG, PDPG)