SCALE-RM
scale_atmos_phy_tb_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  !
31  public :: atmos_phy_tb_dummy_setup
32  public :: atmos_phy_tb_dummy
33 
34  !-----------------------------------------------------------------------------
35  !
36  !++ Public parameters & variables
37  !
38  !-----------------------------------------------------------------------------
39  !
40  !++ Private procedure
41  !
42  !-----------------------------------------------------------------------------
43  !
44  !++ Private parameters & variables
45  !
46  !-----------------------------------------------------------------------------
47 contains
48  !-----------------------------------------------------------------------------
49  subroutine atmos_phy_tb_dummy_setup( &
50  TYPE_TB, &
51  CDZ, CDX, CDY, &
52  CZ )
53  use scale_process, only: &
55  implicit none
56 
57  character(len=*), intent(in) :: TYPE_TB
58 
59  real(RP), intent(in) :: CDZ(ka)
60  real(RP), intent(in) :: CDX(ia)
61  real(RP), intent(in) :: CDY(ja)
62  real(RP), intent(in) :: CZ (ka,ia,ja)
63  !---------------------------------------------------------------------------
64 
65  if( io_l ) write(io_fid_log,*) '*** Turbulence Dummy'
66 
67  if ( type_tb /= 'DUMMY' ) then
68  write(*,*) 'xxx ATMOS_PHY_TB_TYPE is not Dummy. Check!'
69  call prc_mpistop
70  endif
71 
72  return
73  end subroutine atmos_phy_tb_dummy_setup
74 
75  !-----------------------------------------------------------------------------
76  subroutine atmos_phy_tb_dummy( &
77  qflx_sgs_momz, qflx_sgs_momx, qflx_sgs_momy, & ! (out)
78  qflx_sgs_rhot, qflx_sgs_rhoq, & ! (out)
79  tke, & ! (inout) diagnostic variables
80  tke_t, nu_c, ri, pr, n2, & ! (out) diagnostic variables
81  momz, momx, momy, rhot, dens, qtrc, & ! (in)
82  sflx_mw, sflx_mu, sflx_mv, sflx_sh, sflx_qv, & ! (in)
83  gsqrt, j13g, j23g, j33g, mapf, dt ) ! (in)
84  implicit none
85 
86  ! SGS flux
87  real(RP), intent(out) :: qflx_sgs_momz(ka,ia,ja,3)
88  real(RP), intent(out) :: qflx_sgs_momx(ka,ia,ja,3)
89  real(RP), intent(out) :: qflx_sgs_momy(ka,ia,ja,3)
90  real(RP), intent(out) :: qflx_sgs_rhot(ka,ia,ja,3)
91  real(RP), intent(out) :: qflx_sgs_rhoq(ka,ia,ja,qa,3)
92 
93  real(RP), intent(inout) :: TKE(ka,ia,ja)
94  real(RP), intent(out) :: tke_t(ka,ia,ja) ! tendency TKE
95 
96  real(RP), intent(out) :: nu_C(ka,ia,ja) ! eddy viscosity (center)
97  real(RP), intent(out) :: Ri (ka,ia,ja) ! Richardson number
98  real(RP), intent(out) :: Pr (ka,ia,ja) ! Prantle number
99  real(RP), intent(out) :: N2 (ka,ia,ja) ! squared Brunt-Vaisala frequency
100 
101  real(RP), intent(in) :: MOMZ(ka,ia,ja)
102  real(RP), intent(in) :: MOMX(ka,ia,ja)
103  real(RP), intent(in) :: MOMY(ka,ia,ja)
104  real(RP), intent(in) :: RHOT(ka,ia,ja)
105  real(RP), intent(in) :: DENS(ka,ia,ja)
106  real(RP), intent(in) :: QTRC(ka,ia,ja,qa)
107 
108  real(RP), intent(in) :: sflx_mw(ia,ja)
109  real(RP), intent(in) :: sflx_mu(ia,ja)
110  real(RP), intent(in) :: sflx_mv(ia,ja)
111  real(RP), intent(in) :: sflx_sh(ia,ja)
112  real(RP), intent(in) :: sflx_qv(ia,ja)
113 
114  real(RP), intent(in) :: GSQRT(ka,ia,ja,7)
115  real(RP), intent(in) :: J13G (ka,ia,ja,7)
116  real(RP), intent(in) :: J23G (ka,ia,ja,7)
117  real(RP), intent(in) :: J33G
118  real(RP), intent(in) :: MAPF (ia,ja,2,4)
119  real(DP), intent(in) :: dt
120  !---------------------------------------------------------------------------
121 
122  if( io_l ) write(io_fid_log,*) '*** Physics step: Turbulence(dummy)'
123 
124  ! do nothing
125  qflx_sgs_momz(:,:,:,:) = 0.0_rp
126  qflx_sgs_momx(:,:,:,:) = 0.0_rp
127  qflx_sgs_momy(:,:,:,:) = 0.0_rp
128  qflx_sgs_rhot(:,:,:,:) = 0.0_rp
129  qflx_sgs_rhoq(:,:,:,:,:) = 0.0_rp
130 
131  tke_t(:,:,:) = 0.0_rp
132 
133  tke(:,:,:) = 0.0_rp
134  nu_c(:,:,:) = 0.0_rp
135  ri(:,:,:) = 0.0_rp
136  pr(:,:,:) = 1.0_rp
137  n2(:,:,:) = 0.0_rp
138 
139  return
140  end subroutine atmos_phy_tb_dummy
141 
142 end module scale_atmos_phy_tb_dummy
subroutine, public prc_mpistop
Abort MPI.
logical, public io_l
output log or not? (this process)
Definition: scale_stdio.F90:59
module STDIO
Definition: scale_stdio.F90:12
integer, public qa
module grid index
module TRACER
integer, public ia
of x whole cells (local, with HALO)
integer, public ka
of z whole cells (local, with HALO)
subroutine, public atmos_phy_tb_dummy_setup(TYPE_TB, CDZ, CDX, CDY, CZ)
module PROCESS
module profiler
Definition: scale_prof.F90:10
module ATMOSPHERE / Physics Turbulence
module PRECISION
integer, public io_fid_log
Log file ID.
Definition: scale_stdio.F90:56
subroutine, public atmos_phy_tb_dummy(qflx_sgs_momz, qflx_sgs_momx, qflx_sgs_momy, qflx_sgs_rhot, qflx_sgs_rhoq, tke, tke_t, nu_C, Ri, Pr, N2, MOMZ, MOMX, MOMY, RHOT, DENS, QTRC, sflx_mw, sflx_mu, sflx_mv, sflx_sh, sflx_qv, GSQRT, J13G, J23G, J33G, MAPF, dt)
integer, public ja
of y whole cells (local, with HALO)