Go to the documentation of this file.
55 real(RP),
allocatable :: QTRC_RK1(:,:,:)
56 real(RP),
allocatable :: QTRC_RK2(:,:,:)
74 character(len=*) :: tinteg_type
79 if ( tinteg_type /=
'RK3WS2002' )
then
80 log_error(
"ATMOS_DYN_Tinteg_tracer_rk3_setup",*)
'TINTEG_TRACER_TYPE is not RK3WS2002. Check!'
84 allocate( qtrc_rk1(
ka,
ia,
ja) )
85 allocate( qtrc_rk2(
ka,
ia,
ja) )
86 qtrc_rk1(:,:,:) = undef
87 qtrc_rk2(:,:,:) = undef
104 deallocate( qtrc_rk1 )
105 deallocate( qtrc_rk2 )
119 cdz, rcdz, rcdx, rcdy, &
120 bnd_w, bnd_e, bnd_s, bnd_n, &
124 flag_fct_along_stream )
133 real(rp),
intent(inout) :: qtrc (
ka,
ia,
ja)
134 real(rp),
intent(out) :: qflx (
ka,
ia,
ja,3)
135 real(rp),
intent(in) :: qtrc0 (
ka,
ia,
ja)
136 real(rp),
intent(in) :: rhoq_t (
ka,
ia,
ja)
137 real(rp),
intent(in) :: dens0 (
ka,
ia,
ja)
138 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
139 real(rp),
intent(in) :: mflx_hi (
ka,
ia,
ja,3)
140 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja,3)
141 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja,7)
142 real(rp),
intent(in) :: mapf (
ia,
ja)
143 real(rp),
intent(in) :: cdz(
ka)
144 real(rp),
intent(in) :: rcdz(
ka)
145 real(rp),
intent(in) :: rcdx(
ia)
146 real(rp),
intent(in) :: rcdy(
ja)
147 logical,
intent(in) :: bnd_w
148 logical,
intent(in) :: bnd_e
149 logical,
intent(in) :: bnd_s
150 logical,
intent(in) :: bnd_n
151 logical,
intent(in) :: twod
152 real(rp),
intent(in) :: dtl
153 logical,
intent(in) :: flag_fct_tracer
154 logical,
intent(in) :: flag_fct_along_stream
156 real(rp) :: dens_rk(
ka,
ia,
ja)
170 do i = max(
is-1,1), min(
ie+1,
ia)
172 dens_rk(
k,i,j) = dens0(
k,i,j) &
173 + ( dens(
k,i,j) - dens0(
k,i,j) ) / 3.0_rp
183 qtrc, qtrc0, rhoq_t, &
187 cdz, rcdz, rcdx, rcdy, &
189 .false., flag_fct_along_stream )
193 bnd_w, bnd_e, bnd_s, bnd_n, &
196 call comm_vars8( qtrc_rk1(:,:,:), i_comm_rk1 )
197 call comm_wait ( qtrc_rk1(:,:,:), i_comm_rk1, .false. )
202 do i = max(
is-1,1), min(
ie+1,
ia)
204 dens_rk(
k,i,j) = dens0(
k,i,j) &
205 + ( dens(
k,i,j) - dens0(
k,i,j) ) * 0.5_rp
215 qtrc_rk1, qtrc0, rhoq_t, &
219 cdz, rcdz, rcdx, rcdy, &
221 .false., flag_fct_along_stream )
225 bnd_w, bnd_e, bnd_s, bnd_n, &
228 call comm_vars8( qtrc_rk2(:,:,:), i_comm_rk2 )
229 call comm_wait ( qtrc_rk2(:,:,:), i_comm_rk2, .false. )
236 qtrc_rk2, qtrc0, rhoq_t, &
240 cdz, rcdz, rcdx, rcdy, &
243 flag_fct_tracer, flag_fct_along_stream )
integer, public ke
end point of inner domain: z, local
subroutine, public prc_abort
Abort Process.
subroutine, public atmos_dyn_tinteg_tracer_rk3_setup(tinteg_type)
Setup.
integer, parameter, public const_undef2
undefined value (INT2)
module Atmosphere / Dyn Tinteg
module Atmosphere / Dynamics common
subroutine, public atmos_dyn_tinteg_tracer_rk3_finalize
finalize
integer, public ie
end point of inner domain: x, local
module atmosphere / grid / cartesC index
subroutine, public check(current_line, v)
Undefined value checker.
subroutine, public atmos_dyn_tinteg_tracer_rk3(QTRC, qflx, QTRC0, RHOQ_t, DENS0, DENS, mflx_hi, num_diff, GSQRT, MAPF, CDZ, RCDZ, RCDX, RCDY, BND_W, BND_E, BND_S, BND_N, TwoD, dtl, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM)
RK3.
subroutine, public atmos_dyn_copy_boundary_tracer(QTRC, QTRC0, BND_W, BND_E, BND_S, BND_N, TwoD)
module Atmosphere / Dynamical scheme
integer, public is
start point of inner domain: x, local
integer, public ks
start point of inner domain: z, local
procedure(step), pointer, public atmos_dyn_tstep_tracer
integer, public js
start point of inner domain: y, local
subroutine, public comm_vars8_init(varname, var, vid, gid)
Register variables.
real(rp), public const_undef
integer, public je
end point of inner domain: y, local