15 #include "inc_openmp.h" 70 character(len=*) :: tinteg_type
75 if ( tinteg_type /=
'EULER' )
then 76 write(*,*)
'xxx TINTEG_LARGE_TYPE is not EULER. Check!' 86 DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, PROG, &
87 DENS_av, MOMZ_av, MOMX_av, MOMY_av, RHOT_av, QTRC_av, &
89 num_diff, num_diff_q, &
90 DENS_tp, MOMZ_tp, MOMX_tp, MOMY_tp, RHOT_tp, RHOQ_tp, &
92 CDZ, CDX, CDY, FDZ, FDX, FDY, &
93 RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, &
95 J13G, J23G, J33G, MAPF, &
96 AQ_R, AQ_CV, AQ_CP, AQ_MASS, &
97 REF_dens, REF_pott, REF_qv, REF_pres, &
98 BND_W, BND_E, BND_S, BND_N, &
99 ND_COEF, ND_COEF_Q, ND_ORDER, ND_SFC_FACT, ND_USE_RS, &
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, &
106 FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, &
107 FLAG_FCT_ALONG_STREAM, &
148 real(RP),
intent(inout) :: dens(
ka,
ia,
ja)
149 real(RP),
intent(inout) :: momz(
ka,
ia,
ja)
150 real(RP),
intent(inout) :: momx(
ka,
ia,
ja)
151 real(RP),
intent(inout) :: momy(
ka,
ia,
ja)
152 real(RP),
intent(inout) :: rhot(
ka,
ia,
ja)
153 real(RP),
intent(inout) :: qtrc(
ka,
ia,
ja,
qa)
154 real(RP),
intent(inout) :: prog(
ka,
ia,
ja,
va)
156 real(RP),
intent(inout) :: dens_av(
ka,
ia,
ja)
157 real(RP),
intent(inout) :: momz_av(
ka,
ia,
ja)
158 real(RP),
intent(inout) :: momx_av(
ka,
ia,
ja)
159 real(RP),
intent(inout) :: momy_av(
ka,
ia,
ja)
160 real(RP),
intent(inout) :: rhot_av(
ka,
ia,
ja)
161 real(RP),
intent(inout) :: qtrc_av(
ka,
ia,
ja,
qa)
163 real(RP),
intent(out) :: mflx_hi(
ka,
ia,
ja,3)
164 real(RP),
intent(out) :: tflx_hi(
ka,
ia,
ja,3)
166 real(RP),
intent(out) :: num_diff (
ka,
ia,
ja,5,3)
167 real(RP),
intent(out) :: num_diff_q(
ka,
ia,
ja,3)
169 real(RP),
intent(in) :: dens_tp(
ka,
ia,
ja)
170 real(RP),
intent(in) :: momz_tp(
ka,
ia,
ja)
171 real(RP),
intent(in) :: momx_tp(
ka,
ia,
ja)
172 real(RP),
intent(in) :: momy_tp(
ka,
ia,
ja)
173 real(RP),
intent(in) :: rhot_tp(
ka,
ia,
ja)
174 real(RP),
intent(in) :: rhoq_tp(
ka,
ia,
ja,
qa)
176 real(RP),
intent(in) :: corioli(
ia,
ja)
178 real(RP),
intent(in) :: cdz (
ka)
179 real(RP),
intent(in) :: cdx (
ia)
180 real(RP),
intent(in) :: cdy (
ja)
181 real(RP),
intent(in) :: fdz (
ka-1)
182 real(RP),
intent(in) :: fdx (
ia-1)
183 real(RP),
intent(in) :: fdy (
ja-1)
184 real(RP),
intent(in) :: rcdz(
ka)
185 real(RP),
intent(in) :: rcdx(
ia)
186 real(RP),
intent(in) :: rcdy(
ja)
187 real(RP),
intent(in) :: rfdz(
ka-1)
188 real(RP),
intent(in) :: rfdx(
ia-1)
189 real(RP),
intent(in) :: rfdy(
ja-1)
191 real(RP),
intent(in) :: phi (
ka,
ia,
ja)
192 real(RP),
intent(in) :: gsqrt(
ka,
ia,
ja,7)
193 real(RP),
intent(in) :: j13g (
ka,
ia,
ja,7)
194 real(RP),
intent(in) :: j23g (
ka,
ia,
ja,7)
195 real(RP),
intent(in) :: j33g
196 real(RP),
intent(in) :: mapf (
ia,
ja,2,4)
198 real(RP),
intent(in) :: aq_r (
qa)
199 real(RP),
intent(in) :: aq_cv (
qa)
200 real(RP),
intent(in) :: aq_cp (
qa)
201 real(RP),
intent(in) :: aq_mass(
qa)
203 real(RP),
intent(in) :: ref_dens(
ka,
ia,
ja)
204 real(RP),
intent(in) :: ref_pott(
ka,
ia,
ja)
205 real(RP),
intent(in) :: ref_qv (
ka,
ia,
ja)
206 real(RP),
intent(in) :: ref_pres(
ka,
ia,
ja)
208 logical,
intent(in) :: bnd_w
209 logical,
intent(in) :: bnd_e
210 logical,
intent(in) :: bnd_s
211 logical,
intent(in) :: bnd_n
213 real(RP),
intent(in) :: nd_coef
214 real(RP),
intent(in) :: nd_coef_q
215 integer,
intent(in) :: nd_order
216 real(RP),
intent(in) :: nd_sfc_fact
217 logical,
intent(in) :: nd_use_rs
219 real(RP),
intent(in) :: damp_dens(
ka,
ia,
ja)
220 real(RP),
intent(in) :: damp_velz(
ka,
ia,
ja)
221 real(RP),
intent(in) :: damp_velx(
ka,
ia,
ja)
222 real(RP),
intent(in) :: damp_vely(
ka,
ia,
ja)
223 real(RP),
intent(in) :: damp_pott(
ka,
ia,
ja)
226 real(RP),
intent(in) :: damp_alpha_dens(
ka,
ia,
ja)
227 real(RP),
intent(in) :: damp_alpha_velz(
ka,
ia,
ja)
228 real(RP),
intent(in) :: damp_alpha_velx(
ka,
ia,
ja)
229 real(RP),
intent(in) :: damp_alpha_vely(
ka,
ia,
ja)
230 real(RP),
intent(in) :: damp_alpha_pott(
ka,
ia,
ja)
231 real(RP),
intent(in) :: damp_alpha_qtrc(
ka,
ia,
ja,
bnd_qa)
233 real(RP),
intent(in) :: wdamp_coef(
ka)
234 real(RP),
intent(in) :: divdmp_coef
236 logical,
intent(in) :: flag_fct_momentum
237 logical,
intent(in) :: flag_fct_t
238 logical,
intent(in) :: flag_fct_tracer
239 logical,
intent(in) :: flag_fct_along_stream
241 logical,
intent(in) :: use_average
243 real(DP),
intent(in) :: dtl
244 real(DP),
intent(in) :: dts
247 dens, momz, momx, momy, rhot, qtrc, prog, &
248 dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, &
250 num_diff, num_diff_q, &
252 dens_tp, momz_tp, momx_tp, momy_tp, rhot_tp, rhoq_tp, &
254 cdz, cdx, cdy, fdz, fdx, fdy, &
255 rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, &
257 j13g, j23g, j33g, mapf, &
258 aq_r, aq_cv, aq_cp, aq_mass, &
259 ref_dens, ref_pott, ref_qv, ref_pres, &
260 bnd_w, bnd_e, bnd_s, bnd_n, &
261 nd_coef, nd_coef_q, nd_order, nd_sfc_fact, nd_use_rs, &
262 damp_dens, damp_velz, damp_velx, &
263 damp_vely, damp_pott, damp_qtrc, &
264 damp_alpha_dens, damp_alpha_velz, damp_alpha_velx, &
265 damp_alpha_vely, damp_alpha_pott, damp_alpha_qtrc, &
268 flag_fct_momentum, flag_fct_t, flag_fct_tracer, &
269 flag_fct_along_stream, &
real(rp), public const_cvdry
specific heat (dry air,constant volume) [J/kg/K]
subroutine, public atmos_dyn_fvm_fluxy_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
subroutine, public prc_mpistop
Abort MPI.
subroutine, public atmos_dyn_numfilter_coef_q(num_diff_q, DENS, QTRC, CDZ, CDX, CDY, dt, REF_qv, iq, ND_COEF, ND_ORDER, ND_SFC_FACT, ND_USE_RS)
Calc coefficient of numerical filter.
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
subroutine, public atmos_dyn_numfilter_coef(num_diff, DENS, MOMZ, MOMX, MOMY, RHOT, CDZ, CDX, CDY, FDZ, FDX, FDY, DT, REF_dens, REF_pott, ND_COEF, ND_ORDER, ND_SFC_FACT, ND_USE_RS)
Calc coefficient of numerical filter.
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxx_xyz
module Atmosphere / Dynamical scheme
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_rdry
specific gas constant (dry air) [J/kg/K]
real(rp), public const_undef
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_dyn_tinteg_large_euler(DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, PROG, DENS_av, MOMZ_av, MOMX_av, MOMY_av, RHOT_av, QTRC_av, mflx_hi, tflx_hi, num_diff, num_diff_q, DENS_tp, MOMZ_tp, MOMX_tp, MOMY_tp, RHOT_tp, RHOQ_tp, CORIOLI, CDZ, CDX, CDY, FDZ, FDX, FDY, RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, PHI, GSQRT, J13G, J23G, J33G, MAPF, AQ_R, AQ_CV, AQ_CP, AQ_MASS, REF_dens, REF_pott, REF_qv, REF_pres, BND_W, BND_E, BND_S, BND_N, ND_COEF, ND_COEF_Q, ND_ORDER, ND_SFC_FACT, ND_USE_RS, DAMP_DENS, DAMP_VELZ, DAMP_VELX, DAMP_VELY, DAMP_POTT, DAMP_QTRC, DAMP_alpha_DENS, DAMP_alpha_VELZ, DAMP_alpha_VELX, DAMP_alpha_VELY, DAMP_alpha_POTT, DAMP_alpha_QTRC, wdamp_coef, divdmp_coef, FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM, USE_AVERAGE, DTL, DTS)
RK3.
module Atmosphere / Dyn Tinteg
integer, public ka
of whole cells: z, local, with HALO
integer, parameter, public const_undef2
undefined value (INT2)
module Atmosphere / Dynamics common
subroutine, public atmos_dyn_tinteg_large_euler_setup(tinteg_type)
Setup.
real(rp), parameter, public const_rvap
specific gas constant (water vapor) [J/kg/K]
module scale_atmos_dyn_fvm_flux
subroutine, public atmos_dyn_fct(qflx_anti, phi_in, DENS0, DENS, qflx_hi, qflx_lo, mflx_hi, rdz, rdx, rdy, GSQRT, MAPF, dt, flag_vect)
Flux Correction Transport Limiter.
module ATMOSPHERE / Boundary treatment
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxz_xyz
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxy_xyz
procedure(large), pointer, public atmos_dyn_tstep_large
subroutine, public atmos_dyn_fvm_fluxx_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
module scale_atmos_dyn_fvm_flux_ud1
real(rp), public atmos_boundary_smoother_fact
integer, public ja
of whole cells: y, local, with HALO