SCALE-RM
scalelib
src
atmos-rm
dynamics
scale_atmos_dyn_tstep_tracer.F90
Go to the documentation of this file.
1
!-------------------------------------------------------------------------------
10
!-------------------------------------------------------------------------------
11
#include "scalelib.h"
12
module
scale_atmos_dyn_tstep_tracer
13
!-----------------------------------------------------------------------------
14
!
15
!++ used modules
16
!
17
use
scale_precision
18
use
scale_io
19
use
scale_prof
20
use
scale_atmos_grid_cartesc_index
21
use
scale_index
22
use
scale_tracer
23
!-----------------------------------------------------------------------------
24
implicit none
25
private
26
!-----------------------------------------------------------------------------
27
!
28
!++ Public procedure
29
!
30
public
::
atmos_dyn_tstep_tracer_setup
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
47
use
scale_atmos_grid_cartesc_index
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 )
93
use
scale_precision
94
use
scale_atmos_grid_cartesc_index
95
use
scale_index
96
use
scale_prc
,
only
: &
97
prc_abort
98
use
scale_atmos_dyn_tstep_tracer_fvm_heve
,
only
: &
99
atmos_dyn_tstep_tracer_fvm_heve_setup
, &
100
atmos_dyn_tstep_tracer_fvm_heve
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'
)
107
call
atmos_dyn_tstep_tracer_fvm_heve_setup
( &
108
atmos_dyn_tstep_tracer_type )
109
atmos_dyn_tstep_tracer
=>
atmos_dyn_tstep_tracer_fvm_heve
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
118
end module
scale_atmos_dyn_tstep_tracer
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
Generated by
1.8.17