subroutine calcclfr2(prs,t,qv,qc,qs,qi,qr,i1,j1,k1, & clfrflag,ifmro,clfrlo2,clfrmi2,clfrhi2, & clvapfrlo,clvapfrmi,clvapfrhi, & clicefrlo,clicefrmi,clicefrhi) implicit none integer i1,j1,k1,clfrflag,ifmro real prs(i1,j1,k1),t(i1,j1,k1) real qs(i1,j1,k1),qv(i1,j1,k1),qr(i1,j1,k1) real qi(i1,j1,k1),qc(i1,j1,k1) real clfrlo2(i1,j1),clfrmi2(i1,j1),clfrhi2(i1,j1) real clvapfrlo(i1,j1),clvapfrmi(i1,j1),clvapfrhi(i1,j1) real clicefrlo(i1,j1),clicefrmi(i1,j1),clicefrhi(i1,j1) real CoverTot(i1,j1,k1),CoverVap(i1,j1,k1),CoverIce(i1,j1,k1) integer i,j,k,kclo,kcmd,kchi call calcvapclfr(prs,t,qv,qc,i1,j1,k1, & clfrflag,clvapfrlo,clvapfrmi,clvapfrhi,CoverVap) call calciceclfr(prs,t,qv,qc,qs,qi,qr,i1,j1,k1, & clfrflag,clicefrlo,clicefrmi,clicefrhi,CoverIce) do i=1,i1-1 do j=1,j1-1 clfrlo2(i,j)=amax1(clvapfrlo(i,j),clicefrlo(i,j)) clfrmi2(i,j)=amax1(clvapfrmi(i,j),clicefrmi(i,j)) clfrhi2(i,j)=amax1(clvapfrhi(i,j),clicefrhi(i,j)) enddo enddo if(ifmro.eq.1) then do i=1,i1-1 do j=1,j1-1 do k=1,k1 CoverTot(i,j,k)=amax1(CoverVap(i,j,k),CoverIce(i,j,k) ) if(prs(i,j,k).lt.97000.) kclo=k if(prs(i,j,k).lt.80000.) kcmd=k if(prs(i,j,k).lt.45000.) kchi=k enddo call MaxRanOve(CoverVap(i,j,:),kclo,kcmd,kchi,k1, & clvapfrlo(i,j),clvapfrmi(i,j),clvapfrhi(i,j)) call MaxRanOve(CoverIce(i,j,:),kclo,kcmd,kchi,k1, & clicefrlo(i,j),clicefrmi(i,j),clicefrhi(i,j)) call MaxRanOve(CoverTot(i,j,:),kclo,kcmd,kchi,k1, & clfrlo2(i,j),clfrmi2(i,j),clfrhi2(i,j)) enddo enddo endif return end subroutine calcclfr2 subroutine MaxRanOve(Cover,kclo,kcmd,kchi,k1, & locover,micover,hicover) real Cover(k1) real locover,micover,hicover integer kclo,kcmd,kchi,k1,a1 locover = 1. - Cover(kcmd+1) micover = 1. - Cover(kchi+1) hicover = 1. - Cover(1) do a1=2,k1 IF( A1.LE.KCLO.AND.A1.GT.(KCMD+1) ) THEN locover=locover*( 1.-amax1(Cover(a1-1),Cover(a1)) ) / & (1.-amin1(Cover(a1-1),0.99)) locover=amin1(locover,1.) ELSEIF( A1.LE.KCMD.AND.A1.GT.(KCHI+1) ) THEN micover=micover*( 1.-amax1(Cover(a1-1),Cover(a1)) ) / & (1.-amin1(Cover(a1-1),0.99)) micover=amin1(micover,1.) ELSEIF(A1.LE.KCHI) THEN hicover=hicover*( 1.-amax1(Cover(a1-1),Cover(a1)) ) / & (1.-amin1(Cover(a1-1),0.99)) hicover=amin1(hicover,1.) ENDIF enddo locover = 1. - locover micover = 1. - micover hicover = 1. - hicover end subroutine MaxRanOve