SCALE-RM
scale_atmos_phy_cp.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
14  !------------------------------------------------------------------------------
15  !
16  !+++ used modules
17  !
18  use scale_precision
19  use scale_stdio
20  use scale_prof
22  use scale_tracer
24  private
25 
26  abstract interface
27  subroutine cp( &
28  DENS, &
29  MOMZ, &
30  MOMX, &
31  MOMY, &
32  RHOT, &
33  QTRC, &
34  DENS_t_CP, &
35  MOMZ_t_CP, &
36  MOMX_t_CP, &
37  MOMY_t_CP, &
38  RHOT_t_CP, &
39  RHOQ_t_CP, &
40  MFLX_cloudbase, &
41  SFLX_convrain, &
42  cloudtop, &
43  cloudbase, &
44  cldfrac_dp, &
45  cldfrac_sh, &
46  kf_nca, &
47  kf_w0avg )
48  use scale_precision
49  use scale_stdio
50  use scale_prof
52  use scale_tracer
54  real(RP), intent(in) :: DENS(KA,IA,JA)
55  real(RP), intent(in) :: MOMX(KA,IA,JA)
56  real(RP), intent(in) :: MOMY(KA,IA,JA)
57  real(RP), intent(in) :: MOMZ(KA,IA,JA)
58  real(RP), intent(in) :: RHOT(KA,IA,JA)
59  real(RP), intent(in) :: QTRC(KA,IA,JA,QA)
60  real(RP), intent(inout) :: DENS_t_CP(KA,IA,JA)
61  real(RP), intent(inout) :: MOMZ_t_CP(KA,IA,JA)
62  real(RP), intent(inout) :: MOMX_t_CP(KA,IA,JA)
63  real(RP), intent(inout) :: MOMY_t_CP(KA,IA,JA)
64  real(RP), intent(inout) :: RHOT_t_CP(KA,IA,JA)
65  real(RP), intent(inout) :: RHOQ_t_CP(KA,IA,JA,QA_MP)
66  real(RP), intent(inout) :: MFLX_cloudbase(IA,JA)
67  real(RP), intent(inout) :: SFLX_convrain(IA,JA)
68  real(RP), intent(inout) :: cloudtop(IA,JA)
69  real(RP), intent(inout) :: cloudbase(IA,JA)
70  real(RP), intent(inout) :: cldfrac_dp(KA,IA,JA)
71  real(RP), intent(inout) :: cldfrac_sh(KA,IA,JA)
72  real(RP), intent(inout) :: kf_nca(IA,JA)
73  real(RP), intent(inout) :: kf_W0avg(KA,IA,JA)
74  end subroutine cp
75  end interface
76  procedure(cp), pointer :: atmos_phy_cp => null()
77  public :: atmos_phy_cp
78  public :: atmos_phy_cp_setup
79 
80  !-----------------------------------------------------------------------------
81 contains
82  !-----------------------------------------------------------------------------
84  !------------------------------------------------------------------------------
85  subroutine atmos_phy_cp_setup( CP_TYPE )
86  use scale_process, only: &
88  use scale_atmos_phy_cp_kf, only: &
91  implicit none
92 
93  character(len=*), intent(in) :: cp_type
94  !------------------------------------------------------------------------------
95 
96  if( io_l ) write(io_fid_log,*) '*** => ', trim(cp_type), ' is selected.'
97 
98  select case( cp_type )
99  case('OFF')
100  ! do nothing
101  case('KF')
102  call atmos_phy_cp_kf_setup( cp_type )
104  case default
105  write(*,*) 'xxx invalid Cumulus parameterization type(', trim(cp_type), '). CHECK!'
106  call prc_mpistop
107  end select
108 
109  return
110  end subroutine atmos_phy_cp_setup
111 
112 end module scale_atmos_phy_cp
subroutine, public prc_mpistop
Abort MPI.
subroutine, public atmos_phy_cp_setup(CP_TYPE)
Setup Cumulus parameterization.
module ATMOSPHERE / Physics Cumulus Parameterization
logical, public io_l
output log or not? (this process)
Definition: scale_stdio.F90:61
module ATMOSPHERE / Physics Cloud Microphysics
subroutine, public atmos_phy_cp_kf_setup(CP_TYPE)
Setup.
module STDIO
Definition: scale_stdio.F90:12
module grid index
module TRACER
module PROCESS
module ATMOSPHERE / Physics Cumulus Parameterization
procedure(cp), pointer, public atmos_phy_cp
module profiler
Definition: scale_prof.F90:10
module PRECISION
subroutine, public atmos_phy_cp_kf(DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, DENS_t_CP, MOMZ_t_CP, MOMX_t_CP, MOMY_t_CP, RHOT_t_CP, RHOQ_t_CP, MFLX_cloudbase, SFLX_convrain, cloudtop, cloudbase, cldfrac_dp, cldfrac_sh, nca, w0avg)
integer, public io_fid_log
Log file ID.
Definition: scale_stdio.F90:56