15 #include "inc_openmp.h" 57 real(RP),
allocatable :: QTRC_RK1(:,:,:)
58 real(RP),
allocatable :: QTRC_RK2(:,:,:)
59 integer :: I_COMM_RK1 = 1
60 integer :: I_COMM_RK2 = 1
74 character(len=*) :: tinteg_type
79 if ( tinteg_type /=
'RK3WS2002' )
then 80 write(*,*)
'xxx TINTEG_LARGE_TYPE is not RK3WS2002. Check!' 84 allocate( qtrc_rk1(
ka,
ia,
ja) )
85 allocate( qtrc_rk2(
ka,
ia,
ja) )
101 cdz, rcdz, rcdx, rcdy, &
102 bnd_w, bnd_e, bnd_s, bnd_n, &
105 flag_fct_along_stream )
114 real(RP),
intent(inout) :: qtrc (
ka,
ia,
ja)
115 real(RP),
intent(in) :: qtrc0 (
ka,
ia,
ja)
116 real(RP),
intent(in) :: rhoq_t (
ka,
ia,
ja)
117 real(RP),
intent(in) :: dens0 (
ka,
ia,
ja)
118 real(RP),
intent(in) :: dens (
ka,
ia,
ja)
119 real(RP),
intent(in) :: mflx_hi (
ka,
ia,
ja,3)
120 real(RP),
intent(in) :: num_diff(
ka,
ia,
ja,3)
121 real(RP),
intent(in) :: gsqrt (
ka,
ia,
ja,7)
122 real(RP),
intent(in) :: mapf (
ia,
ja)
123 real(RP),
intent(in) :: cdz(
ka)
124 real(RP),
intent(in) :: rcdz(
ka)
125 real(RP),
intent(in) :: rcdx(
ia)
126 real(RP),
intent(in) :: rcdy(
ja)
127 logical,
intent(in) :: bnd_w
128 logical,
intent(in) :: bnd_e
129 logical,
intent(in) :: bnd_s
130 logical,
intent(in) :: bnd_n
131 real(RP),
intent(in) :: dtl
132 logical,
intent(in) :: flag_fct_tracer
133 logical,
intent(in) :: flag_fct_along_stream
135 real(RP) :: dens_rk(
ka,
ia,
ja)
146 dens_rk(k,i,j) = dens0(k,i,j) &
147 + ( dens(k,i,j) - dens0(k,i,j) ) / 3.0_rp
155 qtrc, qtrc0, rhoq_t, &
159 cdz, rcdz, rcdx, rcdy, &
161 .false., flag_fct_along_stream )
165 bnd_w, bnd_e, bnd_s, bnd_n )
167 call comm_vars8( qtrc_rk1(:,:,:), i_comm_rk1 )
168 call comm_wait ( qtrc_rk1(:,:,:), i_comm_rk1, .false. )
174 dens_rk(k,i,j) = dens0(k,i,j) &
175 + ( dens(k,i,j) - dens0(k,i,j) ) * 0.5_rp
183 qtrc_rk1, qtrc0, rhoq_t, &
187 cdz, rcdz, rcdx, rcdy, &
189 .false., flag_fct_along_stream )
193 bnd_w, bnd_e, bnd_s, bnd_n )
195 call comm_vars8( qtrc_rk2(:,:,:), i_comm_rk2 )
196 call comm_wait ( qtrc_rk2(:,:,:), i_comm_rk2, .false. )
202 qtrc_rk2, qtrc0, rhoq_t, &
206 cdz, rcdz, rcdx, rcdy, &
208 flag_fct_tracer, flag_fct_along_stream )
integer, public is
start point of inner domain: x, local
integer, public je
end point of inner domain: y, local
subroutine, public prc_mpistop
Abort MPI.
subroutine, public comm_vars8_init(varname, var, vid)
Register variables.
integer, public ke
end point of inner domain: z, local
module Atmosphere / Dyn Tinteg
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_undef
integer, public ia
of whole cells: x, local, with HALO
integer, public ka
of whole cells: z, local, with HALO
integer, public js
start 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
integer, public ie
end point of inner domain: x, local
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.
integer, public ja
of whole cells: y, local, with HALO