--- trunk/phylmd/CV_routines/cv_uncompress.f90 2013/11/15 18:45:49 76 +++ trunk/Sources/phylmd/CV_routines/cv_uncompress.f 2015/04/29 15:47:56 134 @@ -1,53 +1,53 @@ +module cv_uncompress_m - 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 - implicit none - - -! inputs: - integer 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 - -! local variables: - integer i,k - - do 2000 i=1,ncum - precip1(idcum(i))=precip(i) - cbmf1(idcum(i))=cbmf(i) - iflag1(idcum(i))=iflag(i) - 2000 continue - - do 2020 k=1,nl - do 2010 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) - 2010 continue - 2020 continue + implicit none - return - end +contains + + SUBROUTINE cv_uncompress(idcum, iflag, precip, cbmf, ft, fq, fu, fv, Ma, & + qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, Ma1, qcondc1) + + use cv_param, ONLY: nl + USE dimphy, ONLY: klev, klon + + 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) + end do + end do + + end SUBROUTINE cv_uncompress + +end module cv_uncompress_m