SCALE-RM
scale_atmos_dyn_tstep_tracer.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
10 !-------------------------------------------------------------------------------
11 #include "scalelib.h"
13  !-----------------------------------------------------------------------------
14  !
15  !++ used modules
16  !
17  use scale_precision
18  use scale_io
19  use scale_prof
21  use scale_index
22  use scale_tracer
23  !-----------------------------------------------------------------------------
24  implicit none
25  private
26  !-----------------------------------------------------------------------------
27  !
28  !++ Public procedure
29  !
31 
32  abstract interface
33 
34  subroutine step( &
35  QTRCo, & ! (out)
36  qflx, & ! (out)
37  qtrc, qtrc0, rhoq_t, &! (in)
38  dens00, dens, & ! (in)
39  mflx_hi, num_diff, & ! (in)
40  gsqrt, mapf, & ! (in)
41  cdz, rcdz, rcdx, rcdy, & ! (in)
42  twod, & ! (in)
43  dtl, & ! (in)
44  flag_fct_tracer, & ! (in)
45  flag_fct_along_stream ) ! (in)
46  use scale_precision
48  use scale_index
49  real(RP), intent(inout) :: QTRCo (KA,IA,JA)
50  real(RP), intent(out) :: qflx (KA,IA,JA,3)
51  real(RP), intent(in) :: QTRC (KA,IA,JA)
52  real(RP), intent(in) :: QTRC0 (KA,IA,JA)
53  real(RP), intent(in) :: RHOQ_t (KA,IA,JA)
54  real(RP), intent(in) :: DENS00 (KA,IA,JA)
55  real(RP), intent(in) :: DENS (KA,IA,JA)
56  real(RP), intent(in) :: mflx_hi (KA,IA,JA,3)
57  real(RP), intent(in) :: num_diff(KA,IA,JA,3)
58  real(RP), intent(in) :: GSQRT (KA,IA,JA,7)
59  real(RP), intent(in) :: MAPF (IA,JA,2)
60  real(RP), intent(in) :: CDZ(KA)
61  real(RP), intent(in) :: RCDZ(KA)
62  real(RP), intent(in) :: RCDX(IA)
63  real(RP), intent(in) :: RCDY(JA)
64  logical , intent(in) :: TwoD
65  real(RP), intent(in) :: dtl
66  logical, intent(in) :: FLAG_FCT_TRACER
67  logical, intent(in) :: FLAG_FCT_ALONG_STREAM
68  end subroutine step
69 
70  end interface
71 
72  procedure(step), pointer :: atmos_dyn_tstep_tracer => null()
73  public :: atmos_dyn_tstep_tracer
74 
75  !-----------------------------------------------------------------------------
76  !
77  !++ Public parameters & variables
78  !
79  !-----------------------------------------------------------------------------
80  !
81  !++ Private procedure
82  !
83  !-----------------------------------------------------------------------------
84  !
85  !++ Private parameters & variables
86  !
87  !-----------------------------------------------------------------------------
88 contains
89  !-----------------------------------------------------------------------------
91  subroutine atmos_dyn_tstep_tracer_setup( &
92  ATMOS_DYN_TSTEP_TRACER_TYPE )
95  use scale_index
96  use scale_prc, only: &
97  prc_abort
101  implicit none
102  character(len=*), intent(in) :: atmos_dyn_tstep_tracer_type
103  !---------------------------------------------------------------------------
104 
105  select case( atmos_dyn_tstep_tracer_type )
106  case( 'FVM-HEVE', 'HEVE' )
108  atmos_dyn_tstep_tracer_type )
110  case default
111  log_error("ATMOS_DYN_Tstep_tracer_setup",*) 'ATMOS_DYN_TSTEP_TRACER_TYPE is invalid: ', atmos_dyn_tstep_tracer_type
112  call prc_abort
113  end select
114 
115  return
116  end subroutine atmos_dyn_tstep_tracer_setup
117 
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_index
module Index
Definition: scale_index.F90:11
scale_precision
module PRECISION
Definition: scale_precision.F90:14
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_io
module STDIO
Definition: scale_io.F90:10
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_atmos_dyn_tstep_tracer_fvm_heve::atmos_dyn_tstep_tracer_fvm_heve
subroutine, public atmos_dyn_tstep_tracer_fvm_heve(QTRCo, qflx_hi, QTRC, QTRC0, RHOQ_t, DENS0, DENS, mflx_hi, num_diff, GSQRT, MAPF, CDZ, RCDZ, RCDX, RCDY, TwoD, dtl, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM)
Definition: scale_atmos_dyn_tstep_tracer_fvm_heve.F90:84
scale_atmos_dyn_tstep_tracer
module Atmosphere / Dynamical scheme
Definition: scale_atmos_dyn_tstep_tracer.F90:12
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_dyn_tstep_tracer::atmos_dyn_tstep_tracer_setup
subroutine, public atmos_dyn_tstep_tracer_setup(ATMOS_DYN_TSTEP_TRACER_TYPE)
Register.
Definition: scale_atmos_dyn_tstep_tracer.F90:93
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_atmos_dyn_tstep_tracer_fvm_heve::atmos_dyn_tstep_tracer_fvm_heve_setup
subroutine, public atmos_dyn_tstep_tracer_fvm_heve_setup(type)
Setup.
Definition: scale_atmos_dyn_tstep_tracer_fvm_heve.F90:59
scale_atmos_dyn_tstep_tracer::atmos_dyn_tstep_tracer
procedure(step), pointer, public atmos_dyn_tstep_tracer
Definition: scale_atmos_dyn_tstep_tracer.F90:72
scale_atmos_dyn_tstep_tracer_fvm_heve
module Atmosphere / Dynamics
Definition: scale_atmos_dyn_tstep_tracer_fvm_heve.F90:12