15 subroutine bl_simp( IM, JM, LM, DT, UT, VT, PTT, QVT, QLT, QIT, PET, PKT, FROCEAN, &
16 MAPL_GRAV, MAPL_VIREPS, MAPL_KAPPA, MAPL_CP, MAPL_RGAS, &
17 AKQ, AKS, AKV, BKQ, BKS, BKV, CKQ, CKS, CKV &
24 INTEGER,
INTENT(IN) :: im, jm, lm
25 REAL,
INTENT(IN) :: dt
26 REAL,
INTENT(IN),
DIMENSION(IM,JM,LM) :: ut, vt, ptt, qvt, qlt, qit
27 REAL,
INTENT(IN),
DIMENSION(IM,JM,0:LM) :: pet
28 REAL,
INTENT(IN),
DIMENSION(IM,JM,LM) :: pkt
29 REAL,
INTENT(IN),
DIMENSION(IM,JM) :: frocean
31 REAL,
INTENT(IN) :: mapl_grav, mapl_vireps, mapl_kappa, mapl_cp, mapl_rgas
34 REAL,
INTENT(OUT),
DIMENSION(IM,JM,LM) :: akq, aks, akv, bkq, bks, bkv, ckq, cks, ckv
39 REAL :: ell2, cdrag_land, cdrag_sea, cdrag, tcoef
40 REAL :: dmi, pkh, dz, ckx, tvb, tve, tvt
42 REAL,
DIMENSION(IM,JM) :: bksq, bksv, bkst
43 REAL,
DIMENSION(LM) :: kh
75 dmi = (mapl_grav*dt)/(pet(i,j,1)-pet(i,j,0))
76 tvt = ptt(i,j,1)*pkt(i,j,1) &
77 * (1.0 + mapl_vireps *qvt(i,j,1) - qlt(i,j,1) - qit(i,j,1) )
79 pkh = pet(i,j,l)**mapl_kappa
80 dz = mapl_cp*(ptt(i,j,l-1)*(pkh-pkt(i,j,l-1)) + ptt(i,j,l )*(pkt(i,j,l )-pkh))
81 ws = (ut(i,j,l-1)-ut(i,j,l))**2+(vt(i,j,l-1)-vt(i,j,l))**2 + 0.01
82 ri = mapl_grav*((ptt(i,j,l-1)-ptt(i,j,l)) / (0.5*(ptt(i,j,l-1)+ptt(i,j,l))))*dz/ws
83 rin = ell2*sqrt(ws)/dz
85 kh(l) =
max(0.01, rin*sqrt(1.-18.*ri))
87 kh(l) =
max(0.01, rin/(1.+10.*ri*(1.+8.*ri)))
90 tvb = ptt(i,j,l)*pkt(i,j,l)*(1.0 + mapl_vireps *qvt(i,j,l) - qlt(i,j,l) - qit(i,j,l))
94 ckx = -kh(l)*pet(i,j,l)/( mapl_rgas * tve )/dz
95 cks(i,j,l-1) = ckx * dmi
96 dmi = (mapl_grav*dt)/(pet(i,j,l)-pet(i,j,l-1))
97 aks(i,j,l) = ckx * dmi
98 bks(i,j,l-1) = 1.0 - (aks(i,j,l-1)+cks(i,j,l-1))
101 bks(i,j,l) = 1.0 - (aks(i,j,l)+cks(i,j,l))
102 bksq(i,j) = bks(i,j,l)
103 ws = sqrt(ut(i,j,l)**2 + vt(i,j,l)**2 + 1.0)
104 IF (frocean(i,j).eq.1.0)
then 111 kh(l) = -cdrag*dmi*ws*pet(i,j,l)/(mapl_rgas*tvb)
112 bksv(i,j) = 1.0 - (aks(i,j,l)+cks(i,j,l)+kh(l))
113 bkst(i,j) = 1.0 - (aks(i,j,l)+cks(i,j,l)+kh(l)*tcoef)
131 bkv(:,:,lm) = bksv(:,:)
132 bks(:,:,lm) = bkst(:,:)
133 bkq(:,:,lm) = bksq(:,:)
subroutine, public bl_simp(IM, JM, LM, DT, UT, VT, PTT, QVT, QLT, QIT, PET, PKT, FROCEAN, MAPL_GRAV, MAPL_VIREPS, MAPL_KAPPA, MAPL_CP, MAPL_RGAS, AKQ, AKS, AKV, BKQ, BKS, BKV, CKQ, CKS, CKV)