SCALE-RM
scale_atmos_phy_ae_dummy.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
13 !-------------------------------------------------------------------------------
15  !-----------------------------------------------------------------------------
16  !
17  !++ used modules
18  !
19  use scale_precision
20  use scale_stdio
21  use scale_prof
23  use scale_tracer
24  !-----------------------------------------------------------------------------
25  implicit none
26  private
27  !-----------------------------------------------------------------------------
28  !
29  !++ Public procedure
30  !
32  public :: atmos_phy_ae_dummy_setup
33  public :: atmos_phy_ae_dummy
34 
36 
37  !-----------------------------------------------------------------------------
38  !
39  !++ Public parameters & variables
40  !
41  integer, public, parameter :: qa_ae = 0
42 
43  character(len=H_SHORT), public, target :: atmos_phy_ae_dummy_name(qa_ae)
44  character(len=H_MID) , public, target :: atmos_phy_ae_dummy_desc(qa_ae)
45  character(len=H_SHORT), public, target :: atmos_phy_ae_dummy_unit(qa_ae)
46 
47  real(RP), public, target :: atmos_phy_ae_dummy_dens(qa_ae) ! hydrometeor density [kg/m3]=[g/L]
48 
49  !-----------------------------------------------------------------------------
50  !
51  !++ Private procedure
52  !
53  !-----------------------------------------------------------------------------
54  !
55  !++ Private parameters & variables
56  !
57  !-----------------------------------------------------------------------------
58 contains
59  !-----------------------------------------------------------------------------
61  subroutine atmos_phy_ae_dummy_config( &
62  AE_TYPE, &
63  QA_AE, QS_AE )
64  use scale_process, only: &
66  implicit none
67  character(len=*), intent(in) :: ae_type
68  integer, intent(out) :: qa_ae
69  integer, intent(out) :: qs_ae
70  !---------------------------------------------------------------------------
71 
72  if( io_l ) write(io_fid_log,*)
73  if( io_l ) write(io_fid_log,*) '++++++ Module[Aerosol Tracer] / Categ[ATMOS PHYSICS] / Origin[SCALElib]'
74  if( io_l ) write(io_fid_log,*) '*** No tracers for dummy process'
75 
76  if ( ae_type /= 'DUMMY' .AND. ae_type /= 'NONE' ) then
77  write(*,*) 'xxx ATMOS_PHY_AE_TYPE is not DUMMY. Check!'
78  call prc_mpistop
79  endif
80 
81  qa_ae = 0
82  qs_ae = -1
83 
84  return
85  end subroutine atmos_phy_ae_dummy_config
86 
87  !-----------------------------------------------------------------------------
89  subroutine atmos_phy_ae_dummy_setup
90  implicit none
91 
92  if( io_l ) write(io_fid_log,*)
93  if( io_l ) write(io_fid_log,*) '++++++ Module[Aerosol] / Categ[ATMOS PHYSICS] / Origin[SCALElib]'
94  if( io_l ) write(io_fid_log,*) '*** dummy process'
95 
96  return
97  end subroutine atmos_phy_ae_dummy_setup
98 
99  !-----------------------------------------------------------------------------
101  subroutine atmos_phy_ae_dummy( &
102  QQA, &
103  DENS, &
104  MOMZ, &
105  MOMX, &
106  MOMY, &
107  RHOT, &
108  EMIT, &
109  NREG, &
110  QTRC, &
111  CN, &
112  CCN, &
113  RHOQ_t_AE )
115  use scale_tracer
116  implicit none
117  integer, intent(in) :: qqa
118  real(RP), intent(inout) :: dens(ka,ia,ja)
119  real(RP), intent(inout) :: momz(ka,ia,ja)
120  real(RP), intent(inout) :: momx(ka,ia,ja)
121  real(RP), intent(inout) :: momy(ka,ia,ja)
122  real(RP), intent(inout) :: rhot(ka,ia,ja)
123  real(RP), intent(inout) :: emit(ka,ia,ja,qqa)
124  real(RP), intent(in) :: nreg(ka,ia,ja)
125  real(RP), intent(inout) :: qtrc(ka,ia,ja,qa)
126  real(RP), intent(out) :: cn(ka,ia,ja)
127  real(RP), intent(out) :: ccn(ka,ia,ja)
128  real(RP), intent(inout) :: rhoq_t_ae(ka,ia,ja,qa)
129 
130  if( io_l ) write(io_fid_log,*) '*** Atmos physics step: Aerosol(dummy)'
131 
132  cn(:,:,:) = 0.0_rp
133  ccn(:,:,:) = 0.0_rp
134 
135  return
136  end subroutine atmos_phy_ae_dummy
137 
138  !-----------------------------------------------------------------------------
141  Re, &
142  QTRC, &
143  RH )
145  use scale_tracer
146  use scale_const, only: &
147  undef => const_undef
148  use scale_atmos_aerosol, only: &
149  n_ae
150  implicit none
151  real(RP), intent(out) :: re (ka,ia,ja,n_ae) ! effective radius
152  real(RP), intent(in) :: qtrc(ka,ia,ja,qa) ! tracer mass concentration [kg/kg]
153  real(RP), intent(in) :: rh (ka,ia,ja) ! relative humidity (0-1)
154  integer :: iq
155  !---------------------------------------------------------------------------
156 
157  do iq = 1, n_ae
158  re(:,:,:,iq) = 0.0_rp
159  end do
160 
161 ! Re(:,:,:,I_ae_seasalt) = 2.E-4_RP
162 ! Re(:,:,:,I_ae_dust ) = 4.E-6_RP
163 ! Re(:,:,:,I_ae_bc ) = 4.E-8_RP
164 ! Re(:,:,:,I_ae_oc ) = RH(:,:,:)
165 ! Re(:,:,:,I_ae_sulfate) = RH(:,:,:)
166 
167  return
169 
170 end module scale_atmos_phy_ae_dummy
subroutine, public atmos_phy_ae_dummy_effectiveradius(Re, QTRC, RH)
Calculate Effective Radius.
subroutine, public prc_mpistop
Abort MPI.
integer, parameter, public n_ae
logical, public io_l
output log or not? (this process)
Definition: scale_stdio.F90:61
module STDIO
Definition: scale_stdio.F90:12
integer, public qa
character(len=h_short), dimension(qa_ae), target, public atmos_phy_ae_dummy_name
real(rp), public const_undef
Definition: scale_const.F90:43
module grid index
module TRACER
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_phy_ae_dummy(QQA, DENS, MOMZ, MOMX, MOMY, RHOT, EMIT, NREG, QTRC, CN, CCN, RHOQ_t_AE)
Aerosol Microphysics.
character(len=h_mid), dimension(qa_ae), target, public atmos_phy_ae_dummy_desc
integer, public ka
of whole cells: z, local, with HALO
real(rp), dimension(qa_ae), target, public atmos_phy_ae_dummy_dens
module ATMOSPHERE / Physics Aerosol Microphysics
character(len=h_short), dimension(qa_ae), target, public atmos_phy_ae_dummy_unit
module PROCESS
module CONSTANT
Definition: scale_const.F90:14
module profiler
Definition: scale_prof.F90:10
module PRECISION
subroutine, public atmos_phy_ae_dummy_setup
Setup.
integer, parameter, public qa_ae
integer, public io_fid_log
Log file ID.
Definition: scale_stdio.F90:56
subroutine, public atmos_phy_ae_dummy_config(AE_TYPE, QA_AE, QS_AE)
Config.
integer, public ja
of whole cells: y, local, with HALO