7 pmu, pvgk, pdpk, pvgg, pdpg )
44 USE yomhook
,ONLY : lhook, dr_hook
45 USE parkind1
,ONLY : jprb
51 REAL,
DIMENSION(:,:),
INTENT(IN) :: psig, prg
52 REAL,
DIMENSION(:),
INTENT(IN) :: pta, prhodref
53 REAL,
INTENT(IN) :: prhop
54 REAL,
DIMENSION(:),
INTENT(OUT) :: pmu
55 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pvgk, pdpk
56 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pvgg, pdpg
60 REAL,
DIMENSION(SIZE(PTA)) :: zlambda
61 REAL,
DIMENSION(SIZE(PTA)) :: zrg, zln2s
62 REAL,
DIMENSION(SIZE(PTA)) :: zkng
64 REAL,
PARAMETER :: zgasmw = 28.9644d0
67 REAL(KIND=JPRB) :: zhook_handle
69 IF (lhook) CALL dr_hook(
'DSLT_VELGRAV1D',0,zhook_handle)
72 pmu(:)=1.8325d-5 * 416.16/(pta(:)+120.) * (pta(:)/296.16) * sqrt(pta(:)/296.16)
75 zlambda(:)=pmu(:)/prhodref(:) * sqrt(1.89d-4*zgasmw/pta(:))*1.e6
79 zrg(:) = prg(:,ii) * 1e-6
80 zln2s(:) = log(psig(:,ii))**2
82 zkng(:) = zlambda(:) / prg(:,ii)
84 pvgg(:,ii) = 2. * xg * prhop * zrg(:)**2 / (9.*pmu(:))
85 pdpg(:,ii) = xboltz * pta(:)/(6.*xpi*zrg(:)*pmu(:))
91 pdpk(:,3*ii+ij-2) = pdpg(:,ii) * &
92 (exp((-2.*zk+1.)/2.*zln2s(:)) + &
93 1.246*zkng(:) * exp((-4.*zk+4)/2.*zln2s(:)))
95 pvgk(:,3*ii+ij-2) = pvgg(:,ii) * &
96 (exp((4.*zk+4.)/2.*zln2s(:)) + &
97 1.246*zkng(:)* exp((2.*zk+1.)/2.*zln2s(:)))
101 IF (lhook) CALL dr_hook(
'DSLT_VELGRAV1D',1,zhook_handle)
subroutine dslt_velgrav1d(PSIG, PRG, PTA, PRHODREF, PRHOP, PMU, PVGK, PDPK, PVGG, PDPG)