68 character(len=*) :: tinteg_type
73 if ( tinteg_type /=
'RK3' )
then
74 log_error(
"ATMOS_DYN_Tinteg_large_rk3_setup",*)
'TINTEG_LARGE_TYPE is not RK3. Check!'
84 DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, &
86 DENS_av, MOMZ_av, MOMX_av, MOMY_av, RHOT_av, QTRC_av, &
87 num_diff, num_diff_q, &
88 DENS_tp, MOMZ_tp, MOMX_tp, MOMY_tp, RHOT_tp, RHOQ_tp, &
90 CDZ, CDX, CDY, FDZ, FDX, FDY, &
91 RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, &
93 J13G, J23G, J33G, MAPF, &
94 AQ_R, AQ_CV, AQ_CP, AQ_MASS, &
95 REF_dens, REF_pott, REF_qv, REF_pres, &
96 BND_W, BND_E, BND_S, BND_N, TwoD, &
97 ND_COEF, ND_COEF_Q, ND_LAPLACIAN_NUM, &
98 ND_SFC_FACT, ND_USE_RS, &
99 BND_QA, BND_IQ, BND_SMOOTHER_FACT, &
100 DAMP_DENS, DAMP_VELZ, DAMP_VELX, &
101 DAMP_VELY, DAMP_POTT, DAMP_QTRC, &
102 DAMP_alpha_DENS, DAMP_alpha_VELZ, DAMP_alpha_VELX, &
103 DAMP_alpha_VELY, DAMP_alpha_POTT, DAMP_alpha_QTRC, &
104 MFLUX_OFFSET_X, MFLUX_OFFSET_Y, &
105 wdamp_coef, divdmp_coef, &
106 FLAG_TRACER_SPLIT_TEND, &
107 FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, &
108 FLAG_FCT_ALONG_STREAM, &
118 real(
rp),
intent(inout) :: dens(
ka,
ia,
ja)
119 real(
rp),
intent(inout) :: momz(
ka,
ia,
ja)
120 real(
rp),
intent(inout) :: momx(
ka,
ia,
ja)
121 real(
rp),
intent(inout) :: momy(
ka,
ia,
ja)
122 real(
rp),
intent(inout) :: rhot(
ka,
ia,
ja)
127 real(
rp),
intent(inout) :: dens_av(
ka,
ia,
ja)
128 real(
rp),
intent(inout) :: momz_av(
ka,
ia,
ja)
129 real(
rp),
intent(inout) :: momx_av(
ka,
ia,
ja)
130 real(
rp),
intent(inout) :: momy_av(
ka,
ia,
ja)
131 real(
rp),
intent(inout) :: rhot_av(
ka,
ia,
ja)
132 real(
rp),
intent(inout) :: qtrc_av(
ka,
ia,
ja,
qa)
134 real(
rp),
intent(out) :: num_diff(
ka,
ia,
ja,5,3)
135 real(
rp),
intent(out) :: num_diff_q(
ka,
ia,
ja,3)
137 real(
rp),
intent(in) :: dens_tp(
ka,
ia,
ja)
138 real(
rp),
intent(in) :: momz_tp(
ka,
ia,
ja)
139 real(
rp),
intent(in) :: momx_tp(
ka,
ia,
ja)
140 real(
rp),
intent(in) :: momy_tp(
ka,
ia,
ja)
141 real(
rp),
intent(in) :: rhot_tp(
ka,
ia,
ja)
144 real(
rp),
intent(in) :: corioli(
ia,
ja)
146 real(
rp),
intent(in) :: cdz (
ka)
147 real(
rp),
intent(in) :: cdx (
ia)
148 real(
rp),
intent(in) :: cdy (
ja)
149 real(
rp),
intent(in) :: fdz (
ka-1)
150 real(
rp),
intent(in) :: fdx (
ia-1)
151 real(
rp),
intent(in) :: fdy (
ja-1)
152 real(
rp),
intent(in) :: rcdz(
ka)
153 real(
rp),
intent(in) :: rcdx(
ia)
154 real(
rp),
intent(in) :: rcdy(
ja)
155 real(
rp),
intent(in) :: rfdz(
ka-1)
156 real(
rp),
intent(in) :: rfdx(
ia-1)
157 real(
rp),
intent(in) :: rfdy(
ja-1)
159 real(
rp),
intent(in) :: phi (
ka,
ia,
ja)
160 real(
rp),
intent(in) :: gsqrt(
ka,
ia,
ja,7)
161 real(
rp),
intent(in) :: j13g (
ka,
ia,
ja,7)
162 real(
rp),
intent(in) :: j23g (
ka,
ia,
ja,7)
163 real(
rp),
intent(in) :: j33g
164 real(
rp),
intent(in) :: mapf (
ia,
ja,2,4)
166 real(
rp),
intent(in) :: aq_r (
qa)
167 real(
rp),
intent(in) :: aq_cv (
qa)
168 real(
rp),
intent(in) :: aq_cp (
qa)
169 real(
rp),
intent(in) :: aq_mass(
qa)
171 real(
rp),
intent(in) :: ref_dens(
ka,
ia,
ja)
172 real(
rp),
intent(in) :: ref_pott(
ka,
ia,
ja)
173 real(
rp),
intent(in) :: ref_qv (
ka,
ia,
ja)
174 real(
rp),
intent(in) :: ref_pres(
ka,
ia,
ja)
176 logical,
intent(in) :: bnd_w
177 logical,
intent(in) :: bnd_e
178 logical,
intent(in) :: bnd_s
179 logical,
intent(in) :: bnd_n
180 logical,
intent(in) :: twod
182 real(
rp),
intent(in) :: nd_coef
183 real(
rp),
intent(in) :: nd_coef_q
184 integer,
intent(in) :: nd_laplacian_num
185 real(
rp),
intent(in) :: nd_sfc_fact
186 logical,
intent(in) :: nd_use_rs
188 integer,
intent(in) :: bnd_qa
189 integer,
intent(in) :: bnd_iq(
qa)
190 real(
rp),
intent(in) :: bnd_smoother_fact
192 real(
rp),
intent(in) :: damp_dens(
ka,
ia,
ja)
193 real(
rp),
intent(in) :: damp_velz(
ka,
ia,
ja)
194 real(
rp),
intent(in) :: damp_velx(
ka,
ia,
ja)
195 real(
rp),
intent(in) :: damp_vely(
ka,
ia,
ja)
196 real(
rp),
intent(in) :: damp_pott(
ka,
ia,
ja)
197 real(
rp),
intent(in) :: damp_qtrc(
ka,
ia,
ja,bnd_qa)
199 real(
rp),
intent(in) :: damp_alpha_dens(
ka,
ia,
ja)
200 real(
rp),
intent(in) :: damp_alpha_velz(
ka,
ia,
ja)
201 real(
rp),
intent(in) :: damp_alpha_velx(
ka,
ia,
ja)
202 real(
rp),
intent(in) :: damp_alpha_vely(
ka,
ia,
ja)
203 real(
rp),
intent(in) :: damp_alpha_pott(
ka,
ia,
ja)
204 real(
rp),
intent(in) :: damp_alpha_qtrc(
ka,
ia,
ja,bnd_qa)
205 real(
rp),
intent(in) :: mflux_offset_x(
ka,
ja,2)
206 real(
rp),
intent(in) :: mflux_offset_y(
ka,
ia,2)
208 real(
rp),
intent(in) :: wdamp_coef(
ka)
209 real(
rp),
intent(in) :: divdmp_coef
211 logical,
intent(in) :: flag_tracer_split_tend
212 logical,
intent(in) :: flag_fct_momentum
213 logical,
intent(in) :: flag_fct_t
214 logical,
intent(in) :: flag_fct_tracer
215 logical,
intent(in) :: flag_fct_along_stream
217 logical,
intent(in) :: use_average
219 integer,
intent(in) :: i_qv
221 real(
dp),
intent(in) :: dtl
222 real(
dp),
intent(in) :: dts
245 dens0(:,:,:) = dens(:,:,:)
247 momz0(:,:,:) = momz(:,:,:)
249 momx0(:,:,:) = momx(:,:,:)
251 momy0(:,:,:) = momy(:,:,:)
253 rhot0(:,:,:) = rhot(:,:,:)
255 qtrc0(:,:,:,:) = qtrc(:,:,:,:)
259 prog0(:,:,:,:) = prog(:,:,:,:)
272 dtrk = dtl / real( 4-n, kind=
dp )
281 if (
va > 0 ) prog = prog0
285 dens, momz, momx, momy, rhot, qtrc, prog, &
286 dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, &
287 num_diff, num_diff_q, &
289 dens_tp, momz_tp, momx_tp, momy_tp, rhot_tp, rhoq_tp, &
291 cdz, cdx, cdy, fdz, fdx, fdy, &
292 rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, &
294 j13g, j23g, j33g, mapf, &
295 aq_r, aq_cv, aq_cp, aq_mass, &
296 ref_dens, ref_pott, ref_qv, ref_pres, &
297 bnd_w, bnd_e, bnd_s, bnd_n, twod, &
298 nd_coef, nd_coef_q, nd_laplacian_num, nd_sfc_fact, nd_use_rs, &
299 bnd_qa, bnd_iq, bnd_smoother_fact, &
300 damp_dens, damp_velz, damp_velx, &
301 damp_vely, damp_pott, damp_qtrc, &
302 damp_alpha_dens, damp_alpha_velz, damp_alpha_velx, &
303 damp_alpha_vely, damp_alpha_pott, damp_alpha_qtrc, &
304 mflux_offset_x, mflux_offset_y, &
305 wdamp_coef, divdmp_coef, &
306 flag_tracer_split_tend, &
307 flag_fct_momentum, flag_fct_t, flag_fct_tracer, &
308 flag_fct_along_stream, &
309 use_average .AND. last, &