SCALE-RM
Functions/Subroutines
scale_atmos_dyn_tinteg_large_euler Module Reference

module Atmosphere / Dyn Tinteg More...

Functions/Subroutines

subroutine, public atmos_dyn_tinteg_large_euler_setup (tinteg_type)
 Setup. More...
 
subroutine, public atmos_dyn_tinteg_large_euler (DENS, MOMZ, MOMX, MOMY, RHOT, QTRC, PROG, DENS_av, MOMZ_av, MOMX_av, MOMY_av, RHOT_av, QTRC_av, num_diff, num_diff_q, DENS_tp, MOMZ_tp, MOMX_tp, MOMY_tp, RHOT_tp, RHOQ_tp, CORIOLI, CDZ, CDX, CDY, FDZ, FDX, FDY, RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, PHI, GSQRT, J13G, J23G, J33G, MAPF, AQ_R, AQ_CV, AQ_CP, AQ_MASS, REF_dens, REF_pott, REF_qv, REF_pres, BND_W, BND_E, BND_S, BND_N, TwoD, ND_COEF, ND_COEF_Q, ND_LAPLACIAN_NUM, ND_SFC_FACT, ND_USE_RS, BND_QA, BND_IQ, BND_SMOOTHER_FACT, DAMP_DENS, DAMP_VELZ, DAMP_VELX, DAMP_VELY, DAMP_POTT, DAMP_QTRC, DAMP_alpha_DENS, DAMP_alpha_VELZ, DAMP_alpha_VELX, DAMP_alpha_VELY, DAMP_alpha_POTT, DAMP_alpha_QTRC, MFLUX_OFFSET_X, MFLUX_OFFSET_Y, wdamp_coef, divdmp_coef, FLAG_TRACER_SPLIT_TEND, FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM, USE_AVERAGE, I_QV, DTL, DTS)
 RK3. More...
 

Detailed Description

module Atmosphere / Dyn Tinteg

Description
Temporal integration in Dynamical core for Atmospheric process the Euler scheme
Author
Team SCALE

Function/Subroutine Documentation

◆ atmos_dyn_tinteg_large_euler_setup()

subroutine, public scale_atmos_dyn_tinteg_large_euler::atmos_dyn_tinteg_large_euler_setup ( character(len=*)  tinteg_type)

Setup.

Definition at line 61 of file scale_atmos_dyn_tinteg_large_euler.F90.

61  use scale_prc, only: &
62  prc_abort
63  use scale_const, only: &
64  undef => const_undef
65  implicit none
66 
67  character(len=*) :: tinteg_type
68 
69  integer :: iv
70  !---------------------------------------------------------------------------
71 
72  if ( tinteg_type /= 'EULER' ) then
73  log_error("ATMOS_DYN_Tinteg_large_euler_setup",*) 'TINTEG_LARGE_TYPE is not EULER. Check!'
74  call prc_abort
75  end if
76 
77  return

References scale_const::const_undef, and scale_prc::prc_abort().

Referenced by scale_atmos_dyn_tinteg_large::atmos_dyn_tinteg_large_setup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ atmos_dyn_tinteg_large_euler()

subroutine, public scale_atmos_dyn_tinteg_large_euler::atmos_dyn_tinteg_large_euler ( real(rp), dimension(ka,ia,ja), intent(inout)  DENS,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMZ,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMX,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMY,
real(rp), dimension(ka,ia,ja), intent(inout)  RHOT,
real(rp), dimension(ka,ia,ja,qa), intent(inout)  QTRC,
real(rp), dimension(ka,ia,ja,va), intent(inout)  PROG,
real(rp), dimension(ka,ia,ja), intent(inout)  DENS_av,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMZ_av,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMX_av,
real(rp), dimension(ka,ia,ja), intent(inout)  MOMY_av,
real(rp), dimension(ka,ia,ja), intent(inout)  RHOT_av,
real(rp), dimension(ka,ia,ja,qa), intent(inout)  QTRC_av,
real(rp), dimension (ka,ia,ja,5,3), intent(out)  num_diff,
real(rp), dimension(ka,ia,ja,3), intent(out)  num_diff_q,
real(rp), dimension(ka,ia,ja), intent(in)  DENS_tp,
real(rp), dimension(ka,ia,ja), intent(in)  MOMZ_tp,
real(rp), dimension(ka,ia,ja), intent(in)  MOMX_tp,
real(rp), dimension(ka,ia,ja), intent(in)  MOMY_tp,
real(rp), dimension(ka,ia,ja), intent(in)  RHOT_tp,
real(rp), dimension(ka,ia,ja,qa), intent(in)  RHOQ_tp,
real(rp), dimension(ia,ja), intent(in)  CORIOLI,
real(rp), dimension (ka), intent(in)  CDZ,
real(rp), dimension (ia), intent(in)  CDX,
real(rp), dimension (ja), intent(in)  CDY,
real(rp), dimension (ka-1), intent(in)  FDZ,
real(rp), dimension (ia-1), intent(in)  FDX,
real(rp), dimension (ja-1), intent(in)  FDY,
real(rp), dimension(ka), intent(in)  RCDZ,
real(rp), dimension(ia), intent(in)  RCDX,
real(rp), dimension(ja), intent(in)  RCDY,
real(rp), dimension(ka-1), intent(in)  RFDZ,
real(rp), dimension(ia-1), intent(in)  RFDX,
real(rp), dimension(ja-1), intent(in)  RFDY,
real(rp), dimension (ka,ia,ja), intent(in)  PHI,
real(rp), dimension(ka,ia,ja,7), intent(in)  GSQRT,
real(rp), dimension (ka,ia,ja,7), intent(in)  J13G,
real(rp), dimension (ka,ia,ja,7), intent(in)  J23G,
real(rp), intent(in)  J33G,
real(rp), dimension (ia,ja,2,4), intent(in)  MAPF,
real(rp), dimension (qa), intent(in)  AQ_R,
real(rp), dimension (qa), intent(in)  AQ_CV,
real(rp), dimension (qa), intent(in)  AQ_CP,
real(rp), dimension(qa), intent(in)  AQ_MASS,
real(rp), dimension(ka,ia,ja), intent(in)  REF_dens,
real(rp), dimension(ka,ia,ja), intent(in)  REF_pott,
real(rp), dimension (ka,ia,ja), intent(in)  REF_qv,
real(rp), dimension(ka,ia,ja), intent(in)  REF_pres,
logical, intent(in)  BND_W,
logical, intent(in)  BND_E,
logical, intent(in)  BND_S,
logical, intent(in)  BND_N,
logical, intent(in)  TwoD,
real(rp), intent(in)  ND_COEF,
real(rp), intent(in)  ND_COEF_Q,
integer, intent(in)  ND_LAPLACIAN_NUM,
real(rp), intent(in)  ND_SFC_FACT,
logical, intent(in)  ND_USE_RS,
integer, intent(in)  BND_QA,
integer, dimension(qa), intent(in)  BND_IQ,
real(rp), intent(in)  BND_SMOOTHER_FACT,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_DENS,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_VELZ,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_VELX,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_VELY,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_POTT,
real(rp), dimension(ka,ia,ja,bnd_qa), intent(in)  DAMP_QTRC,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_alpha_DENS,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_alpha_VELZ,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_alpha_VELX,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_alpha_VELY,
real(rp), dimension(ka,ia,ja), intent(in)  DAMP_alpha_POTT,
real(rp), dimension(ka,ia,ja,bnd_qa), intent(in)  DAMP_alpha_QTRC,
real(rp), dimension(ka,ja,2), intent(in)  MFLUX_OFFSET_X,
real(rp), dimension(ka,ia,2), intent(in)  MFLUX_OFFSET_Y,
real(rp), dimension(ka), intent(in)  wdamp_coef,
real(rp), intent(in)  divdmp_coef,
logical, intent(in)  FLAG_TRACER_SPLIT_TEND,
logical, intent(in)  FLAG_FCT_MOMENTUM,
logical, intent(in)  FLAG_FCT_T,
logical, intent(in)  FLAG_FCT_TRACER,
logical, intent(in)  FLAG_FCT_ALONG_STREAM,
logical, intent(in)  USE_AVERAGE,
integer, intent(in)  I_QV,
real(dp), intent(in)  DTL,
real(dp), intent(in)  DTS 
)

RK3.

Parameters
[in]phigeopotential
[in]gsqrtvertical metrics {G}^1/2
[in]j13g(1,3) element of Jacobian matrix
[in]j23g(2,3) element of Jacobian matrix
[in]j33g(3,3) element of Jacobian matrix
[in]mapfmap factor
[in]ref_presreference pressure

Definition at line 110 of file scale_atmos_dyn_tinteg_large_euler.F90.

110 
111  use scale_atmos_dyn_tstep_large, only: &
113 
114  implicit none
115 
116  real(RP), intent(inout) :: DENS(KA,IA,JA)
117  real(RP), intent(inout) :: MOMZ(KA,IA,JA)
118  real(RP), intent(inout) :: MOMX(KA,IA,JA)
119  real(RP), intent(inout) :: MOMY(KA,IA,JA)
120  real(RP), intent(inout) :: RHOT(KA,IA,JA)
121  real(RP), intent(inout) :: QTRC(KA,IA,JA,QA)
122  real(RP), intent(inout) :: PROG(KA,IA,JA,VA)
123 
124  real(RP), intent(inout) :: DENS_av(KA,IA,JA)
125  real(RP), intent(inout) :: MOMZ_av(KA,IA,JA)
126  real(RP), intent(inout) :: MOMX_av(KA,IA,JA)
127  real(RP), intent(inout) :: MOMY_av(KA,IA,JA)
128  real(RP), intent(inout) :: RHOT_av(KA,IA,JA)
129  real(RP), intent(inout) :: QTRC_av(KA,IA,JA,QA)
130 
131  real(RP), intent(out) :: num_diff (KA,IA,JA,5,3)
132  real(RP), intent(out) :: num_diff_q(KA,IA,JA,3)
133 
134  real(RP), intent(in) :: DENS_tp(KA,IA,JA)
135  real(RP), intent(in) :: MOMZ_tp(KA,IA,JA)
136  real(RP), intent(in) :: MOMX_tp(KA,IA,JA)
137  real(RP), intent(in) :: MOMY_tp(KA,IA,JA)
138  real(RP), intent(in) :: RHOT_tp(KA,IA,JA)
139  real(RP), intent(in) :: RHOQ_tp(KA,IA,JA,QA)
140 
141  real(RP), intent(in) :: CORIOLI(IA,JA)
142 
143  real(RP), intent(in) :: CDZ (KA)
144  real(RP), intent(in) :: CDX (IA)
145  real(RP), intent(in) :: CDY (JA)
146  real(RP), intent(in) :: FDZ (KA-1)
147  real(RP), intent(in) :: FDX (IA-1)
148  real(RP), intent(in) :: FDY (JA-1)
149  real(RP), intent(in) :: RCDZ(KA)
150  real(RP), intent(in) :: RCDX(IA)
151  real(RP), intent(in) :: RCDY(JA)
152  real(RP), intent(in) :: RFDZ(KA-1)
153  real(RP), intent(in) :: RFDX(IA-1)
154  real(RP), intent(in) :: RFDY(JA-1)
155 
156  real(RP), intent(in) :: PHI (KA,IA,JA)
157  real(RP), intent(in) :: GSQRT(KA,IA,JA,7)
158  real(RP), intent(in) :: J13G (KA,IA,JA,7)
159  real(RP), intent(in) :: J23G (KA,IA,JA,7)
160  real(RP), intent(in) :: J33G
161  real(RP), intent(in) :: MAPF (IA,JA,2,4)
162 
163  real(RP), intent(in) :: AQ_R (QA)
164  real(RP), intent(in) :: AQ_CV (QA)
165  real(RP), intent(in) :: AQ_CP (QA)
166  real(RP), intent(in) :: AQ_MASS(QA)
167 
168  real(RP), intent(in) :: REF_dens(KA,IA,JA)
169  real(RP), intent(in) :: REF_pott(KA,IA,JA)
170  real(RP), intent(in) :: REF_qv (KA,IA,JA)
171  real(RP), intent(in) :: REF_pres(KA,IA,JA)
172 
173  logical, intent(in) :: BND_W
174  logical, intent(in) :: BND_E
175  logical, intent(in) :: BND_S
176  logical, intent(in) :: BND_N
177  logical, intent(in) :: TwoD
178 
179  real(RP), intent(in) :: ND_COEF
180  real(RP), intent(in) :: ND_COEF_Q
181  integer, intent(in) :: ND_LAPLACIAN_NUM
182  real(RP), intent(in) :: ND_SFC_FACT
183  logical, intent(in) :: ND_USE_RS
184 
185  integer, intent(in) :: BND_QA
186  integer, intent(in) :: BND_IQ(QA)
187  real(RP), intent(in) :: BND_SMOOTHER_FACT
188 
189  real(RP), intent(in) :: DAMP_DENS(KA,IA,JA)
190  real(RP), intent(in) :: DAMP_VELZ(KA,IA,JA)
191  real(RP), intent(in) :: DAMP_VELX(KA,IA,JA)
192  real(RP), intent(in) :: DAMP_VELY(KA,IA,JA)
193  real(RP), intent(in) :: DAMP_POTT(KA,IA,JA)
194  real(RP), intent(in) :: DAMP_QTRC(KA,IA,JA,BND_QA)
195 
196  real(RP), intent(in) :: DAMP_alpha_DENS(KA,IA,JA)
197  real(RP), intent(in) :: DAMP_alpha_VELZ(KA,IA,JA)
198  real(RP), intent(in) :: DAMP_alpha_VELX(KA,IA,JA)
199  real(RP), intent(in) :: DAMP_alpha_VELY(KA,IA,JA)
200  real(RP), intent(in) :: DAMP_alpha_POTT(KA,IA,JA)
201  real(RP), intent(in) :: DAMP_alpha_QTRC(KA,IA,JA,BND_QA)
202  real(RP), intent(in) :: MFLUX_OFFSET_X(KA,JA,2)
203  real(RP), intent(in) :: MFLUX_OFFSET_Y(KA,IA,2)
204 
205  real(RP), intent(in) :: wdamp_coef(KA)
206  real(RP), intent(in) :: divdmp_coef
207 
208  logical, intent(in) :: FLAG_TRACER_SPLIT_TEND
209  logical, intent(in) :: FLAG_FCT_MOMENTUM
210  logical, intent(in) :: FLAG_FCT_T
211  logical, intent(in) :: FLAG_FCT_TRACER
212  logical, intent(in) :: FLAG_FCT_ALONG_STREAM
213 
214  logical, intent(in) :: USE_AVERAGE
215 
216  integer, intent(in) :: I_QV
217 
218  real(DP), intent(in) :: DTL
219  real(DP), intent(in) :: DTS
220 
221  call atmos_dyn_tstep_large( &
222  dens, momz, momx, momy, rhot, qtrc, prog, & ! (inout)
223  dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, & ! (inout)
224  num_diff, num_diff_q, & ! (out, work)
225  qtrc, & ! (in)
226  dens_tp, momz_tp, momx_tp, momy_tp, rhot_tp, rhoq_tp, & ! (in)
227  corioli, & ! (in)
228  cdz, cdx, cdy, fdz, fdx, fdy, & ! (in)
229  rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, & ! (in)
230  phi, gsqrt, & ! (in)
231  j13g, j23g, j33g, mapf, & ! (in)
232  aq_r, aq_cv, aq_cp, aq_mass, & ! (in)
233  ref_dens, ref_pott, ref_qv, ref_pres, & ! (in)
234  bnd_w, bnd_e, bnd_s, bnd_n, twod, & ! (in)
235  nd_coef, nd_coef_q, nd_laplacian_num, & ! (in)
236  nd_sfc_fact, nd_use_rs, & ! (in)
237  bnd_qa, bnd_iq, bnd_smoother_fact, & ! (in)
238  damp_dens, damp_velz, damp_velx, & ! (in)
239  damp_vely, damp_pott, damp_qtrc, & ! (in)
240  damp_alpha_dens, damp_alpha_velz, damp_alpha_velx, & ! (in)
241  damp_alpha_vely, damp_alpha_pott, damp_alpha_qtrc, & ! (in)
242  mflux_offset_x, mflux_offset_y, & ! (in)
243  wdamp_coef, divdmp_coef, & ! (in)
244  flag_tracer_split_tend, & ! (in)
245  flag_fct_momentum, flag_fct_t, flag_fct_tracer, & ! (in)
246  flag_fct_along_stream, & ! (in)
247  use_average, & ! (in)
248  i_qv, & ! (in)
249  dtl, dts, .true. ) ! (in)
250 
251  return

References scale_atmos_dyn_tstep_large::atmos_dyn_tstep_large.

Referenced by scale_atmos_dyn_tinteg_large::atmos_dyn_tinteg_large_setup().

Here is the caller graph for this function:
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_atmos_dyn_tstep_large::atmos_dyn_tstep_large
procedure(large), pointer, public atmos_dyn_tstep_large
Definition: scale_atmos_dyn_tstep_large.F90:179
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_const
module CONSTANT
Definition: scale_const.F90:11
scale_atmos_dyn_tstep_large
module Atmosphere / Dynamical scheme
Definition: scale_atmos_dyn_tstep_large.F90:12
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:41