1 SUBROUTINE cv3a_compress(len, nloc, ncum, nd, ntra, compress, &
2 iflag1, nk1, icb1, icbs1, &
3 plcl1, tnk1, qnk1, gznk1, hnk1, unk1, vnk1, &
4 wghti1, pbase1, buoybase1, &
5 t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, &
6 u1, v1, gz1, th1, th1_wake, &
8 h1, lv1, lf1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, &
9 h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, &
12 iflag, nk, icb, icbs, &
13 plcl, tnk, qnk, gznk, hnk, unk, vnk, &
14 wghti, pbase, buoybase, &
15 t, q, qs, t_wake, q_wake, qs_wake, s_wake, &
16 u, v, gz, th, th_wake, &
18 h, lv, lf, cpn, p, ph, tv, tp, tvp, clw, &
19 h_wake, lv_wake, lf_wake, cpn_wake, tv_wake, &
36 INTEGER,
INTENT (IN) :: len, nloc, nd, ntra
38 LOGICAL,
INTENT (IN) :: compress
40 INTEGER,
DIMENSION (len),
INTENT (IN) :: iflag1, nk1, icb1, icbs1
41 REAL,
DIMENSION (len),
INTENT (IN) :: plcl1, tnk1, qnk1, gznk1
42 REAL,
DIMENSION (len),
INTENT (IN) :: hnk1, unk1, vnk1
43 REAL,
DIMENSION (len, nd),
INTENT (IN) :: wghti1(len, nd)
44 REAL,
DIMENSION (len),
INTENT (IN) :: pbase1, buoybase1
45 REAL,
DIMENSION (len, nd),
INTENT (IN) :: t1, q1, qs1
46 REAL,
DIMENSION (len, nd),
INTENT (IN) :: t1_wake, q1_wake, qs1_wake
47 REAL,
DIMENSION (len),
INTENT (IN) :: s1_wake
48 REAL,
DIMENSION (len, nd),
INTENT (IN) :: u1, v1
49 REAL,
DIMENSION (len, nd),
INTENT (IN) :: gz1, th1, th1_wake
50 REAL,
DIMENSION (len, nd,ntra),
INTENT (IN) :: tra1
51 REAL,
DIMENSION (len, nd),
INTENT (IN) :: h1, lv1, lf1, cpn1
52 REAL,
DIMENSION (len, nd),
INTENT (IN) :: p1
53 REAL,
DIMENSION (len, nd+1),
INTENT (IN) :: ph1(len, nd+1)
54 REAL,
DIMENSION (len, nd),
INTENT (IN) :: tv1, tp1
55 REAL,
DIMENSION (len, nd),
INTENT (IN) :: tvp1, clw1
56 REAL,
DIMENSION (len, nd),
INTENT (IN) :: h1_wake, lv1_wake, cpn1_wake
57 REAL,
DIMENSION (len, nd),
INTENT (IN) :: tv1_wake, lf1_wake
58 REAL,
DIMENSION (len, nd),
INTENT (IN) :: sig1, w01
59 REAL,
DIMENSION (len),
INTENT (IN) :: ptop21
60 REAL,
DIMENSION (len),
INTENT (IN) :: Ale1, Alp1
61 REAL,
DIMENSION (len, nd),
INTENT (IN) :: omega1
64 INTEGER,
INTENT (INOUT) :: ncum
68 INTEGER,
DIMENSION (nloc),
INTENT (OUT) :: iflag, nk, icb, icbs
69 REAL,
DIMENSION (nloc),
INTENT (OUT) :: plcl, tnk, qnk, gznk
70 REAL,
DIMENSION (nloc),
INTENT (OUT) :: hnk, unk, vnk
71 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: wghti
72 REAL,
DIMENSION (nloc),
INTENT (OUT) :: pbase, buoybase
73 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: t, q, qs
74 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: t_wake, q_wake, qs_wake
75 REAL,
DIMENSION (nloc),
INTENT (OUT) :: s_wake
76 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: u, v
77 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: gz, th, th_wake
78 REAL,
DIMENSION (nloc, nd,ntra),
INTENT (OUT) :: tra
79 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: h, lv, lf, cpn
80 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: p
81 REAL,
DIMENSION (nloc, nd+1),
INTENT (OUT) :: ph
82 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: tv, tp
83 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: tvp, clw
84 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: h_wake, lv_wake, cpn_wake
85 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: tv_wake, lf_wake
86 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: sig, w0
87 REAL,
DIMENSION (nloc),
INTENT (OUT) :: ptop2
88 REAL,
DIMENSION (nloc),
INTENT (OUT) :: Ale, Alp
89 REAL,
DIMENSION (nloc, nd),
INTENT (OUT) :: omega
94 CHARACTER (LEN=20) :: modname =
'cv3a_compress'
95 CHARACTER (LEN=80) :: abort_message
104 IF (iflag1(i)==0)
THEN
106 wghti(nn, k) = wghti1(i, k)
109 qs(nn, k) = qs1(i, k)
110 t_wake(nn, k) = t1_wake(i, k)
111 q_wake(nn, k) = q1_wake(i, k)
112 qs_wake(nn, k) = qs1_wake(i, k)
115 gz(nn, k) = gz1(i, k)
116 th(nn, k) = th1(i, k)
117 th_wake(nn, k) = th1_wake(i, k)
119 lv(nn, k) = lv1(i, k)
120 lf(nn, k) = lf1(i, k)
121 cpn(nn, k) = cpn1(i, k)
123 ph(nn, k) = ph1(i, k)
124 tv(nn, k) = tv1(i, k)
125 tp(nn, k) = tp1(i, k)
126 tvp(nn, k) = tvp1(i, k)
127 clw(nn, k) = clw1(i, k)
128 h_wake(nn, k) = h1_wake(i, k)
129 lv_wake(nn, k) = lv1_wake(i, k)
130 lf_wake(nn, k) = lf1_wake(i, k)
131 cpn_wake(nn, k) = cpn1_wake(i, k)
132 tv_wake(nn, k) = tv1_wake(i, k)
133 sig(nn, k) = sig1(i, k)
134 w0(nn, k) = w01(i, k)
135 omega(nn, k) = omega1(i, k)
154 print *,
'WARNING nn not equal to ncum: ', nn, ncum
161 IF (iflag1(i)==0)
THEN
163 s_wake(nn) = s1_wake(i)
164 iflag(nn) = iflag1(i)
175 pbase(nn) = pbase1(i)
176 buoybase(nn) = buoybase1(i)
177 sig(nn, nd) = sig1(i, nd)
185 print *,
'WARNING nn not equal to ncum: ', nn, ncum
195 wghti(:,1:
nl+1) = wghti1(:,1:
nl+1)
196 t(:,1:
nl+1) = t1(:,1:
nl+1)
197 q(:,1:
nl+1) = q1(:,1:
nl+1)
198 qs(:,1:
nl+1) = qs1(:,1:
nl+1)
199 t_wake(:,1:
nl+1) = t1_wake(:,1:
nl+1)
200 q_wake(:,1:
nl+1) = q1_wake(:,1:
nl+1)
201 qs_wake(:,1:
nl+1) = qs1_wake(:,1:
nl+1)
202 u(:,1:
nl+1) = u1(:,1:
nl+1)
203 v(:,1:
nl+1) = v1(:,1:
nl+1)
204 gz(:,1:
nl+1) = gz1(:,1:
nl+1)
205 th(:,1:
nl+1) = th1(:,1:
nl+1)
206 th_wake(:,1:
nl+1) = th1_wake(:,1:
nl+1)
207 h(:,1:
nl+1) = h1(:,1:
nl+1)
208 lv(:,1:
nl+1) = lv1(:,1:
nl+1)
209 lf(:,1:
nl+1) = lf1(:,1:
nl+1)
210 cpn(:,1:
nl+1) = cpn1(:,1:
nl+1)
211 p(:,1:
nl+1) = p1(:,1:
nl+1)
212 ph(:,1:
nl+1) = ph1(:,1:
nl+1)
213 tv(:,1:
nl+1) = tv1(:,1:
nl+1)
214 tp(:,1:
nl+1) = tp1(:,1:
nl+1)
215 tvp(:,1:
nl+1) = tvp1(:,1:
nl+1)
216 clw(:,1:
nl+1) = clw1(:,1:
nl+1)
217 h_wake(:,1:
nl+1) = h1_wake(:,1:
nl+1)
218 lv_wake(:,1:
nl+1) = lv1_wake(:,1:
nl+1)
219 lf_wake(:,1:
nl+1) = lf1_wake(:,1:
nl+1)
220 cpn_wake(:,1:
nl+1) = cpn1_wake(:,1:
nl+1)
221 tv_wake(:,1:
nl+1) = tv1_wake(:,1:
nl+1)
222 sig(:,1:
nl+1) = sig1(:,1:
nl+1)
223 w0(:,1:
nl+1) = w01(:,1:
nl+1)
224 omega(:,1:
nl+1) = omega1(:,1:
nl+1)
226 s_wake(:) = s1_wake(:)
239 buoybase(:) = buoybase1(:)
240 sig(:, nd) = sig1(:, nd)
subroutine cv3a_compress(len, nloc, ncum, nd, ntra, compress, iflag1, nk1, icb1, icbs1, plcl1, tnk1, qnk1, gznk1, hnk1, unk1, vnk1, wghti1, pbase1, buoybase1, t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, u1, v1, gz1, th1, th1_wake, tra1, h1, lv1, lf1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, sig1, w01, ptop21, Ale1, Alp1, omega1, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, hnk, unk, vnk, wghti, pbase, buoybase, t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, gz, th, th_wake, tra, h, lv, lf, cpn, p, ph, tv, tp, tvp, clw, h_wake, lv_wake, lf_wake, cpn_wake, tv_wake, sig, w0, ptop2, Ale, Alp, omega)
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm u(l)
subroutine abort_physic(modname, message, ierr)