339 & ( plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, &
340 & ccnd, ncndl, cnvw, cnvc, tracer1, &
341 & xlat, xlon, slmsk, dz, delp, ix, lm, nlay, nlp1, &
342 & deltaq, sup, dcorr_con, me, icloud, kdt, &
343 & ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, ntclamt, &
344 & imp_physics, imp_physics_nssl, imp_physics_fer_hires, &
345 & imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, &
346 & imp_physics_zhao_carr, imp_physics_zhao_carr_pdf, &
347 & imp_physics_mg, iovr, iovr_rand, iovr_maxrand, iovr_max, &
348 & iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, &
349 & idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, &
350 & imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, &
351 & do_mynnedmf, lgfdlmprad, xr_cnvcld, &
352 & uni_cld, lmfshal, lmfdeep2, cldcov, clouds1, &
353 & effrl, effri, effrr, effrs, effr_in, &
354 & effrl_inout, effri_inout, effrs_inout, &
355 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
356 & dzlay, latdeg, julian, yearlen, gridkm, top_at_1, si, &
357 & con_ttp, con_pi, con_g, con_rd, con_thgni, &
358 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
359 & cld_rwp, cld_rerain, cld_swp, cld_resnow, &
360 & clds, mtop, mbot, de_lgth, alpha &
510 integer,
intent(in) :: ix, lm, nlay, nlp1, me, ncndl, icloud
511 integer,
intent(in) :: ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, &
513 integer,
intent(in) :: kdt, imfdeepcnv, imfdeepcnv_gf, &
515 integer,
intent(in) :: &
518 & imp_physics_fer_hires,
520 & imp_physics_thompson,
522 & imp_physics_zhao_carr,
523 & imp_physics_zhao_carr_pdf,
526 integer,
intent(in) :: &
540 logical,
intent(in) :: uni_cld, lmfshal, lmfdeep2, effr_in, &
541 & do_mynnedmf, lgfdlmprad, top_at_1, lcrick, lcnorm, &
544 real (kind=kind_phys),
dimension(:,:,:),
intent(in) :: ccnd, &
546 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr, &
547 & tlyr, tvly, qlyr, qstl, rhly, cnvw, cnvc, cldcov, &
548 & delp, dz, effrl, effri, effrr, effrs, dzlay, clouds1
550 real (kind=kind_phys),
intent(in) :: sup, dcorr_con, con_ttp, &
551 & con_pi, con_g, con_rd, con_thgni
552 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
555 real(kind=kind_phys),
dimension(:),
intent(in) :: latdeg, gridkm
556 real(kind=kind_phys),
intent(in) :: julian
557 integer,
intent(in) :: yearlen
560 real(kind=kind_phys),
dimension(:,:) :: deltaq
561 real(kind=kind_phys),
dimension(:,:),
intent(inout) :: &
562 & effrl_inout, effri_inout, effrs_inout
563 real(kind=kind_phys),
dimension(:),
intent(inout) :: &
564 & lwp_ex, iwp_ex, lwp_fc, iwp_fc
568 real (kind=kind_phys),
dimension(:,:),
intent(out) :: &
569 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
570 & cld_rwp, cld_rerain, cld_swp, cld_resnow
571 real (kind=kind_phys),
dimension(:,:),
intent(out) :: clds
572 real (kind=kind_phys),
dimension(:),
intent(out) :: de_lgth
573 real (kind=kind_phys),
dimension(:,:),
intent(out) :: alpha
575 integer,
dimension(:,:),
intent(out) :: mtop,mbot
578 real (kind=kind_phys),
dimension(IX,NLAY) :: cldtot, cldcnv, &
579 & cwp, cip, crp, csp, rew, rei, res, rer, tem2d, clwf
581 real (kind=kind_phys) :: ptop1(ix,
nk_clds+1), rxlat(ix)
583 real (kind=kind_phys) :: clwmin, clwm, clwt, onemrh,
value, &
586 integer :: i, k, id, nf
590 real (kind=kind_phys),
parameter :: xrc3 = 100.
595 if (me == 0 .and. kdt == 1)
then &
596 print*,
'in radiation_clouds_prop=', imp_physics, uni_cld, &
597 & ncndl, lgfdlmprad, do_mynnedmf, imfdeepcnv, kdt
608 cld_rerain(i,k) = 0.0
610 cld_resnow(i,k) = 0.0
621 if (imp_physics == imp_physics_zhao_carr .or. &
622 & imp_physics == imp_physics_mg)
then
625 if (uni_cld .and. ncndl >= 2)
then
626 call progclduni (plyr, plvl, tlyr, tvly, ccnd, ncndl, &
627 & xlat, xlon, slmsk, dz, delp, &
628 & ix, nlay, nlp1, cldcov, &
629 & effrl, effri, effrr, effrs, effr_in, &
631 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
632 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
633 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
637 & qstl, rhly, ccnd(1:ix,1:nlay,1), xlat, xlon, &
638 & slmsk, dz, delp, ix, nlay, nlp1, uni_cld, &
639 & lmfshal, lmfdeep2, &
640 & cldcov, effrl, effri, effrr, effrs, effr_in, &
642 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
643 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
644 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
648 elseif(imp_physics == imp_physics_zhao_carr_pdf)
then
651 & qstl, rhly, ccnd(1:ix,1:nlay,1), cnvw, cnvc, &
652 & xlat, xlon, slmsk, dz, delp, ix, nlay, nlp1, &
653 & deltaq, sup, kdt, me, dzlay, &
654 & cldtot, cldcnv, lcrick, lcnorm, con_thgni, &
655 & con_ttp, cld_frac, cld_lwp, cld_reliq, cld_iwp, &
656 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
659 elseif (imp_physics == imp_physics_gfdl)
then
661 if (.not. lgfdlmprad)
then
663 & qstl, rhly, ccnd(1:ix,1:nlay,1), cnvw, cnvc, &
664 & xlat, xlon, slmsk, cldcov, dz, delp, &
665 & ix, nlay, nlp1, dzlay, &
666 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
667 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
668 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
672 call progclduni (plyr, plvl, tlyr, tvly, ccnd, ncndl, xlat, &
673 & xlon, slmsk, dz,delp, ix, nlay, nlp1, cldcov, &
674 & effrl, effri, effrr, effrs, effr_in, &
676 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
677 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
678 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
683 elseif(imp_physics == imp_physics_fer_hires)
then
685 effrl_inout(:,:) = 10.
686 effri_inout(:,:) = 50.
687 effrs_inout(:,:) = 250.
691 & tracer1,xlat,xlon,slmsk,dz,delp, &
692 & ntrac-1, ntcw-1,ntiw-1,ntrw-1, &
693 & ix,nlay,nlp1, icloud, uni_cld, &
694 & lmfshal, lmfdeep2, &
695 & cldcov(:,1:nlay),effrl_inout(:,:), &
696 & effri_inout(:,:), effrs_inout(:,:), &
698 & cldtot, cldcnv, lcnorm, &
699 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
700 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
703 elseif ( imp_physics == imp_physics_nssl )
then
705 if(do_mynnedmf .or. imfdeepcnv == imfdeepcnv_gf .or. &
706 & imfdeepcnv == imfdeepcnv_c3)
then
711 cld_frac(i,k) = clouds1(i,k)
717 call progclduni (plyr, plvl, tlyr, tvly, ccnd, ncndl, &
718 & xlat, xlon, slmsk, dz, delp, ix, nlay, nlp1, &
720 & effrl, effri, effrr, effrs, effr_in , &
722 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
723 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
724 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
729 & rhly,tracer1,xlat,xlon,slmsk,dz,delp, &
730 & ntrac-1, ntcw-1,ntiw-1,ntrw-1, &
731 & ntsw-1,ntgl-1,con_ttp,xr_cnvcld, &
732 & ix, nlay, nlp1, uni_cld, lmfshal, lmfdeep2, &
733 & cldcov(:,1:nlay), cnvw, effrl_inout, &
734 & effri_inout, effrs_inout, &
735 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
737 & cldtot, cldcnv, lcnorm, &
738 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
739 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
743 elseif(imp_physics == imp_physics_thompson)
then
745 if(do_mynnedmf .or. imfdeepcnv == imfdeepcnv_gf &
746 & .or. imfdeepcnv == imfdeepcnv_c3)
then
748 if (icloud == 3)
then
750 & tracer1,xlat,xlon,slmsk,dz,delp, &
751 & ntrac-1, ntcw-1,ntiw-1,ntrw-1, &
753 & ix, lm, nlp1, uni_cld, lmfshal, lmfdeep2, &
754 & cldcov(:,1:lm), effrl, effri, effrs, &
755 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
756 & dzlay, gridkm, top_at_1, &
758 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
759 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
767 cld_frac(i,k) = clouds1(i,k)
773 call progclduni (plyr, plvl, tlyr, tvly, ccnd, ncndl, &
774 & xlat, xlon, slmsk, dz, delp, ix, nlay, nlp1, &
776 & effrl, effri, effrr, effrs, effr_in , &
778 & cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
779 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
780 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
787 if (icloud == 3)
then
789 & tracer1,xlat,xlon,slmsk,dz,delp, &
790 & ntrac-1, ntcw-1,ntiw-1,ntrw-1, &
792 & ix, lm, nlp1, uni_cld, lmfshal, lmfdeep2, &
793 & cldcov(:,1:lm), effrl, effri, effrs, &
794 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
795 & dzlay, gridkm, top_at_1, &
797 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
798 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
803 & rhly,tracer1,xlat,xlon,slmsk,dz,delp, &
804 & ntrac-1, ntcw-1,ntiw-1,ntrw-1, &
805 & ntsw-1,ntgl-1,con_ttp,xr_cnvcld, &
806 & ix, nlay, nlp1, uni_cld, lmfshal, lmfdeep2, &
807 & cldcov(:,1:nlay), cnvw, effrl, effri, effrs, &
808 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
810 & cldtot, cldcnv, lcnorm, &
811 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
812 & cld_reice,cld_rwp, cld_rerain,cld_swp, &
825 rxlat(i) = abs( xlat(i) / con_pi )
833 ptop1(i,id) =
ptopc(id,1) + tem1*max( 0.0, 4.0*rxlat(i)-1.0 )
838 if (idcor == idcor_hogan)
then
841 if (idcor == idcor_oreopoulos)
then
844 if (idcor == idcor_con)
then
845 de_lgth(:) = dcorr_con
849 if ( iovr == iovr_dcorr .or. iovr == iovr_exp &
850 & .or. iovr == iovr_exprand)
then
851 call get_alpha_exper(ix, nlay, iovr, iovr_exprand, dzlay, &
852 & de_lgth, cld_frac, alpha)
869 & ( plyr, ptop1, cldtot, cldcnv, dz, de_lgth, alpha, &
870 & ix, nlay, iovr, iovr_rand, iovr_maxrand, iovr_max, &
871 & iovr_dcorr, iovr_exp, iovr_exprand, top_at_1, si, &
884 & ( plyr,plvl,tlyr,tvly,qlyr,qstl,rhly,clw, &
885 & xlat,xlon,slmsk,dz,delp, ix, nlay, nlp1, &
886 & uni_cld, lmfshal, lmfdeep2, cldcov, &
887 & effrl,effri,effrr,effrs,effr_in, &
888 & dzlay, cldtot, cldcnv, lcrick, lcnorm, con_ttp, &
889 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
890 & cld_reice,cld_rwp, cld_rerain,cld_swp, cld_resnow &
967 integer,
intent(in) :: ix, nlay, nlp1
969 logical,
intent(in) :: uni_cld, lmfshal, lmfdeep2, effr_in, &
972 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr, &
973 & tlyr, tvly, qlyr, qstl, rhly, clw, cldcov, delp, dz, &
974 & effrl, effri, effrr, effrs, dzlay
976 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
978 real (kind=kind_phys),
intent(in) :: con_ttp
982 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: &
983 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
984 & cld_rwp, cld_rerain, cld_swp, cld_resnow
987 real (kind=kind_phys),
dimension(IX,NLAY) :: cldtot, cldcnv, &
988 & cwp, cip, crp, csp, rew, rei, res, rer, tem2d, clwf
990 real (kind=kind_phys) :: clwmin, clwm, clwt, onemrh,
value, &
993 integer :: i, k, id, nf
997 real (kind=kind_phys),
parameter :: xrc3 = 100.
1012 rew(i,k) = effrl(i,k)
1013 rei(i,k) = effri(i,k)
1014 rer(i,k) = effrr(i,k)
1015 res(i,k) = effrs(i,k)
1016 tem2d(i,k) = min(1.0, max(0.0,(con_ttp-tlyr(i,k))*0.05))
1033 tem2d(i,k) = min(1.0, max(0.0, (con_ttp-tlyr(i,k))*0.05))
1041 clwf(i,1) = 0.75*clw(i,1) + 0.25*clw(i,2)
1042 clwf(i,nlay) = 0.75*clw(i,nlay) + 0.25*clw(i,nlay-1)
1046 clwf(i,k) = 0.25*clw(i,k-1) + 0.5*clw(i,k) + 0.25*clw(i,k+1)
1052 clwf(i,k) = clw(i,k)
1061 clwt = max(0.0, clwf(i,k)) *
gfac * delp(i,k)
1062 cip(i,k) = clwt * tem2d(i,k)
1063 cwp(i,k) = clwt - cip(i,k)
1069 if(.not. effr_in)
then
1071 if (nint(slmsk(i)) == 1)
then
1073 rew(i,k) = 5.0 + 5.0 * tem2d(i,k)
1082 cldtot(i,k) = cldcov(i,k)
1091 if (.not. lmfshal)
then
1093 & ( ix, nlay, plyr, clwf, rhly, qstl, &
1097 & ( ix, nlay, lmfdeep2, xrc3, plyr, clwf, rhly, qstl, &
1105 if (cldtot(i,k) <
climit)
then
1118 if (cldtot(i,k) >=
climit)
then
1119 tem1 = 1.0 / max(
climit2, cldtot(i,k))
1120 cwp(i,k) = cwp(i,k) * tem1
1121 cip(i,k) = cip(i,k) * tem1
1122 crp(i,k) = crp(i,k) * tem1
1123 csp(i,k) = csp(i,k) * tem1
1132 if(.not.effr_in)
then
1135 tem2 = tlyr(i,k) - con_ttp
1137 if (cip(i,k) > 0.0)
then
1138 tem3 =
gord * cip(i,k) * plyr(i,k) / (delp(i,k)*tvly(i,k))
1140 if (tem2 < -50.0)
then
1141 rei(i,k) = (1250.0/9.917) * tem3 ** 0.109
1142 elseif (tem2 < -40.0)
then
1143 rei(i,k) = (1250.0/9.337) * tem3 ** 0.08
1144 elseif (tem2 < -30.0)
then
1145 rei(i,k) = (1250.0/9.208) * tem3 ** 0.055
1147 rei(i,k) = (1250.0/9.387) * tem3 ** 0.031
1151 rei(i,k) = max(10.0, min(rei(i,k), 150.0))
1161 cld_frac(i,k) = cldtot(i,k)
1162 cld_lwp(i,k) = cwp(i,k)
1163 cld_reliq(i,k) = rew(i,k)
1164 cld_iwp(i,k) = cip(i,k)
1165 cld_reice(i,k) = rei(i,k)
1167 cld_rerain(i,k) = rer(i,k)
1169 cld_resnow(i,k) = res(i,k)
1183 & ( plyr,plvl,tlyr,tvly,qlyr,qstl,rhly,clw,cnvw,cnvc, &
1184 & xlat,xlon,slmsk, dz, delp, &
1186 & deltaq,sup,kdt,me, &
1187 & dzlay, cldtot, cldcnv, lcrick, lcnorm, con_thgni, con_ttp, &
1188 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
1189 & cld_reice,cld_rwp, cld_rerain,cld_swp, cld_resnow &
1259 integer,
intent(in) :: ix, nlay, nlp1,kdt
1260 logical,
intent(in) :: lcrick, lcnorm
1261 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr, &
1262 & tlyr, tvly, qlyr, qstl, rhly, clw, dz, delp, dzlay
1265 real (kind=kind_phys),
intent(in) :: con_thgni, con_ttp
1266 real (kind=kind_phys),
dimension(:,:) :: deltaq, cnvw, cnvc
1267 real (kind=kind_phys) qtmp,qsc,rhs
1268 real (kind=kind_phys),
intent(in) :: sup
1269 real (kind=kind_phys),
parameter :: epsq = 1.0e-12
1271 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
1277 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: &
1278 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
1279 & cld_rwp, cld_rerain, cld_swp, cld_resnow
1282 real (kind=kind_phys),
dimension(ix,nlay) :: cldtot, cldcnv, &
1283 & cwp, cip, crp, csp, rew, rei, res, rer, tem2d, clwf
1285 real (kind=kind_phys) :: clwmin, clwm, clwt, onemrh,
value, &
1288 integer :: i, k, id, nf
1305 tem2d(i,k) = min( 1.0, max( 0.0, (con_ttp-tlyr(i,k))*0.05 ) )
1312 clwf(i,1) = 0.75*clw(i,1) + 0.25*clw(i,2)
1313 clwf(i,nlay) = 0.75*clw(i,nlay) + 0.25*clw(i,nlay-1)
1317 clwf(i,k) = 0.25*clw(i,k-1) + 0.5*clw(i,k) + 0.25*clw(i,k+1)
1323 clwf(i,k) = clw(i,k)
1331 deltaq(i,k) = (1.-0.95)*qstl(i,k)
1340 clwt = max(0.0,(clwf(i,k)+cnvw(i,k))) *
gfac * delp(i,k)
1341 cip(i,k) = clwt * tem2d(i,k)
1342 cwp(i,k) = clwt - cip(i,k)
1349 if (nint(slmsk(i)) == 1)
then
1351 rew(i,k) = 5.0 + 5.0 * tem2d(i,k)
1360 tem1 = tlyr(i,k) - 273.16
1361 if(tem1 < (con_thgni - 273.16))
then
1362 qsc = sup * qstl(i,k)
1368 if(rhly(i,k) >= rhs)
then
1371 qtmp = qlyr(i,k) + clwf(i,k) - qsc
1372 if(deltaq(i,k) > epsq)
then
1374 if(qtmp <= -deltaq(i,k))
then
1376 elseif(qtmp >= deltaq(i,k))
then
1379 cldtot(i,k) = 0.5*qtmp/deltaq(i,k) + 0.5
1380 cldtot(i,k) = max(cldtot(i,k),0.0)
1381 cldtot(i,k) = min(cldtot(i,k),1.0)
1391 cldtot(i,k) = cnvc(i,k) + (1-cnvc(i,k))*cldtot(i,k)
1392 cldtot(i,k) = max(cldtot(i,k),0.)
1393 cldtot(i,k) = min(cldtot(i,k),1.)
1400 if (cldtot(i,k) <
climit)
then
1413 if (cldtot(i,k) >=
climit)
then
1414 tem1 = 1.0 / max(
climit2, cldtot(i,k))
1415 cwp(i,k) = cwp(i,k) * tem1
1416 cip(i,k) = cip(i,k) * tem1
1417 crp(i,k) = crp(i,k) * tem1
1418 csp(i,k) = csp(i,k) * tem1
1429 tem2 = tlyr(i,k) - con_ttp
1431 if (cip(i,k) > 0.0)
then
1433 tem3 =
gord * cip(i,k) * plyr(i,k) / (delp(i,k)*tvly(i,k))
1435 if (tem2 < -50.0)
then
1436 rei(i,k) = (1250.0/9.917) * tem3 ** 0.109
1437 elseif (tem2 < -40.0)
then
1438 rei(i,k) = (1250.0/9.337) * tem3 ** 0.08
1439 elseif (tem2 < -30.0)
then
1440 rei(i,k) = (1250.0/9.208) * tem3 ** 0.055
1442 rei(i,k) = (1250.0/9.387) * tem3 ** 0.031
1446 rei(i,k) = max(10.0, min(rei(i,k), 150.0))
1455 cld_frac(i,k) = cldtot(i,k)
1456 cld_lwp(i,k) = cwp(i,k)
1457 cld_reliq(i,k) = rew(i,k)
1458 cld_iwp(i,k) = cip(i,k)
1459 cld_reice(i,k) = rei(i,k)
1461 cld_rerain(i,k) = rer(i,k)
1463 cld_resnow(i,k) = res(i,k)
1965 & ( plyr,plvl,tlyr,qlyr,qstl,rhly,clw, &
1966 & xlat,xlon,slmsk,dz,delp, &
1967 & ntrac,ntcw,ntiw,ntrw,ntsw,ntgl,con_ttp, &
1968 & xr_cnvcld, ix, nlay, nlp1, &
1969 & uni_cld, lmfshal, lmfdeep2, cldcov, cnvw, &
1970 & re_cloud,re_ice,re_snow, &
1971 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
1972 & dzlay, cldtot, cldcnv, lcnorm, &
1973 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
1974 & cld_reice,cld_rwp, cld_rerain,cld_swp, cld_resnow &
2052 integer,
intent(in) :: ix, nlay, nlp1
2053 integer,
intent(in) :: ntrac, ntcw, ntiw, ntrw, ntsw, ntgl
2055 logical,
intent(in) :: uni_cld, lmfshal, lmfdeep2, lcnorm, &
2058 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr, &
2059 & tlyr, qlyr, qstl, rhly, cldcov, delp, dz, dzlay, &
2060 & re_cloud, re_ice, re_snow, cnvw
2061 real (kind=kind_phys),
dimension(:),
intent(inout) :: &
2062 & lwp_ex, iwp_ex, lwp_fc, iwp_fc
2064 real (kind=kind_phys),
dimension(:,:,:),
intent(in) :: clw
2066 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
2068 real (kind=kind_phys),
intent(in) :: con_ttp
2071 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: &
2072 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
2073 & cld_rwp, cld_rerain, cld_swp, cld_resnow
2076 real (kind=kind_phys),
dimension(IX,NLAY) :: cldtot, cldcnv, &
2077 & cwp, cip, crp, csp, rew, rei, res, rer, tem2d, clwf
2079 real (kind=kind_phys) :: clwmin, clwm, clwt, onemrh,
value, &
2082 integer :: i, k, id, nf
2085 real (kind=kind_phys),
parameter :: xrc3 = 100.
2086 real (kind=kind_phys),
parameter :: snow2ice = 0.25
2087 real (kind=kind_phys),
parameter :: coef_t = 0.025
2099 rew(i,k) = re_cloud(i,k)
2100 rei(i,k) = re_ice(i,k)
2102 res(i,k) = re_snow(i,k)
2103 tem2d(i,k) = min(1.0, max( 0.0, (con_ttp-tlyr(i,k))*coef_t))
2133 clwf(i,k) = clw(i,k,ntcw) + clw(i,k,ntiw) + clw(i,k,ntsw)
2134 & + clw(i,k,ntrw) + cnvw(i,k)
2140 clwf(i,k) = clw(i,k,ntcw) + clw(i,k,ntiw) + clw(i,k,ntsw)
2151 tem1 = cnvw(i,k)*(1.-tem2d(i,k))
2155 cwp(i,k) = max(0.0, (clw(i,k,ntcw)+tem1) *
2157 if(tem1 > 1.e-12 .and. clw(i,k,ntcw) < 1.e-12)
2160 tem2 = cnvw(i,k)*tem2d(i,k)
2164 cip(i,k) = max(0.0, (clw(i,k,ntiw) +
2165 & snow2ice*clw(i,k,ntsw) + tem2) *
2167 if(tem2 > 1.e-12 .and. clw(i,k,ntiw) < 1.e-12)
2169 crp(i,k) = max(0.0, clw(i,k,ntrw) *
gfac * delp(i,k))
2170 csp(i,k) = max(0.0, (1.-snow2ice)*clw(i,k,ntsw) *
2183 lwp_ex(i) = lwp_ex(i) + cwp(i,k)
2184 iwp_ex(i) = iwp_ex(i) + cip(i,k) + csp(i,k)
2186 lwp_ex(i) = lwp_ex(i)*1.e-3
2187 iwp_ex(i) = iwp_ex(i)*1.e-3
2193 cldtot(i,k) = cldcov(i,k)
2201 if (.not. lmfshal)
then
2203 & ( ix, nlay, plyr, clwf, rhly, qstl, &
2207 & ( ix, nlay, lmfdeep2, xrc3, plyr, clwf, rhly, qstl, &
2215 if (cldtot(i,k) <
climit)
then
2229 if (cldtot(i,k).ge.
climit .and. cldtot(i,k).lt.
ovcst)
then
2230 lwp_fc(i) = lwp_fc(i) + cwp(i,k)
2231 iwp_fc(i) = iwp_fc(i) + cip(i,k) + csp(i,k)
2234 lwp_fc(i) = lwp_fc(i)*1.e-3
2235 iwp_fc(i) = iwp_fc(i)*1.e-3
2241 if (cldtot(i,k) >=
climit)
then
2242 tem1 = 1.0 / max(
climit2, cldtot(i,k))
2243 cwp(i,k) = cwp(i,k) * tem1
2244 cip(i,k) = cip(i,k) * tem1
2245 crp(i,k) = crp(i,k) * tem1
2246 csp(i,k) = csp(i,k) * tem1
2254 cld_frac(i,k) = cldtot(i,k)
2255 cld_lwp(i,k) = cwp(i,k)
2256 cld_reliq(i,k) = rew(i,k)
2257 cld_iwp(i,k) = cip(i,k)
2258 cld_reice(i,k) = rei(i,k)
2259 cld_rwp(i,k) = crp(i,k)
2260 cld_rerain(i,k) = rer(i,k)
2261 cld_swp(i,k) = csp(i,k)
2262 cld_resnow(i,k) = res(i,k)
2283 & ( plyr,plvl,tlyr,qlyr,qstl,rhly,clw, &
2284 & xlat,xlon,slmsk,dz,delp, &
2285 & ntrac,ntcw,ntiw,ntrw,ntsw,ntgl, &
2287 & uni_cld, lmfshal, lmfdeep2, cldcov, &
2288 & re_cloud,re_ice,re_snow, &
2289 & lwp_ex, iwp_ex, lwp_fc, iwp_fc, &
2290 & dzlay, gridkm, top_at_1, cldtot, cldcnv, &
2291 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
2292 & cld_reice,cld_rwp, cld_rerain,cld_swp, cld_resnow &
2366 integer,
intent(in) :: ix, nlay, nlp1
2367 integer,
intent(in) :: ntrac, ntcw, ntiw, ntrw, ntsw, ntgl
2369 logical,
intent(in) :: uni_cld, lmfshal, lmfdeep2, top_at_1
2371 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr, &
2372 & tlyr, qlyr, qstl, rhly, cldcov, delp, dz, dzlay, &
2373 & re_cloud, re_ice, re_snow
2374 real (kind=kind_phys),
dimension(:),
intent(inout) :: &
2375 & lwp_ex, iwp_ex, lwp_fc, iwp_fc
2377 real (kind=kind_phys),
dimension(:,:,:),
intent(in) :: clw
2379 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
2381 real(kind=kind_phys),
dimension(:),
intent(in) :: gridkm
2385 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: &
2386 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
2387 & cld_rwp, cld_rerain, cld_swp, cld_resnow
2390 real (kind=kind_phys),
dimension(IX,NLAY) :: cldtot, cldcnv, &
2391 & cwp, cip, crp, csp, rew, rei, res, rer
2393 real (kind=kind_phys),
dimension(NLAY) :: cldfra1d, qv1d, &
2394 & qc1d, qi1d, qs1d, dz1d, p1d, t1d
2396 real (kind=kind_phys) :: clwmin, tem1
2397 real (kind=kind_phys) :: corr, xland, snow_mass_factor
2398 real (kind=kind_phys),
parameter :: max_relh = 1.5
2399 real (kind=kind_phys),
parameter :: snow_max_radius = 130.0
2401 integer :: i, k, k2, id, nf, idx_rei
2416 rew(i,k) = re_cloud(i,k)
2417 rei(i,k) = re_ice(i,k)
2419 res(i,k) = re_snow(i,k)
2429 cwp(i,k) = max(0.0, clw(i,k,ntcw) * dz(i,k)*1.e6)
2431 snow_mass_factor = 0.90
2432 cip(i,k) = max(0.0, (clw(i,k,ntiw) &
2433 & + (1.0-snow_mass_factor)*clw(i,k,ntsw))*dz(i,k)*1.e6)
2434 if (re_snow(i,k) .gt. snow_max_radius)
then
2435 snow_mass_factor = min(snow_mass_factor, &
2436 & (snow_max_radius/re_snow(i,k)) &
2437 & *(snow_max_radius/re_snow(i,k)))
2438 res(i,k) = snow_max_radius
2440 csp(i,k) = max(0.,snow_mass_factor*clw(i,k,ntsw)*dz(i,k)*1.e6)
2450 lwp_ex(i) = lwp_ex(i) + cwp(i,k)
2451 iwp_ex(i) = iwp_ex(i) + cip(i,k) + csp(i,k)
2465 if (slmsk(i)-0.5 .gt. 0.5 .and. slmsk(i)+0.5 .lt. 1.5)
then
2473 if (.not. top_at_1)
then
2476 qc1d(k) = max(0.0, clw(i,k,ntcw))
2477 qi1d(k) = max(0.0, clw(i,k,ntiw))
2478 qs1d(k) = max(0.0, clw(i,k,ntsw))
2479 dz1d(k) = dz(i,k)*1.e3
2480 p1d(k) = plyr(i,k)*100.0
2486 qv1d(k2) = qlyr(i,k)
2487 qc1d(k2) = max(0.0, clw(i,k,ntcw))
2488 qi1d(k2) = max(0.0, clw(i,k,ntiw))
2489 qs1d(k2) = max(0.0, clw(i,k,ntsw))
2490 dz1d(k2) = dz(i,k)*1.e3
2491 p1d(k2) = plyr(i,k)*100.0
2496 call cal_cldfra3(cldfra1d, qv1d, qc1d, qi1d, qs1d, dz1d, &
2497 & p1d, t1d, xland, gridkm(i), &
2498 & .false., max_relh, 1, nlay, .false.)
2501 cldtot(i,k) = cldfra1d(k)
2502 if (qc1d(k).gt.clwmin .and. cldfra1d(k).lt.
ovcst)
then
2503 cwp(i,k) = qc1d(k) * dz1d(k)*1000.
2504 if ((xland-1.5).GT.0.)
then
2510 if (qi1d(k).gt.clwmin .and. cldfra1d(k).lt.
ovcst)
then
2511 cip(i,k) = qi1d(k) * dz1d(k)*1000.
2512 idx_rei = int(t1d(k)-179.)
2513 idx_rei = min(max(idx_rei,1),75)
2514 corr = t1d(k) - int(t1d(k))
2515 rei(i,k) = max(5.0,
retab(idx_rei)*(1.-corr) + &
2516 &
retab(idx_rei+1)*corr)
2523 cld_frac(i,k) = cldtot(i,k)
2524 cld_lwp(i,k) = cwp(i,k)
2525 cld_reliq(i,k) = rew(i,k)
2526 cld_iwp(i,k) = cip(i,k)
2527 cld_reice(i,k) = rei(i,k)
2528 cld_rwp(i,k) = crp(i,k)
2529 cld_rerain(i,k) = rer(i,k)
2530 cld_swp(i,k) = csp(i,k)
2531 cld_resnow(i,k) = res(i,k)
2541 lwp_fc(i) = lwp_fc(i) + cwp(i,k)
2542 iwp_fc(i) = iwp_fc(i) + cip(i,k) + csp(i,k)
2544 lwp_fc(i) = max(0.0, lwp_fc(i) - lwp_ex(i))
2545 iwp_fc(i) = max(0.0, iwp_fc(i) - iwp_ex(i))
2546 lwp_fc(i) = lwp_fc(i)*1.e-3
2547 iwp_fc(i) = iwp_fc(i)*1.e-3
2548 lwp_ex(i) = lwp_ex(i)*1.e-3
2549 iwp_ex(i) = iwp_ex(i)*1.e-3
2564 & ( plyr,plvl,tlyr,tvly,ccnd,ncnd, &
2565 & xlat,xlon,slmsk,dz,delp, ix, nlay, nlp1, cldtot, &
2566 & effrl,effri,effrr,effrs,effr_in, &
2567 & dzlay, cldtot1, cldcnv, lcrick, lcnorm, con_ttp, &
2568 & cld_frac, cld_lwp, cld_reliq, cld_iwp, &
2569 & cld_reice,cld_rwp, cld_rerain,cld_swp, cld_resnow &
2651 integer,
intent(in) :: ix, nlay, nlp1, ncnd
2652 logical,
intent(in) :: effr_in, lcrick, lcnorm
2654 real (kind=kind_phys),
intent(in) :: con_ttp
2655 real (kind=kind_phys),
dimension(:,:,:),
intent(in) :: ccnd
2656 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plvl, plyr,&
2657 & tlyr, tvly, cldtot, effrl, effri, effrr, effrs, dz, delp, &
2660 real (kind=kind_phys),
dimension(:),
intent(in) :: xlat, xlon, &
2663 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: cldtot1
2667 real (kind=kind_phys),
dimension(:,:),
intent(inout) :: &
2668 & cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, &
2669 & cld_rwp, cld_rerain, cld_swp, cld_resnow
2672 real (kind=kind_phys),
dimension(IX,NLAY) :: cldcnv, cwp, cip, &
2673 & crp, csp, rew, rei, res, rer
2674 real (kind=kind_phys),
dimension(IX,NLAY,ncnd) :: cndf
2676 real (kind=kind_phys) :: tem1, tem2, tem3
2678 integer :: i, k, id, nf, n
2695 cndf(i,k,n) = ccnd(i,k,n)
2702 cndf(i,1,n) = 0.75*ccnd(i,1,n) + 0.25*ccnd(i,2,n)
2703 cndf(i,nlay,n) = 0.75*ccnd(i,nlay,n) + 0.25*ccnd(i,nlay-1,n)
2707 cndf(i,k,n) = 0.25 * (ccnd(i,k-1,n) + ccnd(i,k+1,n)) &
2708 & + 0.5 * ccnd(i,k,n)
2719 tem1 =
gfac * delp(i,k)
2720 cwp(i,k) = cndf(i,k,1) * tem1
2721 cip(i,k) = cndf(i,k,2) * tem1
2724 elseif (ncnd == 4)
then
2727 tem1 =
gfac * delp(i,k)
2728 cwp(i,k) = cndf(i,k,1) * tem1
2729 cip(i,k) = cndf(i,k,2) * tem1
2730 crp(i,k) = cndf(i,k,3) * tem1
2731 csp(i,k) = cndf(i,k,4) * tem1
2738 if (cldtot(i,k) <
climit)
then
2750 if (cldtot(i,k) >=
climit)
then
2751 tem1 = 1.0 / max(
climit2, cldtot(i,k))
2752 cwp(i,k) = cwp(i,k) * tem1
2753 cip(i,k) = cip(i,k) * tem1
2754 crp(i,k) = crp(i,k) * tem1
2755 csp(i,k) = csp(i,k) * tem1
2766 rew(i,k) = effrl(i,k)
2767 rei(i,k) = max(10.0, min(150.0,effri(i,k)))
2768 rer(i,k) = effrr(i,k)
2769 res(i,k) = effrs(i,k)
2783 if (nint(slmsk(i)) == 1)
then
2785 tem1 = min(1.0, max(0.0, (con_ttp-tlyr(i,k))*0.05))
2786 rew(i,k) = 5.0 + 5.0 * tem1
2796 tem2 = tlyr(i,k) - con_ttp
2798 if (cip(i,k) > 0.0)
then
2799 tem3 =
gord * cip(i,k) * plyr(i,k) / (delp(i,k)*tvly(i,k))
2801 if (tem2 < -50.0)
then
2802 rei(i,k) = (1250.0/9.917) * tem3 ** 0.109
2803 elseif (tem2 < -40.0)
then
2804 rei(i,k) = (1250.0/9.337) * tem3 ** 0.08
2805 elseif (tem2 < -30.0)
then
2806 rei(i,k) = (1250.0/9.208) * tem3 ** 0.055
2808 rei(i,k) = (1250.0/9.387) * tem3 ** 0.031
2812 rei(i,k) = max(10.0, min(rei(i,k), 150.0))
2821 cldtot1(i,k) = cldtot(i,k)
2827 cld_frac(i,k) = cldtot(i,k)
2828 cld_lwp(i,k) = cwp(i,k)
2829 cld_reliq(i,k) = rew(i,k)
2830 cld_iwp(i,k) = cip(i,k)
2831 cld_reice(i,k) = rei(i,k)
2832 cld_rwp(i,k) = crp(i,k)
2833 cld_rerain(i,k) = rer(i,k)
2834 cld_swp(i,k) = csp(i,k)
2835 cld_resnow(i,k) = res(i,k)
2871 & ( plyr, ptop1, cldtot, cldcnv, dz, de_lgth, alpha, &
2872 & ix, nlay, iovr, iovr_rand, iovr_maxrand, iovr_max, &
2873 & iovr_dcorr, iovr_exp, iovr_exprand, top_at_1, si, &
2874 & clds, mtop, mbot &
2926 logical,
intent(in) :: top_at_1
2927 integer,
intent(in) :: ix, nlay
2928 integer,
intent(in) :: &
2937 real (kind=kind_phys),
dimension(:,:),
intent(in) :: plyr, ptop1, &
2938 & cldtot, cldcnv, dz
2939 real (kind=kind_phys),
dimension(:),
intent(in) :: de_lgth, si
2940 real (kind=kind_phys),
dimension(:,:),
intent(in) :: alpha
2943 real (kind=kind_phys),
dimension(:,:),
intent(out) :: clds
2945 integer,
dimension(:,:),
intent(out) :: mtop, mbot
2948 real (kind=kind_phys) :: cl1(ix), cl2(ix), dz1(ix)
2949 real (kind=kind_phys) :: pcur, pnxt, ccur, cnxt, alfa
2951 integer,
dimension(IX):: idom, kbt1, kth1, kbt2, kth2
2952 integer :: i, k, id, id1, kstr, kend, kinc,kl
2962 lab_do_k0 :
do k = nlay, 2, -1
2964 if (si(k) < 0.9e0)
exit lab_do_k0
2968 lab_do_k1 :
do k = 2, nlay
2970 if (si(k) < 0.9e0)
exit lab_do_k1
2999 if ( iovr == iovr_rand )
then
3001 do k = kstr, kend, kinc
3003 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3004 if (ccur >=
climit) cl1(i) = cl1(i) * (1.0 - ccur)
3009 clds(i,5) = 1.0 - cl1(i)
3015 clds(i,4) = 1.0 - cl1(i)
3018 elseif ( iovr == iovr_maxrand )
then
3020 do k = kstr, kend, kinc
3022 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3024 cl2(i) = min( cl2(i), (1.0 - ccur) )
3026 cl1(i) = cl1(i) * cl2(i)
3033 clds(i,5) = 1.0 - cl1(i) * cl2(i)
3039 clds(i,4) = 1.0 - cl1(i) * cl2(i)
3042 elseif ( iovr == iovr_max )
then
3046 do k = kstr, kend, kinc
3048 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3049 if (ccur >=
climit) cl1(i) = max( cl1(i), ccur )
3063 elseif ( iovr == iovr_dcorr )
then
3066 dz1(i) = - dz(i,kstr)
3069 do k = kstr, kend, kinc
3071 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3073 alfa = exp( -0.5*((dz1(i)+dz(i,k)))/de_lgth(i) )
3075 cl2(i) = alfa * min(cl2(i), (1.0 - ccur)) &
3076 & + (1.0 - alfa) * (cl2(i) * (1.0 - ccur))
3078 cl1(i) = cl1(i) * cl2(i)
3080 if (k /= kend) dz1(i) = -dz(i,k+kinc)
3086 clds(i,5) = 1.0 - cl1(i) * cl2(i)
3092 clds(i,4) = 1.0 - cl1(i) * cl2(i)
3095 elseif ( iovr == iovr_exp .or. iovr == iovr_exprand )
then
3099 do k = kstr, kend, kinc
3101 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3103 cl2(i) = alpha(i,k) * min(cl2(i), (1.0 - ccur)) &
3104 & + (1.0 - alpha(i,k)) * (cl2(i) * (1.0 - ccur))
3106 cl1(i) = cl1(i) * cl2(i)
3113 clds(i,5) = 1.0 - cl1(i) * cl2(i)
3119 clds(i,4) = 1.0 - cl1(i) * cl2(i)
3143 mbot(i,2) = nlay - 1
3144 mtop(i,2) = nlay - 1
3145 mbot(i,3) = nlay - 1
3146 mtop(i,3) = nlay - 1
3156 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3160 cnxt = min(
ovcst, max( cldtot(i,k-1), cldcnv(i,k-1) ))
3166 if (pcur < ptop1(i,id1))
then
3173 if (kth2(i) == 0) kbt2(i) = k
3174 kth2(i) = kth2(i) + 1
3176 if ( iovr == iovr_rand )
then
3177 cl2(i) = cl2(i) + ccur - cl2(i)*ccur
3179 cl2(i) = max( cl2(i), ccur )
3182 if (cnxt <
climit .or. pnxt < ptop1(i,id1))
then
3183 kbt1(i) = nint( (cl1(i)*kbt1(i) + cl2(i)*kbt2(i) ) &
3184 & / (cl1(i) + cl2(i)) )
3185 kth1(i) = nint( (cl1(i)*kth1(i) + cl2(i)*kth2(i) ) &
3186 & / (cl1(i) + cl2(i)) )
3187 cl1(i) = cl1(i) + cl2(i) - cl1(i)*cl2(i)
3195 if (pnxt < ptop1(i,id1))
then
3197 mtop(i,id) = min( kbt1(i), kbt1(i)-kth1(i)+1 )
3198 mbot(i,id) = kbt1(i)
3205 mbot(i,id1) = kbt1(i)
3206 mtop(i,id1) = kbt1(i)
3238 ccur = min(
ovcst, max( cldtot(i,k), cldcnv(i,k) ))
3242 cnxt = min(
ovcst, max( cldtot(i,k+1), cldcnv(i,k+1) ))
3248 if (pcur < ptop1(i,id1))
then
3255 if (kth2(i) == 0) kbt2(i) = k
3256 kth2(i) = kth2(i) + 1
3258 if ( iovr == iovr_rand )
then
3259 cl2(i) = cl2(i) + ccur - cl2(i)*ccur
3261 cl2(i) = max( cl2(i), ccur )
3264 if (cnxt <
climit .or. pnxt < ptop1(i,id1))
then
3265 kbt1(i) = nint( (cl1(i)*kbt1(i) + cl2(i)*kbt2(i)) &
3266 & / (cl1(i) + cl2(i)) )
3267 kth1(i) = nint( (cl1(i)*kth1(i) + cl2(i)*kth2(i)) &
3268 & / (cl1(i) + cl2(i)) )
3269 cl1(i) = cl1(i) + cl2(i) - cl1(i)*cl2(i)
3277 if (pnxt < ptop1(i,id1))
then
3279 mtop(i,id) = max( kbt1(i), kbt1(i)+kth1(i)-1 )
3280 mbot(i,id) = kbt1(i)
3283 kbt1(i) = min(k+1, nlay)
3287 mbot(i,id1) = kbt1(i)
3288 mtop(i,id1) = kbt1(i)
subroutine, public radiation_clouds_prop(plyr, plvl, tlyr, tvly, qlyr, qstl, rhly, ccnd, ncndl, cnvw, cnvc, tracer1, xlat, xlon, slmsk, dz, delp, ix, lm, nlay, nlp1, deltaq, sup, dcorr_con, me, icloud, kdt, ntrac, ntcw, ntiw, ntrw, ntsw, ntgl, ntclamt, imp_physics, imp_physics_nssl, imp_physics_fer_hires, imp_physics_gfdl, imp_physics_thompson, imp_physics_wsm6, imp_physics_zhao_carr, imp_physics_zhao_carr_pdf, imp_physics_mg, iovr, iovr_rand, iovr_maxrand, iovr_max, iovr_dcorr, iovr_exp, iovr_exprand, idcor, idcor_con, idcor_hogan, idcor_oreopoulos, lcrick, lcnorm, imfdeepcnv, imfdeepcnv_gf, imfdeepcnv_c3, do_mynnedmf, lgfdlmprad, xr_cnvcld, uni_cld, lmfshal, lmfdeep2, cldcov, clouds1, effrl, effri, effrr, effrs, effr_in, effrl_inout, effri_inout, effrs_inout, lwp_ex, iwp_ex, lwp_fc, iwp_fc, dzlay, latdeg, julian, yearlen, gridkm, top_at_1, si, con_ttp, con_pi, con_g, con_rd, con_thgni, cld_frac, cld_lwp, cld_reliq, cld_iwp, cld_reice, cld_rwp, cld_rerain, cld_swp, cld_resnow, clds, mtop, mbot, de_lgth, alpha)
Subroutine radiation_clouds_prop computes cloud related quantities for different cloud microphysics s...