54 real(RP),
allocatable :: qtrc_rk1(:,:,:)
55 real(RP),
allocatable :: qtrc_rk2(:,:,:)
56 integer :: i_comm_rk1 = 1
57 integer :: i_comm_rk2 = 1
71 character(len=*) :: tinteg_type
76 if ( tinteg_type /=
'RK3WS2002' )
then 77 log_error(
"ATMOS_DYN_Tinteg_tracer_rk3_setup",*)
'TINTEG_LARGE_TYPE is not RK3WS2002. Check!' 81 allocate( qtrc_rk1(
ka,
ia,
ja) )
82 allocate( qtrc_rk2(
ka,
ia,
ja) )
98 cdz, rcdz, rcdx, rcdy, &
99 bnd_w, bnd_e, bnd_s, bnd_n, &
102 flag_fct_along_stream )
111 real(RP),
intent(inout) :: QTRC (
ka,
ia,
ja)
112 real(RP),
intent(in) :: QTRC0 (
ka,
ia,
ja)
113 real(RP),
intent(in) :: RHOQ_t (
ka,
ia,
ja)
114 real(RP),
intent(in) :: DENS0 (
ka,
ia,
ja)
115 real(RP),
intent(in) :: DENS (
ka,
ia,
ja)
116 real(RP),
intent(in) :: mflx_hi (
ka,
ia,
ja,3)
117 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja,3)
118 real(RP),
intent(in) :: GSQRT (
ka,
ia,
ja,7)
119 real(RP),
intent(in) :: MAPF (
ia,
ja)
120 real(RP),
intent(in) :: CDZ(
ka)
121 real(RP),
intent(in) :: RCDZ(
ka)
122 real(RP),
intent(in) :: RCDX(
ia)
123 real(RP),
intent(in) :: RCDY(
ja)
124 logical,
intent(in) :: BND_W
125 logical,
intent(in) :: BND_E
126 logical,
intent(in) :: BND_S
127 logical,
intent(in) :: BND_N
128 real(RP),
intent(in) :: dtl
129 logical,
intent(in) :: FLAG_FCT_TRACER
130 logical,
intent(in) :: FLAG_FCT_ALONG_STREAM
132 real(RP) :: DENS_RK(
ka,
ia,
ja)
143 dens_rk(k,i,j) = dens0(k,i,j) &
144 + ( dens(k,i,j) - dens0(k,i,j) ) / 3.0_rp
152 qtrc, qtrc0, rhoq_t, &
156 cdz, rcdz, rcdx, rcdy, &
158 .false., flag_fct_along_stream )
162 bnd_w, bnd_e, bnd_s, bnd_n )
164 call comm_vars8( qtrc_rk1(:,:,:), i_comm_rk1 )
165 call comm_wait ( qtrc_rk1(:,:,:), i_comm_rk1, .false. )
171 dens_rk(k,i,j) = dens0(k,i,j) &
172 + ( dens(k,i,j) - dens0(k,i,j) ) * 0.5_rp
180 qtrc_rk1, qtrc0, rhoq_t, &
184 cdz, rcdz, rcdx, rcdy, &
186 .false., flag_fct_along_stream )
190 bnd_w, bnd_e, bnd_s, bnd_n )
192 call comm_vars8( qtrc_rk2(:,:,:), i_comm_rk2 )
193 call comm_wait ( qtrc_rk2(:,:,:), i_comm_rk2, .false. )
199 qtrc_rk2, qtrc0, rhoq_t, &
203 cdz, rcdz, rcdx, rcdy, &
205 flag_fct_tracer, flag_fct_along_stream )
integer, public ia
of whole cells: x, local, with HALO
module Atmosphere / Dyn Tinteg
integer, public ja
of whole cells: y, local, with HALO
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_undef
integer, public is
start point of inner domain: x, local
integer, public ie
end point of inner domain: x, local
module atmosphere / grid / cartesC index
integer, public ke
end point of inner domain: z, local
integer, public je
end point of inner domain: y, local
integer, parameter, public const_undef2
undefined value (INT2)
module Atmosphere / Dynamics common
integer, public ks
start point of inner domain: z, local
subroutine, public comm_vars8_init(varname, var, vid)
Register variables.
subroutine, public prc_abort
Abort Process.
integer, public js
start point of inner domain: y, local
integer, public ka
of whole cells: z, local, with HALO
procedure(step), pointer, public atmos_dyn_tstep_tracer
subroutine, public atmos_dyn_copy_boundary_tracer(QTRC, QTRC0, BND_W, BND_E, BND_S, BND_N)
subroutine, public atmos_dyn_tinteg_tracer_rk3_setup(tinteg_type)
Setup.
module Atmosphere / Dynamical scheme
subroutine, public atmos_dyn_tinteg_tracer_rk3(QTRC, QTRC0, RHOQ_t, DENS0, DENS, mflx_hi, num_diff, GSQRT, MAPF, CDZ, RCDZ, RCDX, RCDY, BND_W, BND_E, BND_S, BND_N, dtl, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM)
RK3.