Go to the documentation of this file.
54 real(RP),
allocatable :: QTRC_RK1(:,:,:)
55 real(RP),
allocatable :: QTRC_RK2(:,:,:)
56 integer :: I_COMM_RK1 = 1
57 integer :: I_COMM_RK2 = 1
73 character(len=*) :: tinteg_type
78 if ( tinteg_type /=
'RK3WS2002' )
then
79 log_error(
"ATMOS_DYN_Tinteg_tracer_rk3_setup",*)
'TINTEG_TRACER_TYPE is not RK3WS2002. Check!'
83 allocate( qtrc_rk1(
ka,
ia,
ja) )
84 allocate( qtrc_rk2(
ka,
ia,
ja) )
85 qtrc_rk1(:,:,:) = undef
86 qtrc_rk2(:,:,:) = undef
103 cdz, rcdz, rcdx, rcdy, &
104 bnd_w, bnd_e, bnd_s, bnd_n, &
108 flag_fct_along_stream )
117 real(rp),
intent(inout) :: qtrc (
ka,
ia,
ja)
118 real(rp),
intent(out) :: qflx (
ka,
ia,
ja,3)
119 real(rp),
intent(in) :: qtrc0 (
ka,
ia,
ja)
120 real(rp),
intent(in) :: rhoq_t (
ka,
ia,
ja)
121 real(rp),
intent(in) :: dens0 (
ka,
ia,
ja)
122 real(rp),
intent(in) :: dens (
ka,
ia,
ja)
123 real(rp),
intent(in) :: mflx_hi (
ka,
ia,
ja,3)
124 real(rp),
intent(in) :: num_diff(
ka,
ia,
ja,3)
125 real(rp),
intent(in) :: gsqrt (
ka,
ia,
ja,7)
126 real(rp),
intent(in) :: mapf (
ia,
ja)
127 real(rp),
intent(in) :: cdz(
ka)
128 real(rp),
intent(in) :: rcdz(
ka)
129 real(rp),
intent(in) :: rcdx(
ia)
130 real(rp),
intent(in) :: rcdy(
ja)
131 logical,
intent(in) :: bnd_w
132 logical,
intent(in) :: bnd_e
133 logical,
intent(in) :: bnd_s
134 logical,
intent(in) :: bnd_n
135 logical,
intent(in) :: twod
136 real(rp),
intent(in) :: dtl
137 logical,
intent(in) :: flag_fct_tracer
138 logical,
intent(in) :: flag_fct_along_stream
140 real(rp) :: dens_rk(
ka,
ia,
ja)
149 do i = max(
is-1,1), min(
ie+1,
ia)
151 dens_rk(
k,i,j) = dens0(
k,i,j) &
152 + ( dens(
k,i,j) - dens0(
k,i,j) ) / 3.0_rp
161 qtrc, qtrc0, rhoq_t, &
165 cdz, rcdz, rcdx, rcdy, &
167 .false., flag_fct_along_stream )
171 bnd_w, bnd_e, bnd_s, bnd_n, &
174 call comm_vars8( qtrc_rk1(:,:,:), i_comm_rk1 )
175 call comm_wait ( qtrc_rk1(:,:,:), i_comm_rk1, .false. )
179 do i = max(
is-1,1), min(
ie+1,
ia)
181 dens_rk(
k,i,j) = dens0(
k,i,j) &
182 + ( dens(
k,i,j) - dens0(
k,i,j) ) * 0.5_rp
191 qtrc_rk1, qtrc0, rhoq_t, &
195 cdz, rcdz, rcdx, rcdy, &
197 .false., flag_fct_along_stream )
201 bnd_w, bnd_e, bnd_s, bnd_n, &
204 call comm_vars8( qtrc_rk2(:,:,:), i_comm_rk2 )
205 call comm_wait ( qtrc_rk2(:,:,:), i_comm_rk2, .false. )
212 qtrc_rk2, qtrc0, rhoq_t, &
216 cdz, rcdz, rcdx, rcdy, &
219 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
integer, public ie
end point of inner domain: x, local
module atmosphere / grid / cartesC index
subroutine, public comm_vars8_init(varname, var, vid)
Register variables.
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
real(rp), public const_undef
integer, public je
end point of inner domain: y, local