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, mflx_hi, tflx_hi, 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_CV, REF_dens, REF_pott, REF_qv, REF_pres, BND_W, BND_E, BND_S, BND_N, ND_COEF, ND_COEF_Q, ND_ORDER, ND_SFC_FACT, ND_USE_RS, 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, divdmp_coef, FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_TRACER, FLAG_FCT_ALONG_STREAM, USE_AVERAGE, 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
History
  • 2016-04-18 (S.Nishizawa) [new]

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 64 of file scale_atmos_dyn_tinteg_large_euler.F90.

References scale_const::const_undef, and scale_process::prc_mpistop().

Referenced by scale_atmos_dyn_tinteg_large::atmos_dyn_tinteg_large_setup().

64  use scale_process, only: &
66  use scale_const, only: &
67  undef => const_undef
68  implicit none
69 
70  character(len=*) :: tinteg_type
71 
72  integer :: iv
73  !---------------------------------------------------------------------------
74 
75  if ( tinteg_type /= 'EULER' ) then
76  write(*,*) 'xxx TINTEG_LARGE_TYPE is not EULER. Check!'
77  call prc_mpistop
78  end if
79 
80  return
subroutine, public prc_mpistop
Abort MPI.
real(rp), public const_undef
Definition: scale_const.F90:43
module PROCESS
module CONSTANT
Definition: scale_const.F90:14
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,3), intent(out)  mflx_hi,
real(rp), dimension(ka,ia,ja,3), intent(out)  tflx_hi,
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(qqa), intent(in)  AQ_CV,
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,
real(rp), intent(in)  ND_COEF,
real(rp), intent(in)  ND_COEF_Q,
integer, intent(in)  ND_ORDER,
real(rp), intent(in)  ND_SFC_FACT,
logical, intent(in)  ND_USE_RS,
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), intent(in)  divdmp_coef,
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,
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 109 of file scale_atmos_dyn_tinteg_large_euler.F90.

References scale_atmos_boundary::atmos_boundary_smoother_fact, scale_atmos_dyn_common::atmos_dyn_fct(), scale_atmos_dyn_fvm_flux::atmos_dyn_fvm_fluxx_xyz, scale_atmos_dyn_fvm_flux_ud1::atmos_dyn_fvm_fluxx_xyz_ud1(), scale_atmos_dyn_fvm_flux::atmos_dyn_fvm_fluxy_xyz, scale_atmos_dyn_fvm_flux_ud1::atmos_dyn_fvm_fluxy_xyz_ud1(), scale_atmos_dyn_fvm_flux::atmos_dyn_fvm_fluxz_xyz, scale_atmos_dyn_fvm_flux_ud1::atmos_dyn_fvm_fluxz_xyz_ud1(), scale_atmos_dyn_common::atmos_dyn_numfilter_coef(), scale_atmos_dyn_common::atmos_dyn_numfilter_coef_q(), scale_atmos_dyn_tstep_large::atmos_dyn_tstep_large, scale_atmos_boundary::bnd_qa, scale_const::const_cvdry, scale_const::const_rdry, scale_const::const_rvap, scale_gridtrans::i_uy, scale_gridtrans::i_uyz, scale_gridtrans::i_xv, scale_gridtrans::i_xvz, scale_gridtrans::i_xy, scale_gridtrans::i_xyw, and scale_gridtrans::i_xyz.

Referenced by scale_atmos_dyn_tinteg_large::atmos_dyn_tinteg_large_setup().

109  use scale_const, only: &
110  rdry => const_rdry, &
111  rvap => const_rvap, &
112  cvdry => const_cvdry
113  use scale_comm, only: &
114  comm_vars8, &
115  comm_wait
116  use scale_gridtrans, only: &
117  i_xyz, &
118  i_xyw, &
119  i_uyz, &
120  i_xvz, &
121  i_xy, &
122  i_uy, &
123  i_xv
124  use scale_atmos_dyn_common, only: &
128  use scale_atmos_dyn_fvm_flux_ud1, only: &
132  use scale_atmos_dyn_fvm_flux, only: &
136  use scale_atmos_dyn_tstep_large, only: &
138  use scale_atmos_boundary, only: &
139  bnd_qa, &
140  bnd_smoother_fact => atmos_boundary_smoother_fact
141  use scale_history, only: &
142 #ifdef hist_tend
143  hist_in, &
144 #endif
145  hist_switch
146  implicit none
147 
148  real(RP), intent(inout) :: dens(ka,ia,ja)
149  real(RP), intent(inout) :: momz(ka,ia,ja)
150  real(RP), intent(inout) :: momx(ka,ia,ja)
151  real(RP), intent(inout) :: momy(ka,ia,ja)
152  real(RP), intent(inout) :: rhot(ka,ia,ja)
153  real(RP), intent(inout) :: qtrc(ka,ia,ja,qa)
154  real(RP), intent(inout) :: prog(ka,ia,ja,va)
155 
156  real(RP), intent(inout) :: dens_av(ka,ia,ja)
157  real(RP), intent(inout) :: momz_av(ka,ia,ja)
158  real(RP), intent(inout) :: momx_av(ka,ia,ja)
159  real(RP), intent(inout) :: momy_av(ka,ia,ja)
160  real(RP), intent(inout) :: rhot_av(ka,ia,ja)
161  real(RP), intent(inout) :: qtrc_av(ka,ia,ja,qa)
162 
163  real(RP), intent(out) :: mflx_hi(ka,ia,ja,3)
164  real(RP), intent(out) :: tflx_hi(ka,ia,ja,3)
165 
166  real(RP), intent(out) :: num_diff (ka,ia,ja,5,3)
167  real(RP), intent(out) :: num_diff_q(ka,ia,ja,3)
168 
169  real(RP), intent(in) :: dens_tp(ka,ia,ja)
170  real(RP), intent(in) :: momz_tp(ka,ia,ja)
171  real(RP), intent(in) :: momx_tp(ka,ia,ja)
172  real(RP), intent(in) :: momy_tp(ka,ia,ja)
173  real(RP), intent(in) :: rhot_tp(ka,ia,ja)
174  real(RP), intent(in) :: rhoq_tp(ka,ia,ja,qa)
175 
176  real(RP), intent(in) :: corioli(ia,ja)
177 
178  real(RP), intent(in) :: cdz (ka)
179  real(RP), intent(in) :: cdx (ia)
180  real(RP), intent(in) :: cdy (ja)
181  real(RP), intent(in) :: fdz (ka-1)
182  real(RP), intent(in) :: fdx (ia-1)
183  real(RP), intent(in) :: fdy (ja-1)
184  real(RP), intent(in) :: rcdz(ka)
185  real(RP), intent(in) :: rcdx(ia)
186  real(RP), intent(in) :: rcdy(ja)
187  real(RP), intent(in) :: rfdz(ka-1)
188  real(RP), intent(in) :: rfdx(ia-1)
189  real(RP), intent(in) :: rfdy(ja-1)
190 
191  real(RP), intent(in) :: phi (ka,ia,ja)
192  real(RP), intent(in) :: gsqrt(ka,ia,ja,7)
193  real(RP), intent(in) :: j13g (ka,ia,ja,7)
194  real(RP), intent(in) :: j23g (ka,ia,ja,7)
195  real(RP), intent(in) :: j33g
196  real(RP), intent(in) :: mapf (ia,ja,2,4)
197 
198  real(RP), intent(in) :: aq_cv(qqa)
199 
200  real(RP), intent(in) :: ref_dens(ka,ia,ja)
201  real(RP), intent(in) :: ref_pott(ka,ia,ja)
202  real(RP), intent(in) :: ref_qv (ka,ia,ja)
203  real(RP), intent(in) :: ref_pres(ka,ia,ja)
204 
205  logical, intent(in) :: bnd_w
206  logical, intent(in) :: bnd_e
207  logical, intent(in) :: bnd_s
208  logical, intent(in) :: bnd_n
209 
210  real(RP), intent(in) :: nd_coef
211  real(RP), intent(in) :: nd_coef_q
212  integer, intent(in) :: nd_order
213  real(RP), intent(in) :: nd_sfc_fact
214  logical, intent(in) :: nd_use_rs
215 
216  real(RP), intent(in) :: damp_dens(ka,ia,ja)
217  real(RP), intent(in) :: damp_velz(ka,ia,ja)
218  real(RP), intent(in) :: damp_velx(ka,ia,ja)
219  real(RP), intent(in) :: damp_vely(ka,ia,ja)
220  real(RP), intent(in) :: damp_pott(ka,ia,ja)
221  real(RP), intent(in) :: damp_qtrc(ka,ia,ja,bnd_qa)
222 
223  real(RP), intent(in) :: damp_alpha_dens(ka,ia,ja)
224  real(RP), intent(in) :: damp_alpha_velz(ka,ia,ja)
225  real(RP), intent(in) :: damp_alpha_velx(ka,ia,ja)
226  real(RP), intent(in) :: damp_alpha_vely(ka,ia,ja)
227  real(RP), intent(in) :: damp_alpha_pott(ka,ia,ja)
228  real(RP), intent(in) :: damp_alpha_qtrc(ka,ia,ja,bnd_qa)
229 
230  real(RP), intent(in) :: divdmp_coef
231 
232  logical, intent(in) :: flag_fct_momentum
233  logical, intent(in) :: flag_fct_t
234  logical, intent(in) :: flag_fct_tracer
235  logical, intent(in) :: flag_fct_along_stream
236 
237  logical, intent(in) :: use_average
238 
239  real(DP), intent(in) :: dtl
240  real(DP), intent(in) :: dts
241 
242  call atmos_dyn_tstep_large( &
243  dens, momz, momx, momy, rhot, qtrc, prog, & ! (inout)
244  dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, & ! (inout)
245  mflx_hi, tflx_hi, & ! (out)
246  num_diff, num_diff_q, & ! (out, work)
247  qtrc, & ! (in)
248  dens_tp, momz_tp, momx_tp, momy_tp, rhot_tp, rhoq_tp, & ! (in)
249  corioli, & ! (in)
250  cdz, cdx, cdy, fdz, fdx, fdy, & ! (in)
251  rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, & ! (in)
252  phi, gsqrt, & ! (in)
253  j13g, j23g, j33g, mapf, & ! (in)
254  aq_cv, & ! (in)
255  ref_dens, ref_pott, ref_qv, ref_pres, & ! (in)
256  bnd_w, bnd_e, bnd_s, bnd_n, & ! (in)
257  nd_coef, nd_coef_q, nd_order, nd_sfc_fact, nd_use_rs, & ! (in)
258  damp_dens, damp_velz, damp_velx, & ! (in)
259  damp_vely, damp_pott, damp_qtrc, & ! (in)
260  damp_alpha_dens, damp_alpha_velz, damp_alpha_velx, & ! (in)
261  damp_alpha_vely, damp_alpha_pott, damp_alpha_qtrc, & ! (in)
262  divdmp_coef, & ! (in)
263  flag_fct_momentum, flag_fct_t, flag_fct_tracer, & ! (in)
264  flag_fct_along_stream, & ! (in)
265  use_average, & ! (in)
266  dtl, dts, .true. ) ! (in)
267 
268  return
integer, public i_xvz
real(rp), public const_cvdry
specific heat (dry air,constant volume) [J/kg/K]
Definition: scale_const.F90:59
subroutine, public atmos_dyn_numfilter_coef_q(num_diff_q, DENS, QTRC, CDZ, CDX, CDY, dt, REF_qv, iq, ND_COEF, ND_ORDER, ND_SFC_FACT, ND_USE_RS)
Calc coefficient of numerical filter.
integer, public va
Definition: scale_index.F90:38
subroutine, public atmos_dyn_numfilter_coef(num_diff, DENS, MOMZ, MOMX, MOMY, RHOT, CDZ, CDX, CDY, FDZ, FDX, FDY, DT, REF_dens, REF_pott, ND_COEF, ND_ORDER, ND_SFC_FACT, ND_USE_RS)
Calc coefficient of numerical filter.
subroutine, public atmos_dyn_fvm_fluxy_xyz_ud1(flux, mflx, val, GSQRT, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxx_xyz
integer, public i_xy
module Atmosphere / Dynamical scheme
real(rp), public const_rdry
specific gas constant (dry air) [J/kg/K]
Definition: scale_const.F90:57
integer, public ia
of x whole cells (local, with HALO)
module GRIDTRANS
integer, public ka
of z whole cells (local, with HALO)
integer, public i_uy
integer, public i_xyw
module COMMUNICATION
Definition: scale_comm.F90:23
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud1(flux, mflx, val, GSQRT, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
module Atmosphere / Dynamics common
real(rp), parameter, public const_rvap
specific gas constant (water vapor) [J/kg/K]
Definition: scale_const.F90:65
module CONSTANT
Definition: scale_const.F90:14
integer, public i_xv
module scale_atmos_dyn_fvm_flux
integer, public i_uyz
subroutine, public atmos_dyn_fct(qflx_anti, phi_in, DENS0, DENS, qflx_hi, qflx_lo, mflx_hi, rdz, rdx, rdy, GSQRT, MAPF, dt, flag_vect)
Flux Correction Transport Limiter.
module ATMOSPHERE / Boundary treatment
subroutine, public atmos_dyn_fvm_fluxx_xyz_ud1(flux, mflx, val, GSQRT, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
module HISTORY
integer, public i_xyz
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxz_xyz
procedure(flux_phi), pointer, public atmos_dyn_fvm_fluxy_xyz
procedure(large), pointer, public atmos_dyn_tstep_large
module scale_atmos_dyn_fvm_flux_ud1
real(rp), public atmos_boundary_smoother_fact
integer, public ja
of y whole cells (local, with HALO)
Here is the call graph for this function:
Here is the caller graph for this function: