1 |
|
module cv_uncompress_m |
2 |
|
|
3 |
SUBROUTINE cv_uncompress(nloc,len,ncum,nd,idcum & |
implicit none |
|
,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 |
|
4 |
|
|
5 |
return |
contains |
6 |
end |
|
7 |
|
SUBROUTINE cv_uncompress(idcum, iflag, precip, cbmf, ft, fq, fu, fv, Ma, & |
8 |
|
qcondc, iflag1, precip1, cbmf1, ft1, fq1, fu1, fv1, Ma1, qcondc1) |
9 |
|
|
10 |
|
use cv_param, ONLY: nl |
11 |
|
USE dimphy, ONLY: klev, klon |
12 |
|
|
13 |
|
integer, intent(in):: idcum(:) ! (ncum) |
14 |
|
integer, intent(in):: iflag(klon) |
15 |
|
real, intent(in):: precip(klon), cbmf(klon) |
16 |
|
real, intent(in):: ft(klon, klev), fq(klon, klev), fu(klon, klev) |
17 |
|
real, intent(in):: fv(klon, klev) |
18 |
|
real, intent(in):: Ma(klon, klev) |
19 |
|
real, intent(in):: qcondc(klon, klev) !cld |
20 |
|
|
21 |
|
integer, intent(inout):: iflag1(klon) |
22 |
|
real, intent(inout):: precip1(klon), cbmf1(klon) |
23 |
|
real, intent(inout), dimension(klon, klev):: ft1, fq1, fu1, fv1 |
24 |
|
real, intent(inout):: Ma1(klon, klev) |
25 |
|
real, intent(inout):: qcondc1(klon, klev) !cld |
26 |
|
|
27 |
|
! Local: |
28 |
|
integer ncum, i, k |
29 |
|
|
30 |
|
!------------------------------------------------------------------ |
31 |
|
|
32 |
|
ncum = size(idcum) |
33 |
|
|
34 |
|
do i=1, ncum |
35 |
|
precip1(idcum(i))=precip(i) |
36 |
|
cbmf1(idcum(i))=cbmf(i) |
37 |
|
iflag1(idcum(i))=iflag(i) |
38 |
|
end do |
39 |
|
|
40 |
|
do k=1, nl |
41 |
|
do i=1, ncum |
42 |
|
ft1(idcum(i), k)=ft(i, k) |
43 |
|
fq1(idcum(i), k)=fq(i, k) |
44 |
|
fu1(idcum(i), k)=fu(i, k) |
45 |
|
fv1(idcum(i), k)=fv(i, k) |
46 |
|
Ma1(idcum(i), k)=Ma(i, k) |
47 |
|
qcondc1(idcum(i), k)=qcondc(i, k) |
48 |
|
end do |
49 |
|
end do |
50 |
|
|
51 |
|
end SUBROUTINE cv_uncompress |
52 |
|
|
53 |
|
end module cv_uncompress_m |