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_R, AQ_CV, AQ_CP, AQ_MASS, 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, wdamp_coef, 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 (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,
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), dimension(ka), intent(in)  wdamp_coef,
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 110 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().

110  use scale_const, only: &
111  rdry => const_rdry, &
112  rvap => const_rvap, &
113  cvdry => const_cvdry
114  use scale_comm, only: &
115  comm_vars8, &
116  comm_wait
117  use scale_gridtrans, only: &
118  i_xyz, &
119  i_xyw, &
120  i_uyz, &
121  i_xvz, &
122  i_xy, &
123  i_uy, &
124  i_xv
125  use scale_atmos_dyn_common, only: &
129  use scale_atmos_dyn_fvm_flux_ud1, only: &
133  use scale_atmos_dyn_fvm_flux, only: &
137  use scale_atmos_dyn_tstep_large, only: &
139  use scale_atmos_boundary, only: &
140  bnd_qa, &
141  bnd_smoother_fact => atmos_boundary_smoother_fact
142 #ifdef HIST_TEND
143  use scale_history, only: &
144  hist_in
145 #endif
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_R (QA)
199  real(RP), intent(in) :: AQ_CV (QA)
200  real(RP), intent(in) :: AQ_CP (QA)
201  real(RP), intent(in) :: AQ_MASS(QA)
202 
203  real(RP), intent(in) :: REF_dens(KA,IA,JA)
204  real(RP), intent(in) :: REF_pott(KA,IA,JA)
205  real(RP), intent(in) :: REF_qv (KA,IA,JA)
206  real(RP), intent(in) :: REF_pres(KA,IA,JA)
207 
208  logical, intent(in) :: BND_W
209  logical, intent(in) :: BND_E
210  logical, intent(in) :: BND_S
211  logical, intent(in) :: BND_N
212 
213  real(RP), intent(in) :: ND_COEF
214  real(RP), intent(in) :: ND_COEF_Q
215  integer, intent(in) :: ND_ORDER
216  real(RP), intent(in) :: ND_SFC_FACT
217  logical, intent(in) :: ND_USE_RS
218 
219  real(RP), intent(in) :: DAMP_DENS(KA,IA,JA)
220  real(RP), intent(in) :: DAMP_VELZ(KA,IA,JA)
221  real(RP), intent(in) :: DAMP_VELX(KA,IA,JA)
222  real(RP), intent(in) :: DAMP_VELY(KA,IA,JA)
223  real(RP), intent(in) :: DAMP_POTT(KA,IA,JA)
224  real(RP), intent(in) :: DAMP_QTRC(KA,IA,JA,BND_QA)
225 
226  real(RP), intent(in) :: DAMP_alpha_DENS(KA,IA,JA)
227  real(RP), intent(in) :: DAMP_alpha_VELZ(KA,IA,JA)
228  real(RP), intent(in) :: DAMP_alpha_VELX(KA,IA,JA)
229  real(RP), intent(in) :: DAMP_alpha_VELY(KA,IA,JA)
230  real(RP), intent(in) :: DAMP_alpha_POTT(KA,IA,JA)
231  real(RP), intent(in) :: DAMP_alpha_QTRC(KA,IA,JA,BND_QA)
232 
233  real(RP), intent(in) :: wdamp_coef(KA)
234  real(RP), intent(in) :: divdmp_coef
235 
236  logical, intent(in) :: FLAG_FCT_MOMENTUM
237  logical, intent(in) :: FLAG_FCT_T
238  logical, intent(in) :: FLAG_FCT_TRACER
239  logical, intent(in) :: FLAG_FCT_ALONG_STREAM
240 
241  logical, intent(in) :: USE_AVERAGE
242 
243  real(DP), intent(in) :: DTL
244  real(DP), intent(in) :: DTS
245 
246  call atmos_dyn_tstep_large( &
247  dens, momz, momx, momy, rhot, qtrc, prog, & ! (inout)
248  dens_av, momz_av, momx_av, momy_av, rhot_av, qtrc_av, & ! (inout)
249  mflx_hi, tflx_hi, & ! (out)
250  num_diff, num_diff_q, & ! (out, work)
251  qtrc, & ! (in)
252  dens_tp, momz_tp, momx_tp, momy_tp, rhot_tp, rhoq_tp, & ! (in)
253  corioli, & ! (in)
254  cdz, cdx, cdy, fdz, fdx, fdy, & ! (in)
255  rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, & ! (in)
256  phi, gsqrt, & ! (in)
257  j13g, j23g, j33g, mapf, & ! (in)
258  aq_r, aq_cv, aq_cp, aq_mass, & ! (in)
259  ref_dens, ref_pott, ref_qv, ref_pres, & ! (in)
260  bnd_w, bnd_e, bnd_s, bnd_n, & ! (in)
261  nd_coef, nd_coef_q, nd_order, nd_sfc_fact, nd_use_rs, & ! (in)
262  damp_dens, damp_velz, damp_velx, & ! (in)
263  damp_vely, damp_pott, damp_qtrc, & ! (in)
264  damp_alpha_dens, damp_alpha_velz, damp_alpha_velx, & ! (in)
265  damp_alpha_vely, damp_alpha_pott, damp_alpha_qtrc, & ! (in)
266  wdamp_coef, & ! (in)
267  divdmp_coef, & ! (in)
268  flag_fct_momentum, flag_fct_t, flag_fct_tracer, & ! (in)
269  flag_fct_along_stream, & ! (in)
270  use_average, & ! (in)
271  dtl, dts, .true. ) ! (in)
272 
273  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_fvm_fluxy_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation Y-flux at XYZ
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.
subroutine, public atmos_dyn_fvm_fluxz_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation z-flux at XYZ
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.
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
module GRIDTRANS
integer, public i_uy
integer, public i_xyw
module COMMUNICATION
Definition: scale_comm.F90:23
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
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
subroutine, public atmos_dyn_fvm_fluxx_xyz_ud1(flux, mflx, val, GSQRT, num_diff, CDZ, IIS, IIE, JJS, JJE)
calculation X-flux at XYZ
module scale_atmos_dyn_fvm_flux_ud1
real(rp), public atmos_boundary_smoother_fact
Here is the call graph for this function:
Here is the caller graph for this function: