/[lmdze]/trunk/Sources/phylmd/CV30_routines/cv30_compress.f
ViewVC logotype

Annotation of /trunk/Sources/phylmd/CV30_routines/cv30_compress.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 189 - (hide annotations)
Tue Mar 29 15:20:23 2016 UTC (8 years, 2 months ago) by guez
File size: 3100 byte(s)
There was a function gr_phy_write_3d in dyn3d and a function
gr_phy_write_2d in module grid_change. Moved them into a new module
gr_phy_write_m under a generic interface gr_phy_write. Replaced calls
to gr_fi_ecrit by calls to gr_phy_write.

Removed arguments len, nloc and nd of cv30_compress.

Removed arguments wd and wd1 of cv30_uncompress, wd of cv30_yield, wd
of concvl, wd1 of cv_driver. Was just filled with 0. Removed option
ok_gust in physiq, never used.

In cv30_unsat, cv30_yield and cv_driver, we only need to define b to
level nl - 1.

1 guez 185 module cv30_compress_m
2 guez 47
3 guez 91 implicit none
4 guez 47
5 guez 91 contains
6 guez 47
7 guez 189 SUBROUTINE cv30_compress(ncum, iflag1, nk1, icb1, icbs1, plcl1, tnk1, qnk1, &
8     gznk1, pbase1, buoybase1, t1, q1, qs1, u1, v1, gz1, th1, h1, lv1, cpn1, &
9     p1, ph1, tv1, tp1, tvp1, clw1, sig1, w01, iflag, nk, icb, icbs, plcl, &
10     tnk, qnk, gznk, pbase, buoybase, t, q, qs, u, v, gz, th, h, lv, cpn, p, &
11     ph, tv, tp, tvp, clw, sig, w0)
12 guez 47
13 guez 189 ! Compress the fields (vectorization over convective gridpoints).
14 guez 47
15 guez 189 use cv30_param_m, only: nl
16     USE dimphy, ONLY: klev, klon
17 guez 47
18 guez 91 ! inputs:
19 guez 189 integer, intent(in):: ncum
20     integer iflag1(klon), nk1(klon), icb1(klon), icbs1(klon)
21     real plcl1(klon), tnk1(klon), qnk1(klon), gznk1(klon)
22     real pbase1(klon), buoybase1(klon)
23     real, intent(in):: t1(klon, klev)
24     real, intent(in):: q1(klon, klev), qs1(klon, klev)
25     real, intent(in):: u1(klon, klev), v1(klon, klev)
26     real gz1(klon, klev), h1(klon, klev), lv1(klon, klev), cpn1(klon, klev)
27     real, intent(in):: p1(klon, klev), ph1(klon, klev+1)
28     real, intent(in):: tv1(klon, klev), tp1(klon, klev)
29     real tvp1(klon, klev), clw1(klon, klev)
30     real th1(klon, klev)
31     real sig1(klon, klev), w01(klon, klev)
32 guez 47
33 guez 91 ! outputs:
34 guez 189 integer iflag(klon), nk(klon), icb(klon), icbs(klon)
35     real plcl(klon), tnk(klon), qnk(klon), gznk(klon)
36     real pbase(klon), buoybase(klon)
37     real t(klon, klev), q(klon, klev), qs(klon, klev)
38     real u(klon, klev), v(klon, klev)
39     real gz(klon, klev), h(klon, klev), lv(klon, klev), cpn(klon, klev)
40     real p(klon, klev), ph(klon, klev+1), tv(klon, klev), tp(klon, klev)
41     real tvp(klon, klev), clw(klon, klev)
42     real th(klon, klev)
43     real sig(klon, klev), w0(klon, klev)
44 guez 91
45 guez 189 ! Local:
46 guez 105 integer i, k, nn
47 guez 91
48 guez 189 !---------------------------------------------------------------
49 guez 91
50 guez 189 do k=1, nl+1
51 guez 47 nn=0
52 guez 189 do i=1, klon
53     if (iflag1(i) == 0) then
54 guez 91 nn=nn+1
55     sig(nn, k)=sig1(i, k)
56     w0(nn, k)=w01(i, k)
57     t(nn, k)=t1(i, k)
58     q(nn, k)=q1(i, k)
59     qs(nn, k)=qs1(i, k)
60     u(nn, k)=u1(i, k)
61     v(nn, k)=v1(i, k)
62     gz(nn, k)=gz1(i, k)
63     h(nn, k)=h1(i, k)
64     lv(nn, k)=lv1(i, k)
65     cpn(nn, k)=cpn1(i, k)
66     p(nn, k)=p1(i, k)
67     ph(nn, k)=ph1(i, k)
68     tv(nn, k)=tv1(i, k)
69     tp(nn, k)=tp1(i, k)
70     tvp(nn, k)=tvp1(i, k)
71     clw(nn, k)=clw1(i, k)
72     th(nn, k)=th1(i, k)
73     endif
74     end do
75     end do
76 guez 47
77 guez 189 if (nn /= ncum) then
78 guez 91 print*, 'strange! nn not equal to ncum: ', nn, ncum
79 guez 189 stop 1
80 guez 91 endif
81 guez 47
82 guez 91 nn=0
83 guez 189 do i=1, klon
84     if (iflag1(i) == 0) then
85 guez 91 nn=nn+1
86     pbase(nn)=pbase1(i)
87     buoybase(nn)=buoybase1(i)
88     plcl(nn)=plcl1(i)
89     tnk(nn)=tnk1(i)
90     qnk(nn)=qnk1(i)
91     gznk(nn)=gznk1(i)
92     nk(nn)=nk1(i)
93     icb(nn)=icb1(i)
94     icbs(nn)=icbs1(i)
95     iflag(nn)=iflag1(i)
96     endif
97     end do
98 guez 47
99 guez 185 end SUBROUTINE cv30_compress
100 guez 91
101 guez 185 end module cv30_compress_m

  ViewVC Help
Powered by ViewVC 1.1.21