--- trunk/phylmd/CV_routines/cv_uncompress.f 2014/07/15 13:43:24 102 +++ trunk/phylmd/CV_routines/cv_uncompress.f 2014/08/29 13:00:05 103 @@ -4,51 +4,47 @@ contains - SUBROUTINE cv_uncompress(nloc,len,ncum,nd,idcum & - ,iflag & - ,precip,cbmf & - ,ft,fq,fu,fv & - ,Ma,qcondc & - ,iflag1 & - ,precip1,cbmf1 & - ,ft1,fq1,fu1,fv1 & - ,Ma1,qcondc1 & - ) - use cvparam - - ! inputs: - integer, intent(in):: len, ncum, nd, nloc - integer idcum(nloc) - integer iflag(nloc) - real precip(nloc), cbmf(nloc) - real ft(nloc,nd), fq(nloc,nd), fu(nloc,nd), fv(nloc,nd) - real Ma(nloc,nd) - real qcondc(nloc,nd) !cld - - ! outputs: - integer iflag1(len) - real precip1(len), cbmf1(len) - real ft1(len,nd), fq1(len,nd), fu1(len,nd), fv1(len,nd) - real Ma1(len,nd) - real qcondc1(len,nd) !cld + SUBROUTINE cv_uncompress(idcum, iflag, precip, cbmf, ft, fq, fu, fv, Ma, & + qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, Ma1, qcondc1) - ! local variables: - integer i,k + use cv_param, ONLY: nl + USE dimphy, ONLY: klev, klon - do i=1,ncum + integer, intent(in):: idcum(:) ! (ncum) + integer, intent(in):: iflag(klon) + real, intent(in):: precip(klon), cbmf(klon) + real, intent(in):: ft(klon, klev), fq(klon, klev), fu(klon, klev) + real, intent(in):: fv(klon, klev) + real, intent(in):: Ma(klon, klev) + real, intent(in):: qcondc(klon, klev) !cld + + integer, intent(inout):: iflag1(klon) + real, intent(inout):: precip1(klon), cbmf1(klon) + real, intent(inout), dimension(klon, klev):: ft1, fq1, fu1, fv1 + real, intent(inout):: Ma1(klon, klev) + real, intent(inout):: qcondc1(klon, klev) !cld + + ! Local: + integer ncum, i, k + + !------------------------------------------------------------------ + + ncum = size(idcum) + + do i=1, ncum precip1(idcum(i))=precip(i) cbmf1(idcum(i))=cbmf(i) iflag1(idcum(i))=iflag(i) end do - do k=1,nl - do i=1,ncum - ft1(idcum(i),k)=ft(i,k) - fq1(idcum(i),k)=fq(i,k) - fu1(idcum(i),k)=fu(i,k) - fv1(idcum(i),k)=fv(i,k) - Ma1(idcum(i),k)=Ma(i,k) - qcondc1(idcum(i),k)=qcondc(i,k) + do k=1, nl + do i=1, ncum + ft1(idcum(i), k)=ft(i, k) + fq1(idcum(i), k)=fq(i, k) + fu1(idcum(i), k)=fu(i, k) + fv1(idcum(i), k)=fv(i, k) + Ma1(idcum(i), k)=Ma(i, k) + qcondc1(idcum(i), k)=qcondc(i, k) end do end do