13 #include "inc_openmp.h" 64 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[DRIVER] / Categ[ATMOS PHY_MP] / Origin[SCALE-RM]' 73 if(
io_l )
write(
io_fid_log,*)
'*** this component is never called.' 74 if(
io_l )
write(
io_fid_log,*)
'*** SFLX_rain and SFLX_snow is set to zero.' 75 sflx_rain(:,:) = 0.0_rp
76 sflx_snow(:,:) = 0.0_rp
141 logical,
intent(in) :: update_flag
143 real(RP) :: DENS0(
ka,
ia,
ja)
144 real(RP) :: MOMZ0(
ka,
ia,
ja)
145 real(RP) :: MOMX0(
ka,
ia,
ja)
146 real(RP) :: MOMY0(
ka,
ia,
ja)
147 real(RP) :: RHOT0(
ka,
ia,
ja)
151 real(RP) :: precip(
ia,
ja)
154 integer :: k, i, j, iq
157 if ( update_flag )
then 163 dens0(k,i,j) =
dens(k,i,j)
164 momz0(k,i,j) =
momz(k,i,j)
165 momx0(k,i,j) =
momx(k,i,j)
166 momy0(k,i,j) =
momy(k,i,j)
167 rhot0(k,i,j) =
rhot(k,i,j)
177 qtrc0(k,i,j,iq) =
qtrc(k,i,j,iq)
183 ccn(:,:,:) = ccn_t(:,:,:) * dt_mp
200 dens_t_mp(k,i,j) = ( dens0(k,i,j) -
dens(k,i,j) ) / dt_mp
201 momz_t_mp(k,i,j) = ( momz0(k,i,j) -
momz(k,i,j) ) / dt_mp
202 momx_t_mp(k,i,j) = ( momx0(k,i,j) -
momx(k,i,j) ) / dt_mp
203 momy_t_mp(k,i,j) = ( momy0(k,i,j) -
momy(k,i,j) ) / dt_mp
204 rhot_t_mp(k,i,j) = ( rhot0(k,i,j) -
rhot(k,i,j) ) / dt_mp
214 rhoq_t_mp(k,i,j,iq) = ( qtrc0(k,i,j,iq) * dens0(k,i,j) &
215 -
qtrc(k,i,j,iq) *
dens(k,i,j) ) / dt_mp
224 precip(i,j) = sflx_rain(i,j) + sflx_snow(i,j)
228 call hist_in( sflx_rain(:,:),
'RAIN',
'surface rain rate by MP',
'kg/m2/s', nohalo=.true. )
229 call hist_in( sflx_snow(:,:),
'SNOW',
'surface snow rate by MP',
'kg/m2/s', nohalo=.true. )
230 call hist_in( precip(:,:),
'PREC_MP',
'surface precipitation rate by MP',
'kg/m2/s', nohalo=.true. )
231 call hist_in( evaporate(:,:,:),
'EVAPORATE',
'evaporated cloud number',
'num/m3/s', nohalo=.true. )
233 call hist_in( dens_t_mp(:,:,:),
'DENS_t_MP',
'tendency DENS in MP',
'kg/m3/s' , nohalo=.true. )
234 call hist_in( momz_t_mp(:,:,:),
'MOMZ_t_MP',
'tendency MOMZ in MP',
'kg/m2/s2' , nohalo=.true. )
235 call hist_in( momx_t_mp(:,:,:),
'MOMX_t_MP',
'tendency MOMX in MP',
'kg/m2/s2' , nohalo=.true. )
236 call hist_in( momy_t_mp(:,:,:),
'MOMY_t_MP',
'tendency MOMY in MP',
'kg/m2/s2' , nohalo=.true. )
237 call hist_in( rhot_t_mp(:,:,:),
'RHOT_t_MP',
'tendency RHOT in MP',
'K*kg/m3/s', nohalo=.true. )
240 call hist_in( rhoq_t_mp(:,:,:,iq), trim(
aq_name(iq))//
'_t_MP', &
241 'tendency rho*'//trim(
aq_name(iq))//
'in MP',
'kg/m3/s', nohalo=.true. )
250 dens_t(k,i,j) = dens_t(k,i,j) + dens_t_mp(k,i,j)
251 momz_t(k,i,j) = momz_t(k,i,j) + momz_t_mp(k,i,j)
252 momx_t(k,i,j) = momx_t(k,i,j) + momx_t_mp(k,i,j)
253 momy_t(k,i,j) = momy_t(k,i,j) + momy_t_mp(k,i,j)
254 rhot_t(k,i,j) = rhot_t(k,i,j) + rhot_t_mp(k,i,j)
264 rhoq_t(k,i,j,iq) = rhoq_t(k,i,j,iq) + rhoq_t_mp(k,i,j,iq)
271 call stat_total( total, dens_t_mp(:,:,:),
'DENS_t_MP' )
272 call stat_total( total, momz_t_mp(:,:,:),
'MOMZ_t_MP' )
273 call stat_total( total, momx_t_mp(:,:,:),
'MOMX_t_MP' )
274 call stat_total( total, momy_t_mp(:,:,:),
'MOMY_t_MP' )
275 call stat_total( total, rhot_t_mp(:,:,:),
'RHOT_t_MP' )
278 call stat_total( total, rhoq_t_mp(:,:,:,iq), trim(
aq_name(iq))//
'_t_MP' )
real(rp), dimension(:,:,:), allocatable, public dens_tp
integer, public is
start point of inner domain: x, local
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_mp_rhoq_t
logical, public statistics_checktotal
calc&report variable totals to logfile?
real(rp), dimension(:,:,:), allocatable, target, public momz
procedure(mp), pointer, public atmos_phy_mp
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_momy_t
integer, public je
end point of inner domain: y, local
real(rp), dimension(:,:,:), allocatable, target, public rhot
real(rp), dimension(:,:,:), allocatable, public momy_tp
real(dp), public time_dtsec_atmos_phy_mp
time interval of physics(microphysics) [sec]
module Atmosphere / Physics Cloud Microphysics
logical, public io_l
output log or not? (this process)
module ATMOSPHERE / Physics Cloud Microphysics
module ATMOSPHERIC Variables
real(rp), dimension(:,:,:), allocatable, target, public momx
subroutine, public atmos_phy_mp_driver(update_flag)
Driver.
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public rhot_tp
real(rp), dimension(:,:,:), allocatable, target, public dens
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_momz_t
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_rain
subroutine, public atmos_phy_mp_setup(MP_TYPE)
Setup Cloud Microphysics.
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_rhot_t
integer, public ka
of z whole cells (local, with HALO)
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_dens_t
real(rp), dimension(:,:,:,:), allocatable, public rhoq_tp
character(len=h_short), dimension(:), allocatable, public aq_name
integer, public js
start point of inner domain: y, local
subroutine, public atmos_phy_mp_driver_setup
Setup.
logical, public atmos_sw_phy_mp
character(len=h_short), public atmos_phy_mp_type
integer, public ks
start point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public momx_tp
real(rp), dimension(:,:,:), allocatable, target, public momy
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_evaporate
subroutine, public prof_rapstart(rapname_base, level)
Start raptime.
real(rp), dimension(:,:), allocatable, public atmos_phy_mp_sflx_snow
real(rp), dimension(:,:,:), allocatable, public momz_tp
integer, public ie
end point of inner domain: x, local
integer, public io_fid_log
Log file ID.
subroutine, public atmos_phy_mp_driver_resume
resume
module ATMOSPHERE / Physics Cloud Microphysics
subroutine, public prof_rapend(rapname_base, level)
Save raptime.
module ATMOSPHERE / Physics Aerosol Microphysics
real(rp), dimension(:,:,:), allocatable, public atmos_phy_mp_momx_t
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_phy_ae_ccn_t
integer, public ja
of y whole cells (local, with HALO)