SCALE-RM
scale_atmos_phy_mp_dry.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
14 !-------------------------------------------------------------------------------
16  !-----------------------------------------------------------------------------
17  !
18  !++ used modules
19  !
20  use scale_precision
21  use scale_stdio
22  use scale_prof
24 
26  !-----------------------------------------------------------------------------
27  implicit none
28  private
29  !-----------------------------------------------------------------------------
30  !
31  !++ Public procedure
32  !
33  public :: atmos_phy_mp_dry_setup
34  public :: atmos_phy_mp_dry
35 
39 
40  !-----------------------------------------------------------------------------
41  !
42  !++ Public parameters & variables
43  !
44  real(RP), public, target :: atmos_phy_mp_dens(mp_qa) ! hydrometeor density [kg/m3]=[g/L]
45 
46  !-----------------------------------------------------------------------------
47  !
48  !++ Private procedure
49  !
50  !-----------------------------------------------------------------------------
51  !
52  !++ Private parameters & variables
53  !
54  !-----------------------------------------------------------------------------
55 contains
56  !-----------------------------------------------------------------------------
58  subroutine atmos_phy_mp_dry_setup( MP_TYPE )
59  use scale_process, only: &
61  implicit none
62 
63  character(len=*), intent(in) :: MP_TYPE
64  !---------------------------------------------------------------------------
65 
66  if( io_l ) write(io_fid_log,*)
67  if( io_l ) write(io_fid_log,*) '++++++ Module[Cloud Microphysics] / Categ[ATMOS PHYSICS] / Origin[SCALElib]'
68  if( io_l ) write(io_fid_log,*) '*** dummy process (dry Atmosphere)'
69 
70  if ( mp_type /= 'DRY' ) then
71  write(*,*) 'xxx ATMOS_PHY_MP_TYPE is not DRY. Check!'
72  call prc_mpistop
73  endif
74 
75  atmos_phy_mp_dens(:) = 0.0_rp
76 
77  return
78  end subroutine atmos_phy_mp_dry_setup
79 
80  !-----------------------------------------------------------------------------
82  subroutine atmos_phy_mp_dry( &
83  DENS, &
84  MOMZ, &
85  MOMX, &
86  MOMY, &
87  RHOT, &
88  QTRC, &
89  CCN , &
90  EVAPORATE, &
91  SFLX_rain, &
92  SFLX_snow )
94  use scale_tracer, only: &
95  qad => qa
96  implicit none
97 
98  real(RP), intent(inout) :: DENS(ka,ia,ja)
99  real(RP), intent(inout) :: MOMZ(ka,ia,ja)
100  real(RP), intent(inout) :: MOMX(ka,ia,ja)
101  real(RP), intent(inout) :: MOMY(ka,ia,ja)
102  real(RP), intent(inout) :: RHOT(ka,ia,ja)
103  real(RP), intent(inout) :: QTRC(ka,ia,ja,qad)
104  real(RP), intent(in) :: CCN(ka,ia,ja)
105  real(RP), intent(out) :: EVAPORATE(ka,ia,ja)
106  real(RP), intent(out) :: SFLX_rain(ia,ja)
107  real(RP), intent(out) :: SFLX_snow(ia,ja)
108  !---------------------------------------------------------------------------
109 
110  if( io_l ) write(io_fid_log,*) '*** Physics step: Cloud microphysics(dummy)'
111 
112  evaporate(:,:,:) = 0.0_rp
113  sflx_rain(:,:) = 0.0_rp
114  sflx_snow(:,:) = 0.0_rp
115 
116  return
117  end subroutine atmos_phy_mp_dry
118 
119  !-----------------------------------------------------------------------------
121  subroutine atmos_phy_mp_dry_cloudfraction( &
122  cldfrac, &
123  QTRC, &
124  mask_criterion )
126  use scale_tracer, only: &
127  qad => qa
128  implicit none
129 
130  real(RP), intent(out) :: cldfrac(ka,ia,ja)
131  real(RP), intent(in) :: QTRC (ka,ia,ja,qad)
132  real(RP), intent(in) :: mask_criterion ! not used
133  !---------------------------------------------------------------------------
134 
135  cldfrac(:,:,:) = 0.0_rp ! dummy
136 
137  return
138  end subroutine atmos_phy_mp_dry_cloudfraction
139 
140  !-----------------------------------------------------------------------------
143  Re, &
144  QTRC0, &
145  DENS0, &
146  TEMP0 )
148  use scale_tracer, only: &
149  qad => qa, &
150  mp_qad => mp_qa
151  implicit none
152 
153  real(RP), intent(out) :: Re (ka,ia,ja,mp_qad) ! effective radius [cm]
154  real(RP), intent(in) :: QTRC0(ka,ia,ja,qad) ! tracer mass concentration [kg/kg]
155  real(RP), intent(in) :: DENS0(ka,ia,ja) ! density [kg/m3]
156  real(RP), intent(in) :: TEMP0(ka,ia,ja) ! temperature [K]
157 
158  real(RP), parameter :: um2cm = 100.0_rp
159  !---------------------------------------------------------------------------
160 
161  re(:,:,:,:) = 8.e-6_rp * um2cm ! dummy
162 
163  return
164  end subroutine atmos_phy_mp_dry_effectiveradius
165  !-----------------------------------------------------------------------------
167  subroutine atmos_phy_mp_dry_mixingratio( &
168  Qe, &
169  QTRC0 )
171  use scale_tracer, only: &
172  qad => qa, &
173  mp_qad => mp_qa
174  implicit none
175 
176  real(RP), intent(out) :: Qe (ka,ia,ja,mp_qad) ! mixing ratio of each cateory [kg/kg]
177  real(RP), intent(in) :: QTRC0(ka,ia,ja,qad) ! tracer mass concentration [kg/kg]
178 
179  integer :: ihydro
180  !---------------------------------------------------------------------------
181 
182  do ihydro = 1, mp_qa
183  qe(:,:,:,ihydro) = 8.e-6_rp ! dummy
184  enddo
185 
186  return
187 
188  end subroutine atmos_phy_mp_dry_mixingratio
189 
190 end module scale_atmos_phy_mp_dry
subroutine, public atmos_phy_mp_dry_cloudfraction(cldfrac, QTRC, mask_criterion)
Calculate Cloud Fraction.
subroutine, public prc_mpistop
Abort MPI.
logical, public io_l
output log or not? (this process)
Definition: scale_stdio.F90:59
module TRACER / dry
module STDIO
Definition: scale_stdio.F90:12
integer, public qa
subroutine, public atmos_phy_mp_dry(DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, CCN, EVAPORATE, SFLX_rain, SFLX_snow)
Cloud Microphysics.
subroutine, public atmos_phy_mp_dry_setup(MP_TYPE)
Setup.
module grid index
module TRACER
integer, public ia
of x whole cells (local, with HALO)
module ATMOSPHERE / Physics Cloud Microphysics
integer, public mp_qa
integer, public ka
of z whole cells (local, with HALO)
real(rp), dimension(mp_qa), target, public atmos_phy_mp_dens
module PROCESS
module profiler
Definition: scale_prof.F90:10
module PRECISION
integer, public io_fid_log
Log file ID.
Definition: scale_stdio.F90:56
subroutine, public atmos_phy_mp_dry_mixingratio(Qe, QTRC0)
Calculate mixing ratio of each category.
integer, public ja
of y whole cells (local, with HALO)
subroutine, public atmos_phy_mp_dry_effectiveradius(Re, QTRC0, DENS0, TEMP0)
Calculate Effective Radius.