4 Subroutine wake (p,ph,pi,dtime,sigd_con
6 : ,dtdwn,dqdwn,amdwn,amup,dta,dqa
7 : ,wdtpbl,wdqpbl,udtpbl,udqpbl
8 o ,deltatw,deltaqw,dth,hw,sigmaw,wape,fip,gfl
10 o ,ktopw,omgbdth,dp_omgb,wdens
14 o ,omg,dp_deltomg,spread
16 o ,d_deltatw2,d_deltaqw2)
118 #include "dimensions.h"
120 #include "cvthermo.h"
121 #include "iniprint.h"
126 REAL,
dimension(klon,klev) :: p,
pi
127 REAL,
dimension(klon,klev+1) :: ph, omgb
129 REAL,
dimension(klon,klev) :: te0,qe0
130 REAL,
dimension(klon,klev) :: dtdwn, dqdwn
131 REAL,
dimension(klon,klev) :: wdtpbl,wdqpbl
132 REAL,
dimension(klon,klev) :: udtpbl,udqpbl
133 REAL,
dimension(klon,klev) :: amdwn, amup
134 REAL,
dimension(klon,klev) :: dta, dqa
135 REAL,
dimension(klon) :: sigd_con
140 REAL,
dimension(klon,klev) :: deltatw, deltaqw, dth
141 REAL,
dimension(klon,klev) :: tu, qu
142 REAL,
dimension(klon,klev) :: dtls, dqls
143 REAL,
dimension(klon,klev) :: dtke, dqke
144 REAL,
dimension(klon,klev) :: dtpbl, dqpbl
145 REAL,
dimension(klon,klev) :: spread
146 REAL,
dimension(klon,klev) :: d_deltatgw
147 REAL,
dimension(klon,klev) :: d_deltatw2, d_deltaqw2
148 REAL,
dimension(klon,klev+1) :: omgbdth, omg
149 REAL,
dimension(klon,klev) :: dp_omgb, dp_deltomg
150 REAL,
dimension(klon,klev) :: d_deltat_gw
151 REAL,
dimension(klon) :: hw, sigmaw, wape, fip, gfl, cstar
152 REAL,
dimension(klon) :: wdens
153 INTEGER,
dimension(klon) :: ktopw
167 REAL sigmad, hwmin,wapecut
172 LOGICAL,
dimension(klon) :: gwake
175 REAL,
dimension(klon,klev) :: deltatw0
176 REAL,
dimension(klon,klev) :: deltaqw0
177 REAL,
dimension(klon,klev) :: te, qe
178 REAL,
dimension(klon) :: sigmaw0, sigmaw1
181 REAL,
DIMENSION(klon) ::
ll
182 REAL,
dimension(klon,klev) :: n2
183 REAL,
dimension(klon,klev) :: cgw
184 REAL,
dimension(klon,klev) :: tgw
187 REAL,
DIMENSION(klon) :: ptop_provis, ptop, ptop_new
188 REAL,
DIMENSION(klon) :: sum_dth
189 REAL,
DIMENSION(klon) :: dthmin
190 REAL,
DIMENSION(klon) ::
z, dz, hw0
191 INTEGER,
DIMENSION(klon) :: ktop, kupper
194 REAL d_deltatw(klon,
klev),d_deltaqw(klon,
klev)
195 REAL d_te(klon,
klev),d_qe(klon,
klev)
196 REAL d_sigmaw(klon),
alpha(klon)
197 REAL q0_min(klon),q1_min(klon)
198 LOGICAL wk_adv(klon), ok_qx_qw(klon)
203 INTEGER isubstep,
k,
i
205 REAL,
DIMENSION(klon) :: sum_thu, sum_tu, sum_qu,sum_thvu
206 REAL,
DIMENSION(klon) :: sum_dq, sum_rho
207 REAL,
DIMENSION(klon) :: sum_dtdwn, sum_dqdwn
208 REAL,
DIMENSION(klon) :: av_thu, av_tu, av_qu, av_thvu
209 REAL,
DIMENSION(klon) :: av_dth, av_dq, av_rho
210 REAL,
DIMENSION(klon) :: av_dtdwn, av_dqdwn
212 REAL,
DIMENSION(klon,klev) :: rho, rhow
213 REAL,
DIMENSION(klon,klev+1) :: rhoh
214 REAL,
DIMENSION(klon,klev) :: rhow_moyen
215 REAL,
DIMENSION(klon,klev) :: zh
216 REAL,
DIMENSION(klon,klev+1) :: zhh
217 REAL,
DIMENSION(klon,klev) :: epaisseur1, epaisseur2
219 REAL,
DIMENSION(klon,klev) :: the, thu
223 REAL,
DIMENSION(klon,klev+1) :: omgbw
224 REAL,
DIMENSION(klon) :: pupper
225 REAL,
DIMENSION(klon) :: omgtop
226 REAL,
DIMENSION(klon,klev) :: dp_omgbw
227 REAL,
DIMENSION(klon) :: ztop, dztop
228 REAL,
DIMENSION(klon,klev) :: alpha_up
230 REAL,
dimension(klon) :: rre1, rre2
232 REAL,
DIMENSION(klon,klev) :: th1, th2, q1, q2
233 REAL,
DIMENSION(klon,klev) :: d_th1, d_th2, d_dth
234 REAL,
DIMENSION(klon,klev) :: d_q1, d_q2, d_dq
235 REAL,
DIMENSION(klon,klev) :: omgbdq
237 REAL,
dimension(klon) :: ff, gg
238 REAL,
dimension(klon) :: wape2, cstar2, heff
240 REAL,
DIMENSION(klon,klev) :: crep
241 REAL crep_upper, crep_sol
243 REAL,
DIMENSION(klon,klev) :: ppi
246 real,
dimension(klon) :: death_rate,nat_rate
247 real,
dimension(klon,klev) :: entr
248 real,
dimension(klon,klev) ::
detr
259 DATA wapecut,sigmad, hwmin /5.,.02,10./
261 DATA sigmaw_max /0.4/
297 OPEN(99,file=
'wake_param.data',status=
'old',
298 $ form=
'formatted',err=9999)
299 READ(99,*,end=9998) stark
300 READ(99,*,end=9998) alpk
301 READ(99,*,end=9998) wdens_ref
302 READ(99,*,end=9998) coefgw
328 deltatw0(
i,
k) = deltatw(
i,
k)
329 deltaqw0(
i,
k)= deltaqw(
i,
k)
351 sigmaw(
i) = amax1(sigmaw(
i),sigmad)
352 sigmaw(
i) = amin1(sigmaw(
i),0.99)
353 sigmaw0(
i) = sigmaw(
i)
395 ll(
i) = (1-sqrt(sigmaw(
i)))/sqrt(wdens(
i))
402 rho(
i,
k) = p(
i,
k)/(rd*te(
i,
k))
406 rhoh(
i,
k) = ph(
i,
k)/(rd*te(
i,
k))
411 rhoh(
i,
k) = ph(
i,
k)*2./(rd*(te(
i,
k)+te(
i,
k-1)))
413 zhh(
i,
k)=(ph(
i,
k)-ph(
i,
k-1))/(-rhoh(
i,
k)*rg)+zhh(
i,
k-1)
416 the(
i,
k) = te(
i,
k)/ppi(
i,
k)
417 thu(
i,
k) = (te(
i,
k) - deltatw(
i,
k)*sigmaw(
i))/ppi(
i,
k)
418 tu(
i,
k) = te(
i,
k) - deltatw(
i,
k)*sigmaw(
i)
419 qu(
i,
k) = qe(
i,
k) - deltaqw(
i,
k)*sigmaw(
i)
421 rhow(
i,
k) = p(
i,
k)/(rd*(te(
i,
k)+deltatw(
i,
k)))
422 dth(
i,
k) = deltatw(
i,
k)/ppi(
i,
k)
431 n2(
i,
k)=amax1(0.,-rg**2/the(
i,
k)*rho(
i,
k)*(the(
i,
k+1)-
432 $ the(
i,
k-1))/(p(
i,
k+1)-p(
i,
k-1)))
434 zh(
i,
k)=(zhh(
i,
k)+zhh(
i,
k+1))/2
436 cgw(
i,
k)=sqrt(n2(
i,
k))*zh(
i,
k)
459 epaisseur1(
i,1)= -(ph(
i,2)-ph(
i,1))/(rho(
i,1)*rg)+1.
460 epaisseur2(
i,1)= -(ph(
i,2)-ph(
i,1))/(rho(
i,1)*rg)+1.
461 rhow_moyen(
i,1) = rhow(
i,1)
466 epaisseur1(
i,
k)= -(ph(
i,
k+1)-ph(
i,
k))/(rho(
i,
k)*rg) +1.
467 epaisseur2(
i,
k)=epaisseur2(
i,
k-1)+epaisseur1(
i,
k)
468 rhow_moyen(
i,
k) = (rhow_moyen(
i,
k-1)*epaisseur2(
i,
k-1)+
469 $ rhow(
i,
k)*epaisseur1(
i,
k))/epaisseur2(
i,
k)
481 pupper(
i) = 0.6*ph(
i,1)
482 pupper(
i) = max(pupper(
i), 45000.)
493 ptop_provis(
i)=ph(
i,1)
500 IF (dth(
i,
k) .GT. -delta_t_min .and.
501 $ dth(
i,
k-1).LT. -delta_t_min .and.
502 $ ptop_provis(
i).EQ. ph(
i,1))
THEN
503 ptop_provis(
i) = ((dth(
i,
k)+delta_t_min)*p(
i,
k-1)
504 $ - (dth(
i,
k-1)+delta_t_min)*p(
i,
k)) /
505 $ (dth(
i,
k) - dth(
i,
k-1))
514 dthmin(
i) = -delta_t_min
520 dz(
i) = -(amax1(ph(
i,
k+1),ptop_provis(
i))-ph(
i,
k))/(rho(
i,
k)*rg)
521 IF (dz(
i) .gt. 0)
THEN
523 sum_dth(
i) = sum_dth(
i) + dth(
i,
k)*dz(
i)
524 dthmin(
i) = amin1(dthmin(
i),dth(
i,
k))
532 hw0(
i) = 2.*sum_dth(
i)/amin1(dthmin(
i),-0.5)
533 hw0(
i) = amax1(hwmin,hw0(
i))
545 dz(
i) = amin1(-(ph(
i,
k+1)-ph(
i,
k))/(rho(
i,
k)*rg),hw0(
i)-
z(
i))
546 IF (dz(
i) .gt. 0)
THEN
548 ptop(
i) = ph(
i,
k)-rho(
i,
k)*rg*dz(
i)
558 IF (ph(
i,
k+1) .lt. ptop(
i)) ktop(
i)=
k
559 IF (ph(
i,
k+1) .lt. pupper(
i)) kupper(
i)=
k
565 kupper(
i) = max(kupper(
i),2)
566 kupper(
i) = min(kupper(
i),
klev-1)
577 IF (
k .LE. ktop(
i) .and.
578 $ ptop_new(
i) .EQ. ptop(
i) .and.
579 $ dth(
i,
k) .GT. -delta_t_min .and.
580 $ dth(
i,
k-1).LT. -delta_t_min)
THEN
581 ptop_new(
i) = ((dth(
i,
k)+delta_t_min)*p(
i,
k-1)
582 $ - (dth(
i,
k-1)+delta_t_min)*p(
i,
k)) /
583 $ (dth(
i,
k) - dth(
i,
k-1))
589 ptop(
i) = ptop_new(
i)
594 IF (ph(
i,
k+1) .lt. ptop(
i)) ktop(
i)=
k
602 IF (
k.GE. kupper(
i))
THEN
614 IF (
k.LE. kupper(
i))
THEN
615 dp_omgb(
i,
k) = (omgb(
i,
k+1) - omgb(
i,
k))/(ph(
i,
k+1)-ph(
i,
k))
628 sum_thvu(
i) = thu(
i,1)*(1.+
eps*qu(
i,1))*dz(
i)
634 dz(
i) = -(amax1(ph(
i,
k+1),ptop(
i))-ph(
i,
k))/(rho(
i,
k)*rg)
635 IF (dz(
i) .GT. 0)
THEN
637 sum_thu(
i) = sum_thu(
i) + thu(
i,
k)*dz(
i)
638 sum_tu(
i) = sum_tu(
i) + tu(
i,
k)*dz(
i)
639 sum_qu(
i) = sum_qu(
i) + qu(
i,
k)*dz(
i)
640 sum_thvu(
i) = sum_thvu(
i) + thu(
i,
k)*(1.+
eps*qu(
i,
k))*dz(
i)
641 sum_dth(
i) = sum_dth(
i) + dth(
i,
k)*dz(
i)
642 sum_dq(
i) = sum_dq(
i) + deltaqw(
i,
k)*dz(
i)
643 sum_rho(
i) = sum_rho(
i) + rhow(
i,
k)*dz(
i)
644 sum_dtdwn(
i) = sum_dtdwn(
i) + dtdwn(
i,
k)*dz(
i)
645 sum_dqdwn(
i) = sum_dqdwn(
i) + dqdwn(
i,
k)*dz(
i)
663 av_thu(
i) = sum_thu(
i)/hw0(
i)
664 av_tu(
i) = sum_tu(
i)/hw0(
i)
665 av_qu(
i) = sum_qu(
i)/hw0(
i)
666 av_thvu(
i) = sum_thvu(
i)/hw0(
i)
668 av_dth(
i) = sum_dth(
i)/hw0(
i)
669 av_dq(
i) = sum_dq(
i)/hw0(
i)
670 av_rho(
i) = sum_rho(
i)/hw0(
i)
671 av_dtdwn(
i) = sum_dtdwn(
i)/hw0(
i)
672 av_dqdwn(
i) = sum_dqdwn(
i)/hw0(
i)
674 wape(
i) = - rg*hw0(
i)*(av_dth(
i)
675 $ +
eps*(av_thu(
i)*av_dq(
i)+av_dth(
i)*av_qu(
i)+av_dth(
i)*
676 $ av_dq(
i) ))/av_thvu(
i)
686 IF ( wape(
i) .LT. 0.)
THEN
695 IF ( wape(
i) .LT. 0.)
THEN
699 sigmaw(
i) = amax1(sigmad,sigd_con(
i))
703 cstar(
i) = stark*sqrt(2.*wape(
i))
712 q0_min(
i)=min( (qe(
i,1)-sigmaw(
i)*deltaqw(
i,1)),
713 $ (qe(
i,1)+(1.-sigmaw(
i))*deltaqw(
i,1)) )
717 q1_min(
i)=min( (qe(
i,
k)-sigmaw(
i)*deltaqw(
i,
k)),
718 $ (qe(
i,
k)+(1.-sigmaw(
i))*deltaqw(
i,
k)) )
719 IF (q1_min(
i).le.q0_min(
i))
THEN
726 ok_qx_qw(
i) = q0_min(
i) .GE. 0.
743 wk_adv(
i) = ok_qx_qw(
i) .AND.
alpha(
i) .GE. 1.
751 IF (wk_adv(
i) .AND. cstar(
i).GT.0.01)
THEN
752 omg(
i,kupper(
i)+1) = - rg*amdwn(
i,kupper(
i)+1)/sigmaw(
i)
753 $ + rg*amup(
i,kupper(
i)+1)/(1.-sigmaw(
i))
754 wdens0 = ( sigmaw(
i) / (4.*3.14) ) *
755 $ ( (1.-sigmaw(
i)) * omg(
i,kupper(
i)+1) /
756 $ ( (ph(
i,1)-pupper(
i)) * cstar(
i) ) ) **(2)
757 IF ( wdens(
i) .LE. wdens0*1.1 )
THEN
771 gfl(
i) = 2.*sqrt(3.14*wdens(
i)*sigmaw(
i))
772 sigmaw(
i)=amin1(sigmaw(
i),sigmaw_max)
779 IF (sigmaw(
i).ge.sigmaw_max)
THEN
780 death_rate(
i)=gfl(
i)*cstar(
i)/sigmaw(
i)
784 d_sigmaw(
i) = gfl(
i)*cstar(
i)*dtimesub
785 $ - death_rate(
i)*sigmaw(
i)*dtimesub
824 dp_deltomg(
i,1) = -(gfl(
i)*cstar(
i))/(sigmaw(
i) * (1-sigmaw(
i)))
830 IF( wk_adv(
i) .AND.
k .LE. ktop(
i))
THEN
831 dz(
i) = -(ph(
i,
k)-ph(
i,
k-1))/(rho(
i,
k-1)*rg)
833 dp_deltomg(
i,
k)= dp_deltomg(
i,1)
834 omg(
i,
k)= dp_deltomg(
i,1)*
z(
i)
841 dztop(
i)=-(ptop(
i)-ph(
i,ktop(
i)))/(rho(
i,ktop(
i))*rg)
842 ztop(
i) =
z(
i)+dztop(
i)
843 omgtop(
i)=dp_deltomg(
i,1)*ztop(
i)
853 omgtop(
i) = -rho(
i,ktop(
i))*rg*omgtop(
i)
854 dp_deltomg(
i,1) = omgtop(
i)/(ptop(
i)-ph(
i,1))
860 IF( wk_adv(
i) .AND.
k .LE. ktop(
i))
THEN
861 omg(
i,
k) = - rho(
i,
k)*rg*omg(
i,
k)
862 dp_deltomg(
i,
k) = dp_deltomg(
i,1)
870 IF ( wk_adv(
i) .AND. kupper(
i) .GT. ktop(
i))
THEN
871 omg(
i,kupper(
i)+1) = - rg*amdwn(
i,kupper(
i)+1)/sigmaw(
i)
872 $ + rg*amup(
i,kupper(
i)+1)/(1.-sigmaw(
i))
873 dp_deltomg(
i,kupper(
i)) = (omgtop(
i)-omg(
i,kupper(
i)+1))/
874 $ (ptop(
i)-pupper(
i))
887 IF( wk_adv(
i) .AND.
k .GT. ktop(
i) .AND.
k .LE. kupper(
i))
THEN
888 dp_deltomg(
i,
k) = dp_deltomg(
i,kupper(
i))
889 omg(
i,
k) = omgtop(
i)+(ph(
i,
k)-ptop(
i))*dp_deltomg(
i,kupper(
i))
906 omgbw(
i,
k) = omgb(
i,
k)+(1.-sigmaw(
i))*omg(
i,
k)
915 dp_omgbw(
i,
k) = (omgbw(
i,
k+1)-omgbw(
i,
k))/(ph(
i,
k+1)-ph(
i,
k))
927 IF (omgb(
i,
k) .GT. 0.) alpha_up(
i,
k) = 1.
936 rre1(
i) = 1.-sigmaw(
i)
947 IF( wk_adv(
i) .AND.
k .LE. kupper(
i)+1)
THEN
948 dth(
i,
k) = deltatw(
i,
k)/ppi(
i,
k)
949 th1(
i,
k) = the(
i,
k) - sigmaw(
i) *dth(
i,
k)
950 th2(
i,
k) = the(
i,
k) + (1.-sigmaw(
i))*dth(
i,
k)
951 q1(
i,
k) = qe(
i,
k) - sigmaw(
i) *deltaqw(
i,
k)
952 q2(
i,
k) = qe(
i,
k) + (1.-sigmaw(
i))*deltaqw(
i,
k)
970 IF( wk_adv(
i) .AND.
k .LE. kupper(
i)+1)
THEN
971 d_th1(
i,
k) = th1(
i,
k-1)-th1(
i,
k)
972 d_th2(
i,
k) = th2(
i,
k-1)-th2(
i,
k)
973 d_dth(
i,
k) = dth(
i,
k-1)-dth(
i,
k)
974 d_q1(
i,
k) = q1(
i,
k-1)-q1(
i,
k)
975 d_q2(
i,
k) = q2(
i,
k-1)-q2(
i,
k)
976 d_dq(
i,
k) = deltaqw(
i,
k-1)-deltaqw(
i,
k)
990 IF( wk_adv(
i) .AND.
k .LE. kupper(
i)+1)
THEN
991 omgbdth(
i,
k) = omgb(
i,
k)*( dth(
i,
k-1) - dth(
i,
k))
992 omgbdq(
i,
k) = omgb(
i,
k)*(deltaqw(
i,
k-1) - deltaqw(
i,
k))
1000 IF( wk_adv(
i) .AND.
k .LE. kupper(
i)-1)
THEN
1006 $ dtimesub/(ph(
i,
k)-ph(
i,
k+1))*(
1007 $ rrd1*omg(
i,
k )*sigmaw(
i) *d_th1(
i,
k)
1008 $ -rrd2*omg(
i,
k+1)*(1.-sigmaw(
i))*d_th2(
i,
k+1)
1009 $ -(1.-alpha_up(
i,
k))*omgbdth(
i,
k) - alpha_up(
i,
k+1)*
1010 $ omgbdth(
i,
k+1))*ppi(
i,
k)
1014 $ dtimesub/(ph(
i,
k)-ph(
i,
k+1))*(
1015 $ rrd1*omg(
i,
k )*sigmaw(
i) *d_q1(
i,
k)
1016 $ -rrd2*omg(
i,
k+1)*(1.-sigmaw(
i))*d_q2(
i,
k+1)
1017 $ -(1.-alpha_up(
i,
k))*omgbdq(
i,
k) - alpha_up(
i,
k+1)*
1027 d_te(
i,
k) = dtimesub*(
1028 $ ( rre1(
i)*omg(
i,
k )*sigmaw(
i) *d_th1(
i,
k)
1029 $ -rre2(
i)*omg(
i,
k+1)*(1.-sigmaw(
i))*d_th2(
i,
k+1) )
1030 $ /(ph(
i,
k)-ph(
i,
k+1))
1032 $ -sigmaw(
i)*(1.-sigmaw(
i))*dth(
i,
k)
1033 $ *(omg(
i,
k)-omg(
i,
k+1))/(ph(
i,
k)-ph(
i,
k+1))
1037 d_qe(
i,
k) = dtimesub*(
1038 $ ( rre1(
i)*omg(
i,
k )*sigmaw(
i) *d_q1(
i,
k)
1039 $ -rre2(
i)*omg(
i,
k+1)*(1.-sigmaw(
i))*d_q2(
i,
k+1) )
1040 $ /(ph(
i,
k)-ph(
i,
k+1))
1042 $ -sigmaw(
i)*(1.-sigmaw(
i))*deltaqw(
i,
k)
1043 $ *(omg(
i,
k)-omg(
i,
k+1))/(ph(
i,
k)-ph(
i,
k+1))
1047 ELSE IF(wk_adv(
i) .AND.
k .EQ. kupper(
i))
THEN
1048 d_te(
i,
k) = dtimesub*(
1049 $ ( rre1(
i)*omg(
i,
k )*sigmaw(
i) *d_th1(
i,
k)
1050 $ /(ph(
i,
k)-ph(
i,
k+1)))
1053 d_qe(
i,
k) = dtimesub*(
1054 $ ( rre1(
i)*omg(
i,
k )*sigmaw(
i) *d_q1(
i,
k)
1055 $ /(ph(
i,
k)-ph(
i,
k+1)))
1069 IF( wk_adv(
i) .AND.
k .LE. kupper(
i))
THEN
1076 crep(
i,
k)=crep_sol*(ph(
i,kupper(
i))-ph(
i,
k))/(ph(
i,kupper(
i))
1078 crep(
i,
k)=crep(
i,
k)+crep_upper*(ph(
i,1)-ph(
i,
k))/(p(
i,1)-
1098 dtke(
i,
k)=(dtdwn(
i,
k)/sigmaw(
i) - dta(
i,
k)/(1.-sigmaw(
i)))
1099 dqke(
i,
k)=(dqdwn(
i,
k)/sigmaw(
i) - dqa(
i,
k)/(1.-sigmaw(
i)))
1102 dtpbl(
i,
k)=(wdtpbl(
i,
k)/sigmaw(
i) - udtpbl(
i,
k)/(1.-sigmaw(
i)))
1103 dqpbl(
i,
k)=(wdqpbl(
i,
k)/sigmaw(
i) - udqpbl(
i,
k)/(1.-sigmaw(
i)))
1111 $ sigmaw(
i)*(1.-sigmaw(
i))*dp_deltomg(
i,
k)
1122 d_deltat_gw(
i,
k)=d_deltat_gw(
i,
k)-tgw(
i,
k)*deltatw(
i,
k)*
1125 ff(
i)=d_deltatw(
i,
k)/dtimesub
1138 IF (dtimesub*tgw(
i,
k).lt.1.e-10)
THEN
1139 d_deltatw(
i,
k) = dtimesub*
1140 $ (ff(
i)+dtke(
i,
k)+dtpbl(
i,
k)
1142 $ - entr(
i,
k)*deltatw(
i,
k)/sigmaw(
i)
1143 $ - (death_rate(
i)*sigmaw(
i)+
detr(
i,
k))*deltatw(
i,
k)
1146 $ -tgw(
i,
k)*deltatw(
i,
k))
1148 d_deltatw(
i,
k) = 1/tgw(
i,
k)*(1-exp(-dtimesub*
1150 $ (ff(
i)+dtke(
i,
k)+dtpbl(
i,
k)
1152 $ - entr(
i,
k)*deltatw(
i,
k)/sigmaw(
i)
1153 $ - (death_rate(
i)*sigmaw(
i)+
detr(
i,
k))*deltatw(
i,
k)
1156 $ -tgw(
i,
k)*deltatw(
i,
k))
1159 dth(
i,
k) = deltatw(
i,
k)/ppi(
i,
k)
1161 gg(
i)=d_deltaqw(
i,
k)/dtimesub
1163 d_deltaqw(
i,
k) = dtimesub*(gg(
i)+ dqke(
i,
k)+dqpbl(
i,
k)
1165 $ - entr(
i,
k)*deltaqw(
i,
k)/sigmaw(
i)
1166 $ - (death_rate(
i)*sigmaw(
i)+
detr(
i,
k))*deltaqw(
i,
k)
1182 $ d_deltaqw,sigmaw,d_sigmaw,
alpha)
1192 IF( wk_adv(
i) .AND.
k .LE. kupper(
i))
THEN
1212 IF( wk_adv(
i) .AND.
k .LE. kupper(
i))
THEN
1213 dtls(
i,
k)=dtls(
i,
k)+d_te(
i,
k)
1214 dqls(
i,
k)=dqls(
i,
k)+d_qe(
i,
k)
1216 d_deltatw2(
i,
k)=d_deltatw2(
i,
k)+d_deltatw(
i,
k)
1217 d_deltaqw2(
i,
k)=d_deltaqw2(
i,
k)+d_deltaqw(
i,
k)
1224 IF( wk_adv(
i) .AND.
k .LE. kupper(
i))
THEN
1225 te(
i,
k) = te0(
i,
k) + dtls(
i,
k)
1226 qe(
i,
k) = qe0(
i,
k) + dqls(
i,
k)
1227 the(
i,
k) = te(
i,
k)/ppi(
i,
k)
1228 deltatw(
i,
k) = deltatw(
i,
k)+d_deltatw(
i,
k)
1229 deltaqw(
i,
k) = deltaqw(
i,
k)+d_deltaqw(
i,
k)
1230 dth(
i,
k) = deltatw(
i,
k)/ppi(
i,
k)
1238 sigmaw(
i) = sigmaw(
i)+d_sigmaw(
i)
1249 IF ( wk_adv(
i))
THEN
1250 ptop_provis(
i)=ph(
i,1)
1256 IF ( wk_adv(
i) .AND.
1257 $ ptop_provis(
i) .EQ. ph(
i,1) .AND.
1258 $ dth(
i,
k) .GT. -delta_t_min .and.
1259 $ dth(
i,
k-1).LT. -delta_t_min)
THEN
1260 ptop_provis(
i) = ((dth(
i,
k)+delta_t_min)*p(
i,
k-1)
1261 $ - (dth(
i,
k-1)+delta_t_min)*p(
i,
k)) /(dth(
i,
k)
1272 dthmin(
i) = -delta_t_min
1279 IF ( wk_adv(
i))
THEN
1280 dz(
i) = -(amax1(ph(
i,
k+1),ptop_provis(
i))-ph(
i,
k))/(rho(
i,
k)*rg)
1281 IF (dz(
i) .gt. 0)
THEN
1283 sum_dth(
i) = sum_dth(
i) + dth(
i,
k)*dz(
i)
1284 dthmin(
i) = amin1(dthmin(
i),dth(
i,
k))
1293 IF ( wk_adv(
i))
THEN
1294 hw(
i) = 2.*sum_dth(
i)/amin1(dthmin(
i),-0.5)
1295 hw(
i) = amax1(hwmin,hw(
i))
1310 IF ( wk_adv(
i))
THEN
1311 dz(
i) = amin1(-(ph(
i,
k+1)-ph(
i,
k))/(rho(
i,
k)*rg),hw(
i)-
z(
i))
1312 IF (dz(
i) .gt. 0)
THEN
1314 ptop(
i) = ph(
i,
k)-rho(
i,
k)*rg*dz(
i)
1324 IF ( wk_adv(
i))
THEN
1332 IF ( wk_adv(
i) .AND.
1333 $
k .LE. ktop(
i) .AND.
1334 $ ptop_new(
i) .EQ. ptop(
i) .AND.
1335 $ dth(
i,
k) .GT. -delta_t_min .and.
1336 $ dth(
i,
k-1).LT. -delta_t_min)
THEN
1337 ptop_new(
i) = ((dth(
i,
k)+delta_t_min)*p(
i,
k-1)
1338 $ - (dth(
i,
k-1)+delta_t_min)*p(
i,
k)) /(dth(
i,
k)
1346 IF ( wk_adv(
i))
THEN
1347 ptop(
i) = ptop_new(
i)
1354 IF (ph(
i,
k+1) .LT. ptop(
i)) ktop(
i)=
k
1363 IF ( wk_adv(
i) .AND.
k .GE. kupper(
i))
THEN
1405 sum_thvu(
i) = thu(
i,1)*(1.+
eps*qu(
i,1))*dz(
i)
1413 dz(
i) = -(max(ph(
i,
k+1),ptop(
i))-ph(
i,
k))/(rho(
i,
k)*rg)
1414 IF (dz(
i) .GT. 0)
THEN
1416 sum_thu(
i) = sum_thu(
i) + thu(
i,
k)*dz(
i)
1417 sum_tu(
i) = sum_tu(
i) + tu(
i,
k)*dz(
i)
1418 sum_qu(
i) = sum_qu(
i) + qu(
i,
k)*dz(
i)
1419 sum_thvu(
i) = sum_thvu(
i) + thu(
i,
k)*(1.+
eps*qu(
i,
k))*dz(
i)
1420 sum_dth(
i) = sum_dth(
i) + dth(
i,
k)*dz(
i)
1421 sum_dq(
i) = sum_dq(
i) + deltaqw(
i,
k)*dz(
i)
1422 sum_rho(
i) = sum_rho(
i) + rhow(
i,
k)*dz(
i)
1423 sum_dtdwn(
i) = sum_dtdwn(
i) + dtdwn(
i,
k)*dz(
i)
1424 sum_dqdwn(
i) = sum_dqdwn(
i) + dqdwn(
i,
k)*dz(
i)
1446 av_thu(
i) = sum_thu(
i)/hw0(
i)
1447 av_tu(
i) = sum_tu(
i)/hw0(
i)
1448 av_qu(
i) = sum_qu(
i)/hw0(
i)
1449 av_thvu(
i) = sum_thvu(
i)/hw0(
i)
1450 av_dth(
i) = sum_dth(
i)/hw0(
i)
1451 av_dq(
i) = sum_dq(
i)/hw0(
i)
1452 av_rho(
i) = sum_rho(
i)/hw0(
i)
1453 av_dtdwn(
i) = sum_dtdwn(
i)/hw0(
i)
1454 av_dqdwn(
i) = sum_dqdwn(
i)/hw0(
i)
1456 wape(
i) = - rg*hw0(
i)*(av_dth(
i)
1457 $ +
eps*(av_thu(
i)*av_dq(
i)+av_dth(
i)*av_qu(
i)+av_dth(
i)*
1458 $ av_dq(
i) ))/av_thvu(
i)
1467 IF ( wape(
i) .LT. 0.)
THEN
1478 IF ( wape(
i) .LT. 0.)
THEN
1482 sigmaw(
i) = max(sigmad,sigd_con(
i))
1486 cstar(
i) = stark*sqrt(2.*wape(
i))
1501 IF ( ok_qx_qw(
i) .AND.
k .LE. kupper(
i))
THEN
1507 d_deltat_gw(
i,
k) = d_deltat_gw(
i,
k)/
dtime
1525 if (ok_qx_qw(
i))
then
1555 if (ok_qx_qw(
i))
then
1557 rho(
i,
k) = p(
i,
k)/(rd*te(
i,
k))
1559 rhoh(
i,
k) = ph(
i,
k)/(rd*te(
i,
k))
1562 rhoh(
i,
k) = ph(
i,
k)*2./(rd*(te(
i,
k)+te(
i,
k-1)))
1563 zhh(
i,
k)=(ph(
i,
k)-ph(
i,
k-1))/(-rhoh(
i,
k)*rg)+zhh(
i,
k-1)
1565 the(
i,
k) = te(
i,
k)/ppi(
i,
k)
1566 thu(
i,
k) = (te(
i,
k) - deltatw(
i,
k)*sigmaw(
i))/ppi(
i,
k)
1567 tu(
i,
k) = te(
i,
k) - deltatw(
i,
k)*sigmaw(
i)
1568 qu(
i,
k) = qe(
i,
k) - deltaqw(
i,
k)*sigmaw(
i)
1569 rhow(
i,
k) = p(
i,
k)/(rd*(te(
i,
k)+deltatw(
i,
k)))
1570 dth(
i,
k) = deltatw(
i,
k)/ppi(
i,
k)
1582 if (ok_qx_qw(
i))
then
1586 sum_thvu(
i) = thu(
i,1)*(1.+
eps*qu(
i,1))*dz(
i)
1594 if (ok_qx_qw(
i))
then
1596 dz(
i) = -(amax1(ph(
i,
k+1),ptop(
i))-ph(
i,
k))/(rho(
i,
k)*rg)
1597 IF (dz(
i) .GT. 0)
THEN
1599 sum_thu(
i) = sum_thu(
i) + thu(
i,
k)*dz(
i)
1600 sum_tu(
i) = sum_tu(
i) + tu(
i,
k)*dz(
i)
1601 sum_qu(
i) = sum_qu(
i) + qu(
i,
k)*dz(
i)
1602 sum_thvu(
i) = sum_thvu(
i) + thu(
i,
k)*(1.+
eps*qu(
i,
k))*dz(
i)
1603 sum_dth(
i) = sum_dth(
i) + dth(
i,
k)*dz(
i)
1604 sum_dq(
i) = sum_dq(
i) + deltaqw(
i,
k)*dz(
i)
1605 sum_rho(
i) = sum_rho(
i) + rhow(
i,
k)*dz(
i)
1606 sum_dtdwn(
i) = sum_dtdwn(
i) + dtdwn(
i,
k)*dz(
i)
1607 sum_dqdwn(
i) = sum_dqdwn(
i) + dqdwn(
i,
k)*dz(
i)
1615 if (ok_qx_qw(
i))
then
1628 if (ok_qx_qw(
i))
then
1630 av_thu(
i) = sum_thu(
i)/hw0(
i)
1631 av_tu(
i) = sum_tu(
i)/hw0(
i)
1632 av_qu(
i) = sum_qu(
i)/hw0(
i)
1633 av_thvu(
i) = sum_thvu(
i)/hw0(
i)
1634 av_dth(
i) = sum_dth(
i)/hw0(
i)
1635 av_dq(
i) = sum_dq(
i)/hw0(
i)
1636 av_rho(
i) = sum_rho(
i)/hw0(
i)
1637 av_dtdwn(
i) = sum_dtdwn(
i)/hw0(
i)
1638 av_dqdwn(
i) = sum_dqdwn(
i)/hw0(
i)
1640 wape2(
i) = - rg*hw0(
i)*(av_dth(
i)
1641 $ +
eps*(av_thu(
i)*av_dq(
i)+av_dth(
i)*av_qu(
i)
1642 $ + av_dth(
i)*av_dq(
i) ))/av_thvu(
i)
1654 if (ok_qx_qw(
i) .AND. wape2(
i) .LT. 0.)
then
1666 if (ok_qx_qw(
i))
then
1668 IF ( wape2(
i) .LT. 0.)
THEN
1672 sigmaw(
i) = amax1(sigmad,sigd_con(
i))
1677 cstar2(
i) = stark*sqrt(2.*wape2(
i))
1685 if (ok_qx_qw(
i))
then
1693 if (ok_qx_qw(
i))
then
1695 IF (ktopw(
i) .gt. 0 .and. gwake(
i))
then
1703 fip(
i) = 0.5*rho(
i,ktopw(
i))*cstar2(
i)**3*heff(
i)*2*
1704 $ sqrt(sigmaw(
i)*wdens(
i)*3.14)
1705 fip(
i) = alpk * fip(
i)
1727 IF ( ((wape(
i).ge.wape2(
i)).and.(wape2(
i).le.1.0)).or.
1728 $ (ktopw(
i).le.2) .OR.
1729 $ .not. ok_qx_qw(
i) )
THEN
1741 IF ( ((wape(
i).ge.wape2(
i)).and.(wape2(
i).le.1.0)).or.
1742 $ (ktopw(
i).le.2) .OR.
1743 $ .not. ok_qx_qw(
i) )
THEN
1762 $ deltaqw,d_deltaqw,sigmaw,d_sigmaw,
alpha)
1771 REAL qe(nlon,
nl),d_qe(nlon,
nl)
1772 REAL deltaqw(nlon,
nl),d_deltaqw(nlon,
nl)
1773 REAL sigmaw(nlon),d_sigmaw(nlon)
1774 LOGICAL wk_adv(nlon)
1781 REAL x,a,b,
c,discrim
1788 IF ((deltaqw(
i,
k)+d_deltaqw(
i,
k)).ge.0.)
then
1797 x = qe(
i,
k)+(zeta(
i,
k)-sigmaw(
i))*deltaqw(
i,
k)
1798 $ + d_qe(
i,
k)+(zeta(
i,
k)-sigmaw(
i))*d_deltaqw(
i,
k)
1799 $ - d_sigmaw(
i)*(deltaqw(
i,
k)+d_deltaqw(
i,
k))
1800 a = -d_sigmaw(
i)*d_deltaqw(
i,
k)
1801 b = d_qe(
i,
k)+(zeta(
i,
k)-sigmaw(
i))*d_deltaqw(
i,
k)
1802 $ - deltaqw(
i,
k)*d_sigmaw(
i)
1803 c = qe(
i,
k)+(zeta(
i,
k)-sigmaw(
i))*deltaqw(
i,
k)+epsilon
1804 discrim = b*b-4.*a*
c
1806 IF (a+b .GE. 0.)
THEN
1813 alpha1(
i)=0.9*min( (2.*
c)/(-b+sqrt(discrim)),
1814 $ (-b+sqrt(discrim))/(2.*a) )
1815 ELSE IF (a .eq. 0.)
then
1819 alpha1(
i)=0.9*max( (2.*
c)/(-b+sqrt(discrim)),
1820 $ (-b+sqrt(discrim))/(2.*a) )
1834 : ,dtdwn,dqdwn,amdwn,amup,dta,dqa
1835 : ,wdtpbl,wdqpbl,udtpbl,udqpbl
1836 o ,deltatw,deltaqw,dth,hw,sigmaw,wape,fip,gfl
1838 o ,ktopw,omgbdth,dp_omgb,wdens
1842 o ,omg,dp_deltomg,spread
1843 o ,cstar,d_deltat_gw
1844 o ,d_deltatw2,d_deltaqw2)
1944 #include "dimensions.h"
1947 #include "cvthermo.h"
1948 #include "iniprint.h"
1973 REAL d_deltatgw(
klev)
1974 REAL d_deltatw2(
klev), d_deltaqw2(
klev)
1976 REAL dp_omgb(
klev), dp_deltomg(
klev)
1977 REAL d_deltat_gw(
klev)
1978 REAL hw, sigmaw, wape, fip, gfl, cstar
2000 REAL sigmaw0, sigmaw1
2009 REAL ptop_provis, ptop, ptop_new
2013 INTEGER ktop, kupper
2018 REAL sum_thu, sum_tu, sum_qu,sum_thvu
2019 REAL sum_dq, sum_rho
2020 REAL sum_dtdwn, sum_dqdwn
2021 REAL av_thu, av_tu, av_qu, av_thvu
2022 REAL av_dth, av_dq, av_rho
2023 REAL av_dtdwn, av_dqdwn
2026 REAL rhow_moyen(
klev)
2028 REAL epaisseur1(
klev), epaisseur2(
klev)
2032 REAL d_deltatw(
klev), d_deltaqw(
klev)
2034 REAL omgbw(
klev+1), omgtop
2039 REAL rre1, rre2, rrd1, rrd2
2046 REAL wape2, cstar2, heff
2049 REAL crep_upper, crep_sol
2060 DATA sigmad, hwmin /.02,10./
2079 wdens = 1.0/(alon**2)
2100 deltatw0(
k) = deltatw(
k)
2101 deltaqw0(
k)= deltaqw(
k)
2114 sigmaw = max(sigmaw,sigd_con)
2115 sigmaw = max(sigmaw,sigmad)
2116 sigmaw = min(sigmaw,0.99)
2159 rho(
k) = p(
k)/(rd*te(
k))
2161 rhoh(
k) = ph(
k)/(rd*te(
k))
2164 rhoh(
k) = ph(
k)*2./(rd*(te(
k)+te(
k-1)))
2165 zhh(
k)=(ph(
k)-ph(
k-1))/(-rhoh(
k)*rg)+zhh(
k-1)
2167 the(
k) = te(
k)/ppi(
k)
2168 thu(
k) = (te(
k) - deltatw(
k)*sigmaw)/ppi(
k)
2169 tu(
k) = te(
k) - deltatw(
k)*sigmaw
2170 qu(
k) = qe(
k) - deltaqw(
k)*sigmaw
2171 rhow(
k) = p(
k)/(rd*(te(
k)+deltatw(
k)))
2172 dth(
k) = deltatw(
k)/ppi(
k)
2173 ll = (1-sqrt(sigmaw))/sqrt(wdens)
2180 n2(
k)=max(0.,-rg**2/the(
k)*rho(
k)*(the(
k+1)-the(
k-1))
2183 zh(
k)=(zhh(
k)+zhh(
k+1))/2
2185 cgw(
k)=sqrt(n2(
k))*zh(
k)
2186 tgw(
k)=coefgw*cgw(
k)/
ll
2202 epaisseur1(1)= -(ph(2)-ph(1))/(rho(1)*rg)+1.
2203 epaisseur2(1)= -(ph(2)-ph(1))/(rho(1)*rg)+1.
2204 rhow_moyen(1) = rhow(1)
2207 epaisseur1(
k)= -(ph(
k+1)-ph(
k))/(rho(
k)*rg) +1.
2208 epaisseur2(
k)=epaisseur2(
k-1)+epaisseur1(
k)
2209 rhow_moyen(
k) = (rhow_moyen(
k-1)*epaisseur2(
k-1)+
2210 $ rhow(
k)*epaisseur1(
k))/epaisseur2(
k)
2229 IF (dth(
k) .GT. -delta_t_min .and.
2230 $ dth(
k-1).LT. -delta_t_min)
THEN
2231 ptop_provis = ((dth(
k)+delta_t_min)*p(
k-1)
2232 $ - (dth(
k-1)+delta_t_min)*p(
k)) /(dth(
k) - dth(
k-1))
2241 dthmin = -delta_t_min
2245 dz = -(max(ph(
k+1),ptop_provis)-ph(
k))/(rho(
k)*rg)
2246 IF (dz .le. 0) go to 40
2248 sum_dth = sum_dth + dth(
k)*dz
2249 dthmin = min(dthmin,dth(
k))
2255 hw0 = 2.*sum_dth/min(dthmin,-0.5)
2256 hw0 = max(hwmin,hw0)
2264 dz = min(-(ph(
k+1)-ph(
k))/(rho(
k)*rg),hw0-
z)
2265 IF (dz .le. 0) go to 45
2267 ptop = ph(
k)-rho(
k)*rg*dz
2275 IF (ph(
k+1) .lt. ptop) ktop=
k
2276 IF (ph(
k+1) .lt. pupper) kupper=
k
2283 IF (dth(
k) .GT. -delta_t_min .and.
2284 $ dth(
k-1).LT. -delta_t_min)
THEN
2285 ptop_new = ((dth(
k)+delta_t_min)*p(
k-1)
2286 $ - (dth(
k-1)+delta_t_min)*p(
k)) /(dth(
k) - dth(
k-1))
2295 IF (ph(
k+1) .lt. ptop) ktop=
k
2311 dp_omgb(
k) = (omgb(
k+1) - omgb(
k))/(ph(
k+1)-ph(
k))
2322 sum_thvu = thu(1)*(1.+
eps*qu(1))*dz
2326 dz = -(max(ph(
k+1),ptop)-ph(
k))/(rho(
k)*rg)
2327 IF (dz .LE. 0) go to 50
2329 sum_thu = sum_thu + thu(
k)*dz
2330 sum_tu = sum_tu + tu(
k)*dz
2331 sum_qu = sum_qu + qu(
k)*dz
2332 sum_thvu = sum_thvu + thu(
k)*(1.+
eps*qu(
k))*dz
2333 sum_dth = sum_dth + dth(
k)*dz
2334 sum_dq = sum_dq + deltaqw(
k)*dz
2335 sum_rho = sum_rho + rhow(
k)*dz
2336 sum_dtdwn = sum_dtdwn + dtdwn(
k)*dz
2337 sum_dqdwn = sum_dqdwn + dqdwn(
k)*dz
2348 av_thu = sum_thu/hw0
2351 av_thvu = sum_thvu/hw0
2353 av_dth = sum_dth/hw0
2355 av_rho = sum_rho/hw0
2356 av_dtdwn = sum_dtdwn/hw0
2357 av_dqdwn = sum_dqdwn/hw0
2359 wape = - rg*hw0*(av_dth
2360 $ +
eps*(av_thu*av_dq+av_dth*av_qu+av_dth*av_dq ))/av_thvu
2367 IF ( wape .LT. 0.)
THEN
2371 sigmaw = max(sigmad,sigd_con)
2380 cstar = stark*sqrt(2.*wape)
2392 DO isubstep = 1,nsub
2400 gfl = 2.*sqrt(3.14*wdens*sigmaw)
2402 sigmaw =sigmaw + gfl*cstar*dtimesub
2403 sigmaw =min(sigmaw,0.99)
2411 dp_deltomg(1:
klev)=0.
2415 dp_deltomg(1) = -(gfl*cstar)/(sigmaw * (1-sigmaw))
2418 dz = -(ph(
k)-ph(
k-1))/(rho(
k-1)*rg)
2420 dp_deltomg(
k)= dp_deltomg(1)
2421 omg(
k)= dp_deltomg(1)*
z
2424 dztop=-(ptop-ph(ktop))/(rho(ktop)*rg)
2426 omgtop=dp_deltomg(1)*ztop
2431 omgtop = -rho(ktop)*rg*omgtop
2432 dp_deltomg(1) = omgtop/(ptop-ph(1))
2435 omg(
k) = - rho(
k)*rg*omg(
k)
2436 dp_deltomg(
k) = dp_deltomg(1)
2441 IF (kupper .GT. ktop)
THEN
2442 omg(kupper+1) = - rg*amdwn(kupper+1)/sigmaw
2443 $ + rg*amup(kupper+1)/(1.-sigmaw)
2444 dp_deltomg(kupper) = (omgtop-omg(kupper+1))/(ptop-pupper)
2446 dp_deltomg(
k) = dp_deltomg(kupper)
2447 omg(
k) = omgtop+(ph(
k)-ptop)*dp_deltomg(kupper)
2454 omgbw(
k) = omgb(
k)+(1.-sigmaw)*omg(
k)
2460 dp_omgbw(
k) = (omgbw(
k+1)-omgbw(
k))/(ph(
k+1)-ph(
k))
2470 IF (omgb(
k) .GT. 0.) alpha_up(
k) = 1.
2483 dth(
k) = deltatw(
k)/ppi(
k)
2484 th1(
k) = the(
k) - sigmaw *dth(
k)
2485 th2(
k) = the(
k) + (1.-sigmaw)*dth(
k)
2486 q1(
k) = qe(
k) - sigmaw *deltaqw(
k)
2487 q2(
k) = qe(
k) + (1.-sigmaw)*deltaqw(
k)
2498 d_th1(
k) = th1(
k-1)-th1(
k)
2499 d_th2(
k) = th2(
k-1)-th2(
k)
2500 d_dth(
k) = dth(
k-1)-dth(
k)
2501 d_q1(
k) = q1(
k-1)-q1(
k)
2502 d_q2(
k) = q2(
k-1)-q2(
k)
2503 d_dq(
k) = deltaqw(
k-1)-deltaqw(
k)
2510 omgbdth(
k) = omgb(
k)*( dth(
k-1) - dth(
k))
2511 omgbdq(
k) = omgb(
k)*(deltaqw(
k-1) - deltaqw(
k))
2522 $ dtimesub/(ph(
k)-ph(
k+1))*(
2523 $ rrd1*omg(
k )*sigmaw *d_th1(
k)
2524 $ -rrd2*omg(
k+1)*(1.-sigmaw)*d_th2(
k+1)
2525 $ -(1.-alpha_up(
k))*omgbdth(
k) - alpha_up(
k+1)*omgbdth(
k+1)
2530 $ dtimesub/(ph(
k)-ph(
k+1))*(
2531 $ rrd1*omg(
k )*sigmaw *d_q1(
k)
2532 $ -rrd2*omg(
k+1)*(1.-sigmaw)*d_q2(
k+1)
2533 $ -(1.-alpha_up(
k))*omgbdq(
k) - alpha_up(
k+1)*omgbdq(
k+1)
2541 $ ( rre1*omg(
k )*sigmaw *d_th1(
k)
2542 $ -rre2*omg(
k+1)*(1.-sigmaw)*d_th2(
k+1) )
2544 $ -sigmaw*(1.-sigmaw)*dth(
k)*dp_deltomg(
k)
2550 $ ( rre1*omg(
k )*sigmaw *d_q1(
k)
2551 $ -rre2*omg(
k+1)*(1.-sigmaw)*d_q2(
k+1) )
2553 $ -sigmaw*(1.-sigmaw)*deltaqw(
k)*dp_deltomg(
k)
2567 crep(
k)=crep_sol*(ph(kupper)-ph(
k))/(ph(kupper)-ph(1))
2568 crep(
k)=crep(
k)+crep_upper*(ph(1)-ph(
k))/(p(1)-ph(kupper))
2587 dtke(
k)=(dtdwn(
k)/sigmaw - dta(
k)/(1.-sigmaw))
2588 dqke(
k)=(dqdwn(
k)/sigmaw - dqa(
k)/(1.-sigmaw))
2592 dtpbl(
k)=(wdtpbl(
k)/sigmaw - udtpbl(
k)/(1.-sigmaw))
2593 dqpbl(
k)=(wdqpbl(
k)/sigmaw - udqpbl(
k)/(1.-sigmaw))
2595 spread(
k) = (1.-sigmaw)*dp_deltomg(
k)+gfl*cstar/sigmaw
2601 d_deltat_gw(
k)=d_deltat_gw(
k)-tgw(
k)*deltatw(
k)* dtimesub
2603 ff=d_deltatw(
k)/dtimesub
2616 IF (dtimesub*tgw(
k).lt.1.e-10)
THEN
2617 deltatw(
k) = deltatw(
k)+dtimesub*
2618 $ (ff+dtke(
k)+dtpbl(
k)
2619 $ - spread(
k)*deltatw(
k)-tgw(
k)*deltatw(
k))
2621 deltatw(
k) = deltatw(
k)+1/tgw(
k)*(1-exp(-dtimesub*tgw(
k)))*
2622 $ (ff+dtke(
k)+dtpbl(
k)
2623 $ - spread(
k)*deltatw(
k)-tgw(
k)*deltatw(
k))
2626 dth(
k) = deltatw(
k)/ppi(
k)
2628 gg=d_deltaqw(
k)/dtimesub
2630 deltaqw(
k) = deltaqw(
k) +
2631 $ dtimesub*(gg+ dqke(
k)+dqpbl(
k) - spread(
k)*deltaqw(
k))
2633 d_deltatw2(
k)=d_deltatw2(
k)+d_deltatw(
k)
2634 d_deltaqw2(
k)=d_deltaqw2(
k)+d_deltaqw(
k)
2640 te(
k) = te0(
k) + dtls(
k)
2641 qe(
k) = qe0(
k) + dqls(
k)
2642 the(
k) = te(
k)/ppi(
k)
2653 IF (dth(
k) .GT. -delta_t_min .and.
2654 $ dth(
k-1).LT. -delta_t_min)
THEN
2655 ptop_provis = ((dth(
k)+delta_t_min)*p(
k-1)
2656 $ - (dth(
k-1)+delta_t_min)*p(
k)) /(dth(
k) - dth(
k-1))
2665 dthmin = -delta_t_min
2669 dz = -(max(ph(
k+1),ptop_provis)-ph(
k))/(rho(
k)*rg)
2670 IF (dz .le. 0) go to 70
2672 sum_dth = sum_dth + dth(
k)*dz
2673 dthmin = min(dthmin,dth(
k))
2679 hw = 2.*sum_dth/min(dthmin,-0.5)
2688 dz = min(-(ph(
k+1)-ph(
k))/(rho(
k)*rg),hw-
z)
2689 IF (dz .le. 0) go to 75
2691 ptop = ph(
k)-rho(
k)*rg*dz
2701 IF (dth(
k) .GT. -delta_t_min .and.
2702 $ dth(
k-1).LT. -delta_t_min)
THEN
2703 ptop_new = ((dth(
k)+delta_t_min)*p(
k-1)
2704 $ - (dth(
k-1)+delta_t_min)*p(
k)) /(dth(
k) - dth(
k-1))
2713 IF (ph(
k+1) .LT. ptop) ktop=
k
2732 d_deltatw2(
k)=d_deltatw2(
k)/
dtime
2733 d_deltaqw2(
k)=d_deltaqw2(
k)/
dtime
2734 d_deltat_gw(
k) = d_deltat_gw(
k)/
dtime
2765 rho(
k) = p(
k)/(rd*te(
k))
2767 rhoh(
k) = ph(
k)/(rd*te(
k))
2770 rhoh(
k) = ph(
k)*2./(rd*(te(
k)+te(
k-1)))
2771 zhh(
k)=(ph(
k)-ph(
k-1))/(-rhoh(
k)*rg)+zhh(
k-1)
2773 the(
k) = te(
k)/ppi(
k)
2774 thu(
k) = (te(
k) - deltatw(
k)*sigmaw)/ppi(
k)
2775 tu(
k) = te(
k) - deltatw(
k)*sigmaw
2776 qu(
k) = qe(
k) - deltaqw(
k)*sigmaw
2777 rhow(
k) = p(
k)/(rd*(te(
k)+deltatw(
k)))
2778 dth(
k) = deltatw(
k)/ppi(
k)
2789 sum_thvu = thu(1)*(1.+
eps*qu(1))*dz
2793 dz = -(max(ph(
k+1),ptop)-ph(
k))/(rho(
k)*rg)
2795 IF (dz .LE. 0) go to 51
2797 sum_thu = sum_thu + thu(
k)*dz
2798 sum_tu = sum_tu + tu(
k)*dz
2799 sum_qu = sum_qu + qu(
k)*dz
2800 sum_thvu = sum_thvu + thu(
k)*(1.+
eps*qu(
k))*dz
2801 sum_dth = sum_dth + dth(
k)*dz
2802 sum_dq = sum_dq + deltaqw(
k)*dz
2803 sum_rho = sum_rho + rhow(
k)*dz
2804 sum_dtdwn = sum_dtdwn + dtdwn(
k)*dz
2805 sum_dqdwn = sum_dqdwn + dqdwn(
k)*dz
2816 av_thu = sum_thu/hw0
2819 av_thvu = sum_thvu/hw0
2820 av_dth = sum_dth/hw0
2822 av_rho = sum_rho/hw0
2823 av_dtdwn = sum_dtdwn/hw0
2824 av_dqdwn = sum_dqdwn/hw0
2826 wape2 = - rg*hw0*(av_dth
2827 $ +
eps*(av_thu*av_dq+av_dth*av_qu+av_dth*av_dq ))/av_thvu
2835 IF ( wape2 .LT. 0.)
THEN
2839 sigmaw = max(sigmad,sigd_con)
2848 cstar2 = stark*sqrt(2.*wape2)
2854 IF (ktopw .gt. 0)
then
2862 fip = 0.5*rho(ktopw)*cstar2**3*heff*2*sqrt(sigmaw*wdens*3.14)
2876 IF ((sigmaw.GT.0.9).or.
2877 . ((wape.ge.wape2).and.(wape2.le.1.0)).or.(ktopw.le.2))
THEN