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  qtrc, qtrc0, rhoq_t, &! (in)
37  dens00, dens, & ! (in)
38  mflx_hi, num_diff, & ! (in)
39  gsqrt, mapf, & ! (in)
40  cdz, rcdz, rcdx, rcdy, & ! (in)
41  dtl, & ! (in)
42  flag_fct_tracer, & ! (in)
43  flag_fct_along_stream ) ! (in)
44  use scale_precision
46  use scale_index
47  real(RP), intent(inout) :: qtrco (ka,ia,ja)
48  real(RP), intent(in) :: qtrc (ka,ia,ja)
49  real(RP), intent(in) :: qtrc0 (ka,ia,ja)
50  real(RP), intent(in) :: rhoq_t (ka,ia,ja)
51  real(RP), intent(in) :: dens00 (ka,ia,ja)
52  real(RP), intent(in) :: dens (ka,ia,ja)
53  real(RP), intent(in) :: mflx_hi (ka,ia,ja,3)
54  real(RP), intent(in) :: num_diff(ka,ia,ja,3)
55  real(RP), intent(in) :: gsqrt (ka,ia,ja,7)
56  real(RP), intent(in) :: mapf (ia,ja,2)
57  real(RP), intent(in) :: cdz(ka)
58  real(RP), intent(in) :: rcdz(ka)
59  real(RP), intent(in) :: rcdx(ia)
60  real(RP), intent(in) :: rcdy(ja)
61  real(RP), intent(in) :: dtl
62  logical, intent(in) :: flag_fct_tracer
63  logical, intent(in) :: flag_fct_along_stream
64  end subroutine step
65 
66  end interface
67 
68  procedure(step), pointer :: atmos_dyn_tstep_tracer => null()
69  public :: atmos_dyn_tstep_tracer
70 
71  !-----------------------------------------------------------------------------
72  !
73  !++ Public parameters & variables
74  !
75  !-----------------------------------------------------------------------------
76  !
77  !++ Private procedure
78  !
79  !-----------------------------------------------------------------------------
80  !
81  !++ Private parameters & variables
82  !
83  !-----------------------------------------------------------------------------
84 contains
85  !-----------------------------------------------------------------------------
87  subroutine atmos_dyn_tstep_tracer_setup( &
88  ATMOS_DYN_TSTEP_TRACER_TYPE )
91  use scale_index
92  use scale_prc, only: &
93  prc_abort
97  implicit none
98  character(len=*), intent(in) :: ATMOS_DYN_TSTEP_TRACER_TYPE
99  !---------------------------------------------------------------------------
100 
101  select case( atmos_dyn_tstep_tracer_type )
102  case( 'FVM-HEVE', 'HEVE' )
104  atmos_dyn_tstep_tracer_type )
106  case default
107  log_error("ATMOS_DYN_Tstep_tracer_setup",*) 'ATMOS_DYN_TSTEP_TRACER_TYPE is invalid: ', atmos_dyn_tstep_tracer_type
108  call prc_abort
109  end select
110 
111  return
112  end subroutine atmos_dyn_tstep_tracer_setup
113 
subroutine, public atmos_dyn_tstep_tracer_fvm_heve(QTRCo, QTRC, QTRC0, RHOQ_t, DENS0, DENS, mflx_hi, num_diff, GSQRT, MAPF, CDZ, RCDZ, RCDX, RCDY, dtl, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM)
integer, public ia
of whole cells: x, local, with HALO
subroutine, public atmos_dyn_tstep_tracer_setup(ATMOS_DYN_TSTEP_TRACER_TYPE)
Register.
integer, public ja
of whole cells: y, local, with HALO
module TRACER
module Index
Definition: scale_index.F90:11
module atmosphere / grid / cartesC index
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
subroutine, public atmos_dyn_tstep_tracer_fvm_heve_setup(type)
Setup.
module profiler
Definition: scale_prof.F90:11
module PRECISION
integer, public ka
of whole cells: z, local, with HALO
module STDIO
Definition: scale_io.F90:10
procedure(step), pointer, public atmos_dyn_tstep_tracer
module Atmosphere / Dynamical scheme