3  &, pbint , pbsui, pcldld, pcldlu &
 
    4  &, pcntrb, pemit, pfluc &
 
  103 real_b :: zclear(
klon)            , zcloud(
klon)&
 
  109 integer_m :: ikcp1, ikm1, ikp1, imaxc, imxm1, imxp1, jcloud,&
 
  110              &jk, jk1, jk2, jkj, jl
 
  113 real_b :: zalpha1, zcfrac
 
  130     pflux(jl,1,jk) = pfluc(jl,1,jk)
 
  131     pflux(jl,2,jk) = pfluc(jl,2,jk)
 
  157       zupf(jl,jk2,jk1)=pfluc(jl,1,jk1)
 
  158       zdnf(jl,jk2,jk1)=pfluc(jl,2,jk1)
 
  169 DO jcloud = 1 , imaxc
 
  186           zfu(jl) = zfu(jl) + pcntrb(jl,jk,jkj)
 
  192       zupf(jl,ikcp1,jk)=pbint(jl,jk)-zfu(jl)
 
  207     IF (jk  <  jcloud) 
THEN 
  210           zfd(jl) = zfd(jl) + pcntrb(jl,jk,jkj)
 
  216       zdnf(jl,ikcp1,jk)=-pbint(jl,jk)-zfd(jl)
 
  235       zclm(jl,jk1,jk2) = _zero_
 
  254   DO jk = jk1 - 1 , 1 , -1
 
  258         zclear(jl)=zclear(jl)*(_one_-max(pcldlu(jl,jk),zcloud(jl)))&
 
  259          &/(_one_-min(zcloud(jl),_one_-
repclc))
 
  260         zclm(jl,jk1,jk) = _one_ - zclear(jl)
 
  261         zcloud(jl) = pcldlu(jl,jk)
 
  262       ELSEIF (
novlp == 2) 
THEN 
  264         zcloud(jl) = max(zcloud(jl) , pcldlu(jl,jk))
 
  265         zclm(jl,jk1,jk) = zcloud(jl)
 
  266       ELSEIF (
novlp == 3) 
THEN 
  268         zclear(jl) = zclear(jl)*(_one_ - pcldlu(jl,jk))
 
  269         zcloud(jl) = _one_ - zclear(jl)
 
  270         zclm(jl,jk1,jk) = zcloud(jl)
 
  271       ELSEIF (
novlp == 4) 
THEN 
  274         zclear(jl)=zclear(jl)*( &
 
  275          & zalpha1*(_one_-max(pcldlu(jl,jk),zcloud(jl))) &
 
  276          &        /(_one_-min(zcloud(jl),_one_-
repclc)) &
 
  277          & +(_one_-zalpha1)*(_one_-pcldlu(jl,jk)) )
 
  278         zclm(jl,jk1,jk) = _one_ - zclear(jl) 
 
  279         zcloud(jl) = pcldlu(jl,jk)
 
  303         zclear(jl)=zclear(jl)*(_one_-max(pcldld(jl,jk),zcloud(jl)))&
 
  304          &/(_one_-min(zcloud(jl),_one_-
repclc))
 
  305         zclm(jl,jk1,jk) = _one_ - zclear(jl)
 
  306         zcloud(jl) = pcldld(jl,jk)
 
  307       ELSEIF (
novlp == 2) 
THEN 
  309         zcloud(jl) = max(zcloud(jl) , pcldld(jl,jk))
 
  310         zclm(jl,jk1,jk) = zcloud(jl)
 
  311       ELSEIF (
novlp == 3) 
THEN 
  313         zclear(jl) = zclear(jl)*(_one_ - pcldld(jl,jk))
 
  314         zcloud(jl) = _one_ - zclear(jl)
 
  315         zclm(jl,jk1,jk) = zcloud(jl)
 
  316       ELSEIF (
novlp == 4) 
THEN 
  319         zclear(jl)=zclear(jl)*( &
 
  320          & zalpha1*(_one_-max(pcldld(jl,jk),zcloud(jl))) &
 
  321          &        /(_one_-min(zcloud(jl),_one_-
repclc)) &
 
  322          & +(_one_-zalpha1)*(_one_ - pcldld(jl,jk)) )
 
  323         zclm(jl,jk1,jk) = _one_ - zclear(jl)
 
  324         zcloud(jl) = pcldld(jl,jk)
 
  344   pflux(jl,2,
klev+1) = _zero_
 
  347 DO jk1 = 
klev , 1 , -1
 
  352     zfd(jl) = (_one_ - zclm(jl,jk1,
klev)) * zdnf(jl,1,jk1)
 
  356     zfd(jl) = zfd(jl) + zclm(jl,jk1,jk1) * zdnf(jl,jk1+1,jk1)
 
  361   DO jk = 
klev-1 , jk1 , -1
 
  363       zcfrac = zclm(jl,jk1,jk+1) - zclm(jl,jk1,jk)
 
  364       zfd(jl) =  zfd(jl) + zcfrac * zdnf(jl,jk+2,jk1)
 
  369     pflux(jl,2,jk1) = zfd(jl)
 
  384   pflux(jl,1,1) = pemit(jl)*pbsui(jl)-(_one_-pemit(jl))*pflux(jl,2,1)
 
  399     zfu(jl) = (_one_ - zclm(jl,jk1,1)) * zupf(jl,1,jk1)
 
  403     zfu(jl) =  zfu(jl) + zclm(jl,jk1,jk1-1) * zupf(jl,jk1,jk1)
 
  410       zcfrac = zclm(jl,jk1,jk-1) - zclm(jl,jk1,jk)
 
  411       zfu(jl) =  zfu(jl) + zcfrac * zupf(jl,jk  ,jk1)
 
  416     pflux(jl,1,jk1) = zfu(jl)
 
subroutine lwc(KIDIA, KFDIA, KLON, KLEV, PBINT, PBSUI, PCLDLD, PCLDLU, PCNTRB, PEMIT, PFLUC, PFLUX)
 
real(kind=jprb), dimension(:), allocatable ra1ovlp