234subroutine fv_sat_adj_run(mdt, zvir, is, ie, isd, ied, isc1, iec1, isc2, iec2, kmp, km, kmdelz, js, je, jsd, jed, jsc1, jec1, jsc2, jec2, &
235 ng, hydrostatic, fast_mp_consv, te0_2d, te0, ngas, qvi, qv, ql, qi, qr, &
236 qs, qg, hs, peln, delz, delp, pt, pkz, q_con, akap, cappa, area, dtdt, &
237 out_dt, last_step, do_qa, qa, &
238 nthreads, errmsg, errflg)
243 real(kind=kind_dyn),
intent(in) :: mdt
244 real(kind=kind_dyn),
intent(in) :: zvir
245 integer,
intent(in) :: is
246 integer,
intent(in) :: ie
247 integer,
intent(in) :: isd
248 integer,
intent(in) :: ied
249 integer,
intent(in) :: isc1
250 integer,
intent(in) :: iec1
251 integer,
intent(in) :: isc2
252 integer,
intent(in) :: iec2
253 integer,
intent(in) :: kmp
254 integer,
intent(in) :: km
255 integer,
intent(in) :: kmdelz
256 integer,
intent(in) :: js
257 integer,
intent(in) :: je
258 integer,
intent(in) :: jsd
259 integer,
intent(in) :: jed
260 integer,
intent(in) :: jsc1
261 integer,
intent(in) :: jec1
262 integer,
intent(in) :: jsc2
263 integer,
intent(in) :: jec2
264 integer,
intent(in) :: ng
265 logical,
intent(in) :: hydrostatic
266 logical,
intent(in) :: fast_mp_consv
267 real(kind=kind_dyn),
intent(inout) :: te0_2d(is:ie, js:je)
268 real(kind=kind_dyn),
intent( out) :: te0(isd:ied, jsd:jed, 1:km)
270 integer,
intent(in) :: ngas
272 real(kind=kind_dyn),
intent(inout) :: qvi(isd:ied, jsd:jed, 1:km, 1:ngas)
274 real(kind=kind_dyn),
intent(inout) :: qvi(:,:,:,:)
276 real(kind=kind_dyn),
intent(inout) :: qv(isd:ied, jsd:jed, 1:km)
277 real(kind=kind_dyn),
intent(inout) :: ql(isd:ied, jsd:jed, 1:km)
278 real(kind=kind_dyn),
intent(inout) :: qi(isd:ied, jsd:jed, 1:km)
279 real(kind=kind_dyn),
intent(inout) :: qr(isd:ied, jsd:jed, 1:km)
280 real(kind=kind_dyn),
intent(inout) :: qs(isd:ied, jsd:jed, 1:km)
281 real(kind=kind_dyn),
intent(inout) :: qg(isd:ied, jsd:jed, 1:km)
282 real(kind=kind_dyn),
intent(in) :: hs(isd:ied, jsd:jed)
283 real(kind=kind_dyn),
intent(in) :: peln(is:ie, 1:km+1, js:je)
285 real(kind=kind_dyn),
intent(in) :: delz(is:ie, js:je, 1:kmdelz)
286 real(kind=kind_dyn),
intent(in) :: delp(isd:ied, jsd:jed, 1:km)
287 real(kind=kind_dyn),
intent(inout) :: pt(isd:ied, jsd:jed, 1:km)
288 real(kind=kind_dyn),
intent(inout) :: pkz(is:ie, js:je, 1:km)
290 real(kind=kind_dyn),
intent(inout) :: q_con(isd:ied, jsd:jed, 1:km)
292 real(kind=kind_dyn),
intent(inout) :: q_con(isd:isd, jsd:jsd, 1)
294 real(kind=kind_dyn),
intent(in) :: akap
296 real(kind=kind_dyn),
intent(inout) :: cappa(isd:ied, jsd:jed, 1:km)
298 real(kind=kind_dyn),
intent(inout) :: cappa(isd:ied, jsd:jed, 1)
305 real(kind_grid),
intent(in) :: area(isd:ied, jsd:jed)
306 real(kind=kind_dyn),
intent(inout) :: dtdt(is:ie, js:je, 1:km)
307 logical,
intent(in) :: out_dt
308 logical,
intent(in) :: last_step
309 logical,
intent(in) :: do_qa
310 real(kind=kind_dyn),
intent( out) :: qa(isd:ied, jsd:jed, 1:km)
311 integer,
intent(in) :: nthreads
312 character(len=*),
intent( out) :: errmsg
313 integer,
intent( out) :: errflg
316 real(kind=kind_dyn),
dimension(is:ie,js:je) :: dpln
341 dpln(i,j) = peln(i,k+1,j) - peln(i,k,j)
344 if (hydrostatic)
then
349 call fv_sat_adj_work(abs(mdt), zvir, is, ie, js, je, ng, hydrostatic, fast_mp_consv, &
352 qvi(isd,jsd,k,1:ngas), &
356 ql(isd,jsd,k), qi(isd,jsd,k), &
357 qr(isd,jsd,k), qs(isd,jsd,k), qg(isd,jsd,k), &
358 hs, dpln, delz(is:,js:,kdelz), pt(isd,jsd,k), delp(isd,jsd,k),&
359 q_con(isd:,jsd:,k), cappa(isd:,jsd:,k), area, dtdt(is,js,k), &
360 out_dt, last_step, do_qa, qa(isd,jsd,k))
361 if ( .not. hydrostatic )
then
365 pkz(i,j,k) = exp(cappa(i,j,k)*log(rrg*delp(i,j,k)/delz(i,j,k)*pt(i,j,k)))
368 pkz(i,j,k) = exp(akap*(virqd(q(i,j,k,1:num_gas))/vicpqd(q(i,j,k,1:num_gas))*log(rrg*delp(i,j,k)/delz(i,j,k)*pt(i,j,k)))
370 pkz(i,j,k) = exp(akap*log(rrg*delp(i,j,k)/delz(i,j,k)*pt(i,j,k)))
379 if ( fast_mp_consv )
then
384 te0_2d(i,j) = te0_2d(i,j) + te0(i,j,k)
403subroutine fv_sat_adj_work(mdt, zvir, is, ie, js, je, ng, hydrostatic, consv_te, te0, &
409 ql, qi, qr, qs, qg, hs, dpln, delz, pt, dp, q_con, cappa, &
410 area, dtdt, out_dt, last_step, do_qa, qa)
415 integer,
intent (in) :: is, ie, js, je, ng
416 logical,
intent (in) :: hydrostatic, consv_te, out_dt, last_step, do_qa
417 real(kind=kind_dyn),
intent (in) :: zvir, mdt
418 real(kind=kind_dyn),
intent (in),
dimension (is - ng:ie + ng, js - ng:je + ng) :: dp, hs
419 real(kind=kind_dyn),
intent (in),
dimension (is:ie, js:je) :: dpln, delz
420 real(kind=kind_dyn),
intent (inout),
dimension (is - ng:ie + ng, js - ng:je + ng) :: pt
422 real(kind=kind_dyn),
intent (inout),
dimension (is - ng:ie + ng, js - ng:je + ng, 1:1, 1:num_gas) :: qvi
424 real(kind=kind_dyn),
intent (inout),
dimension (is - ng:ie + ng, js - ng:je + ng) :: qv
426 real(kind=kind_dyn),
intent (inout),
dimension (is - ng:ie + ng, js - ng:je + ng) :: ql, qi, qr, qs, qg
427 real(kind=kind_dyn),
intent (inout),
dimension (is - ng:ie + ng, js - ng:je + ng) :: q_con, cappa
428 real(kind=kind_dyn),
intent (inout),
dimension (is:ie, js:je) :: dtdt
429 real(kind=kind_dyn),
intent (out),
dimension (is - ng:ie + ng, js - ng:je + ng) :: qa, te0
430 real (kind_grid),
intent (in),
dimension (is - ng:ie + ng, js - ng:je + ng) :: area
434 real,
dimension (is - ng:ie + ng, js - ng:je + ng) :: qv
436 real(kind=kind_dyn),
dimension (is:ie) :: wqsat, dq2dt, qpz, cvm, t0, pt1, qstar
437 real(kind=kind_dyn),
dimension (is:ie) :: icp2, lcp2, tcp2, tcp3
438 real(kind=kind_dyn),
dimension (is:ie) :: den, q_liq, q_sol, q_cond, src, sink, hvar
439 real(kind=kind_dyn),
dimension (is:ie) :: mc_air, lhl, lhi
440 real(kind=kind_dyn) :: qsw, rh
441 real(kind=kind_dyn) :: tc, qsi, dqsdt, dq, dq0, pidep, qi_crt, tmp, dtmp
442 real(kind=kind_dyn) :: tin, rqi, q_plus, q_minus
443 real(kind=kind_dyn) :: sdt, dt_bigg, adj_fac
444 real(kind=kind_dyn) :: fac_smlt, fac_r2g, fac_i2s, fac_imlt, fac_l2r, fac_v2l, fac_l2v
445 real(kind=kind_dyn) :: factor, qim, tice0, c_air, c_vap, dw
449 qv(:,:) = qvi(:,:,1,1)
460 fac_i2s = 1. - exp(- mdt / tau_i2s)
461 fac_v2l = 1. - exp(- sdt / tau_v2l)
462 fac_r2g = 1. - exp(- mdt / tau_r2g)
463 fac_l2r = 1. - exp(- mdt / tau_l2r)
465 fac_l2v = 1. - exp(- sdt / tau_l2v)
466 fac_l2v = min(sat_adj0, fac_l2v)
468 fac_imlt = 1. - exp(- sdt / tau_imlt)
469 fac_smlt = 1. - exp(- mdt / tau_smlt)
475 if (hydrostatic)
then
482 d0_vap = c_vap - c_liq
483 lv00 = hlv - d0_vap * tice
490 q_liq(i) = ql(i, j) + qr(i, j)
491 q_sol(i) = qi(i, j) + qs(i, j) + qg(i, j)
492 qpz(i) = q_liq(i) + q_sol(i)
494 pt1(i) = pt(i, j) / virq_qpz(qvi(i,j,1,1:num_gas),qpz(i))
497 pt1(i) = pt(i, j) / ((1 + zvir * qv(i, j)) * (1 - qpz(i)))
499 pt1(i) = pt(i, j) / (1 + zvir * qv(i, j))
503 qpz(i) = qpz(i) + qv(i, j)
510 if (hydrostatic)
then
512 den(i) = dp(i, j) / (dpln(i, j) * rdgas * pt(i, j))
516 den(i) = - dp(i, j) / (grav * delz(i, j))
526 if (hydrostatic)
then
527 c_air = cp_air * vicpqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
529 c_air = cv_air * vicvqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
532 mc_air(i) = (1. - qpz(i)) * c_air
533 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
534 lhi(i) = li00 + dc_ice * pt1(i)
535 icp2(i) = lhi(i) / cvm(i)
543 if (hydrostatic)
then
546 c_air = cp_air * vicpqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
548 te0(i, j) = - c_air * t0(i)
553 te0(i, j) = - cvm(i) * t0(i)
556 c_air = cv_air * vicvqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
558 te0(i, j) = - c_air * t0(i)
569 if (qi(i, j) < 0.)
then
570 qs(i, j) = qs(i, j) + qi(i, j)
580 if (qi(i, j) > 1.e-8 .and. pt1(i) > tice)
then
581 sink(i) = min(qi(i, j), fac_imlt * (pt1(i) - tice) / icp2(i))
582 qi(i, j) = qi(i, j) - sink(i)
588 ql(i, j) = ql(i, j) + sink(i)
589 q_liq(i) = q_liq(i) + sink(i)
590 q_sol(i) = q_sol(i) - sink(i)
591 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
592 pt1(i) = pt1(i) - sink(i) * lhi(i) / cvm(i)
601 lhi(i) = li00 + dc_ice * pt1(i)
602 icp2(i) = lhi(i) / cvm(i)
610 if (qs(i, j) < 0.)
then
611 qg(i, j) = qg(i, j) + qs(i, j)
613 elseif (qg(i, j) < 0.)
then
614 tmp = min(- qg(i, j), max(0., qs(i, j)))
615 qg(i, j) = qg(i, j) + tmp
616 qs(i, j) = qs(i, j) - tmp
627 if (ql(i, j) < 0.)
then
628 tmp = min(- ql(i, j), max(0., qr(i, j)))
629 ql(i, j) = ql(i, j) + tmp
630 qr(i, j) = qr(i, j) - tmp
631 elseif (qr(i, j) < 0.)
then
632 tmp = min(- qr(i, j), max(0., ql(i, j)))
633 ql(i, j) = ql(i, j) - tmp
634 qr(i, j) = qr(i, j) + tmp
643 dtmp = tice - 48. - pt1(i)
644 if (ql(i, j) > 0. .and. dtmp > 0.)
then
645 sink(i) = min(ql(i, j), dtmp / icp2(i))
646 ql(i, j) = ql(i, j) - sink(i)
647 qi(i, j) = qi(i, j) + sink(i)
648 q_liq(i) = q_liq(i) - sink(i)
649 q_sol(i) = q_sol(i) + sink(i)
650 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
651 pt1(i) = pt1(i) + sink(i) * lhi(i) / cvm(i)
660 lhl(i) = lv00 + d0_vap * pt1(i)
661 lhi(i) = li00 + dc_ice * pt1(i)
662 lcp2(i) = lhl(i) / cvm(i)
663 icp2(i) = lhi(i) / cvm(i)
664 tcp3(i) = lcp2(i) + icp2(i) * min(1., dim(tice, pt1(i)) /48.)
671 call wqs2_vect (is, ie, pt1, den, wqsat, dq2dt)
675 dq0 = (qv(i, j) - wqsat(i)) / (1. + tcp3(i) * dq2dt(i))
677 src(i) = min(adj_fac * dq0, max(ql_gen - ql(i, j), fac_v2l * dq0))
683 factor = - min(1., fac_l2v * 10. * (1. - qv(i, j) / wqsat(i)))
684 src(i) = - min(ql(i, j), factor * dq0)
686 qv(i, j) = qv(i, j) - src(i)
688 qvi(i,j,1,1) = qv(i, j)
690 ql(i, j) = ql(i, j) + src(i)
691 q_liq(i) = q_liq(i) + src(i)
692 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
693 pt1(i) = pt1(i) + src(i) * lhl(i) / cvm(i)
701 lhl(i) = lv00 + d0_vap * pt1(i)
702 lhi(i) = li00 + dc_ice * pt1(i)
703 lcp2(i) = lhl(i) / cvm(i)
704 icp2(i) = lhi(i) / cvm(i)
705 tcp3(i) = lcp2(i) + icp2(i) * min(1., dim(tice, pt1(i)) / 48.)
716 call wqs2_vect (is, ie, pt1, den, wqsat, dq2dt)
719 dq0 = (qv(i, j) - wqsat(i)) / (1. + tcp3(i) * dq2dt(i))
726 factor = - min(1., fac_l2v * 10. * (1. - qv(i, j) / wqsat(i)))
727 src(i) = - min(ql(i, j), factor * dq0)
730 qv(i, j) = qv(i, j) - src(i)
732 qvi(i,j,1,1) = qv(i,j)
734 ql(i, j) = ql(i, j) + src(i)
735 q_liq(i) = q_liq(i) + src(i)
736 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
737 pt1(i) = pt1(i) + src(i) * lhl(i) / cvm(i)
745 lhl(i) = lv00 + d0_vap * pt1(i)
746 lhi(i) = li00 + dc_ice * pt1(i)
747 lcp2(i) = lhl(i) / cvm(i)
748 icp2(i) = lhi(i) / cvm(i)
758 dtmp = t_wfr - pt1(i)
759 if (ql(i, j) > 0. .and. dtmp > 0.)
then
760 sink(i) = min(ql(i, j), ql(i, j) * dtmp * 0.125, dtmp / icp2(i))
761 ql(i, j) = ql(i, j) - sink(i)
762 qi(i, j) = qi(i, j) + sink(i)
763 q_liq(i) = q_liq(i) - sink(i)
764 q_sol(i) = q_sol(i) + sink(i)
765 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
766 pt1(i) = pt1(i) + sink(i) * lhi(i) / cvm(i)
775 lhi(i) = li00 + dc_ice * pt1(i)
776 icp2(i) = lhi(i) / cvm(i)
785 if (ql(i, j) > 0.0 .and. tc > 0.)
then
786 sink(i) = 3.3333e-10 * dt_bigg * (exp(0.66 * tc) - 1.) * den(i) * ql(i, j) ** 2
787 sink(i) = min(ql(i, j), tc / icp2(i), sink(i))
788 ql(i, j) = ql(i, j) - sink(i)
789 qi(i, j) = qi(i, j) + sink(i)
790 q_liq(i) = q_liq(i) - sink(i)
791 q_sol(i) = q_sol(i) + sink(i)
792 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
793 pt1(i) = pt1(i) + sink(i) * lhi(i) / cvm(i)
802 lhi(i) = li00 + dc_ice * pt1(i)
803 icp2(i) = lhi(i) / cvm(i)
811 dtmp = (tice - 0.1) - pt1(i)
812 if (qr(i, j) > 1.e-7 .and. dtmp > 0.)
then
813 tmp = min(1., (dtmp * 0.025) ** 2) * qr(i, j)
814 sink(i) = min(tmp, fac_r2g * dtmp / icp2(i))
815 qr(i, j) = qr(i, j) - sink(i)
816 qg(i, j) = qg(i, j) + sink(i)
817 q_liq(i) = q_liq(i) - sink(i)
818 q_sol(i) = q_sol(i) + sink(i)
819 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
820 pt1(i) = pt1(i) + sink(i) * lhi(i) / cvm(i)
829 lhi(i) = li00 + dc_ice * pt1(i)
830 icp2(i) = lhi(i) / cvm(i)
838 dtmp = pt1(i) - (tice + 0.1)
839 if (qs(i, j) > 1.e-7 .and. dtmp > 0.)
then
840 tmp = min(1., (dtmp * 0.1) ** 2) * qs(i, j)
841 sink(i) = min(tmp, fac_smlt * dtmp / icp2(i))
842 tmp = min(sink(i), dim(qs_mlt, ql(i, j)))
843 qs(i, j) = qs(i, j) - sink(i)
844 ql(i, j) = ql(i, j) + tmp
845 qr(i, j) = qr(i, j) + sink(i) - tmp
847 q_liq(i) = q_liq(i) + sink(i)
848 q_sol(i) = q_sol(i) - sink(i)
849 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
850 pt1(i) = pt1(i) - sink(i) * lhi(i) / cvm(i)
859 if (ql(i, j) > ql0_max)
then
860 sink(i) = fac_l2r * (ql(i, j) - ql0_max)
861 qr(i, j) = qr(i, j) + sink(i)
862 ql(i, j) = ql(i, j) - sink(i)
871 lhi(i) = li00 + dc_ice * pt1(i)
872 lhl(i) = lv00 + d0_vap * pt1(i)
873 lcp2(i) = lhl(i) / cvm(i)
874 icp2(i) = lhi(i) / cvm(i)
875 tcp2(i) = lcp2(i) + icp2(i)
884 if (pt1(i) < t_sub)
then
885 src(i) = dim(qv(i, j), 1.e-6)
886 elseif (pt1(i) < tice0)
then
887 qsi =
iqs2(pt1(i), den(i), dqsdt)
889 sink(i) = adj_fac * dq / (1. + tcp2(i) * dqsdt)
890 if (qi(i, j) > 1.e-8)
then
891 pidep = sdt * dq * 349138.78 * exp(0.875 * log(qi(i, j) * den(i))) &
892 / (qsi * den(i) * lat2 / (0.0243 * rvgas * pt1(i) ** 2) + 4.42478e4)
898 qi_crt = qi_gen * min(qi_lim, 0.1 * tmp) / den(i)
899 src(i) = min(sink(i), max(qi_crt - qi(i, j), pidep), tmp / tcp2(i))
901 pidep = pidep * min(1., dim(pt1(i), t_sub) * 0.2)
902 src(i) = max(pidep, sink(i), - qi(i, j))
905 qv(i, j) = qv(i, j) - src(i)
907 qvi(i,j,1,1) = qv(i,j)
909 qi(i, j) = qi(i, j) + src(i)
910 q_sol(i) = q_sol(i) + src(i)
911 cvm(i) = mc_air(i) + qv(i, j) * c_vap + q_liq(i) * c_liq + q_sol(i) * c_ice
912 pt1(i) = pt1(i) + src(i) * (lhl(i) + lhi(i)) / cvm(i)
921 q_con(i, j) = q_liq(i) + q_sol(i)
923 pt(i, j) = pt1(i) * virq_qpz(qvi(i,j,1,1:num_gas),q_con(i,j))
925 tmp = 1. + zvir * qv(i, j)
926 pt(i, j) = pt1(i) * tmp * (1. - q_con(i, j))
929 cappa(i, j) = tmp / (tmp + cvm(i))
932 q_con(i, j) = q_liq(i) + q_sol(i)
933 pt(i, j) = pt1(i) * virq_qpz(qvi(i,j,1,1:num_gas),q_con(i,j)) * (1. - q_con(i,j))
935 pt(i, j) = pt1(i) * (1. + zvir * qv(i, j))
945 if (qg(i, j) < 0.)
then
946 tmp = min(- qg(i, j), max(0., qi(i, j)))
947 qg(i, j) = qg(i, j) + tmp
948 qi(i, j) = qi(i, j) - tmp
957 qim = qi0_max / den(i)
958 if (qi(i, j) > qim)
then
959 sink(i) = fac_i2s * (qi(i, j) - qim)
960 qi(i, j) = qi(i, j) - sink(i)
961 qs(i, j) = qs(i, j) + sink(i)
967 dtdt(i, j) = dtdt(i, j) + pt1(i) - t0(i)
977 if (hydrostatic)
then
979 c_air = cp_air * vicpqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
981 te0(i, j) = dp(i, j) * (te0(i, j) + c_air * pt1(i))
984 te0(i, j) = dp(i, j) * (te0(i, j) + cvm(i) * pt1(i))
987 c_air = cv_air * vicvqd_qpz(qvi(i,j,1,1:num_gas),qpz(i))
989 te0(i, j) = dp(i, j) * (te0(i, j) + c_air * pt1(i))
1000 lhi(i) = li00 + dc_ice * pt1(i)
1001 lhl(i) = lv00 + d0_vap * pt1(i)
1002 cvm(i) = mc_air(i) + (qv(i, j) + q_liq(i) + q_sol(i)) * c_vap
1003 lcp2(i) = lhl(i) / cvm(i)
1004 icp2(i) = lhi(i) / cvm(i)
1011 if (do_qa .and. last_step)
then
1018 if (rad_graupel)
then
1020 q_sol(i) = qi(i, j) + qs(i, j) + qg(i, j)
1024 q_sol(i) = qi(i, j) + qs(i, j)
1034 q_liq(i) = ql(i, j) + qr(i, j)
1042 q_cond(i) = q_sol(i) + q_liq(i)
1054 tin = pt1(i) - (lcp2(i) * q_cond(i) + icp2(i) * q_sol(i))
1063 if (tin <= t_wfr)
then
1065 qstar(i) =
iqs1(tin, den(i))
1066 elseif (tin >= tice)
then
1068 qstar(i) =
wqs1(tin, den(i))
1071 qsi =
iqs1(tin, den(i))
1072 qsw =
wqs1(tin, den(i))
1073 if (q_cond(i) > 1.e-6)
then
1074 rqi = q_sol(i) / q_cond(i)
1077 rqi = ((tice - tin) / (tice - t_wfr))
1079 qstar(i) = rqi * qsi + (1. - rqi) * qsw
1082 dw = dw_ocean + (dw_land - dw_ocean) * min(1., abs(hs(i, j)) / (10. * grav))
1084 hvar(i) = min(0.2, max(0.01, dw * sqrt(sqrt(area(i, j)) / 100.e3)))
1092 rh = qpz(i) / qstar(i)
1100 if (rh > 0.75 .and. qpz(i) > 1.e-8)
then
1101 dq = hvar(i) * qpz(i)
1102 q_plus = qpz(i) + dq
1103 q_minus = qpz(i) - dq
1104 if (icloud_f == 2)
then
1105 if (qpz(i) > qstar(i))
then
1107 elseif (qstar(i) < q_plus .and. q_cond(i) > 1.e-8)
then
1108 qa(i, j) = ((q_plus - qstar(i)) / dq) ** 2
1109 qa(i, j) = min(1., qa(i, j))
1114 if (qstar(i) < q_minus)
then
1117 if (qstar(i) < q_plus)
then
1118 if (icloud_f == 0)
then
1119 qa(i, j) = (q_plus - qstar(i)) / (dq + dq)
1121 qa(i, j) = (q_plus - qstar(i)) / (2. * dq * (1. - q_cond(i)))
1127 if (q_cond(i) > 1.e-8)
then
1128 qa(i, j) = max(cld_min, qa(i, j))
1130 qa(i, j) = min(1., qa(i, j))