SCALE-RM
scale_atmos_dyn_tinteg_short_rk7s6o.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
15 !-------------------------------------------------------------------------------
16 #include "scalelib.h"
18  !-----------------------------------------------------------------------------
19  !
20  !++ used modules
21  !
22  use scale_precision
23  use scale_io
24  use scale_prof
26  use scale_index
27  use scale_tracer
28 #if defined DEBUG || defined QUICKDEBUG
29  use scale_debug, only: &
30  check
31  use scale_const, only: &
32  undef => const_undef, &
33  iundef => const_undef2
34 #endif
35 
37  rkinfo, &
38  rkcommon_setup => atmos_dyn_tinteg_rkcommon_setup, &
39  rkcommon_rkwork_alloc => atmos_dyn_tinteg_rkcommon_rkwork_alloc, &
40  rkcommon_rkwork_dealloc => atmos_dyn_tinteg_rkcommon_rkwork_dealloc, &
41  rkcommon_comm => atmos_dyn_tinteg_rkcommon_comm, &
42  rkcommon_comm_wait => atmos_dyn_tinteg_rkcommon_comm_wait, &
43  rkcommon_nextstage => atmos_dyn_tinteg_rkcommon_nextstage, &
44  rkcommon_updatevar => atmos_dyn_tinteg_rkcommon_updatevar, &
45  rkcommon_updateflux => atmos_dyn_tinteg_rkcommon_updateflux
46 
47 
48  !-----------------------------------------------------------------------------
49  implicit none
50  private
51  !-----------------------------------------------------------------------------
52  !
53  !++ Public procedure
54  !
57 
58  !-----------------------------------------------------------------------------
59  !
60  !++ Public parameters & variables
61  !
62  !-----------------------------------------------------------------------------
63 
64  !- coeffecients for 7 stage RK with 6th order and extended region of stability by Lawson (1967) --------------
65 
66  real(rp), parameter, public :: rkcoef_a_7s6o_lawson1967(7,7) = reshape( &
67  (/ 0.0_rp, 3.0_rp/19.0_rp, 9.0_rp/152.0_rp, 94474764.0_rp/318611987.0_rp, -76607525678.0_rp/925997907411.0_rp, -113193410749715476.0_rp/1376008387821185625.0_rp, 510341547912673.0_rp/1709758911034368.0_rp, &
68  0.0_rp, 0.0_rp, 27.0_rp/152.0_rp, -310753854.0_rp/318611987.0_rp, 309768324.0_rp/200562683.0_rp, 68309142.0_rp/42280325.0_rp, -3074637.0_rp/21410624.0_rp, &
69  0.0_rp, 0.0_rp, 0.0_rp, 375818328.0_rp/318611987.0_rp, -57882086555344.0_rp/37088653028409.0_rp, -9901869473098663108168.0_rp/5940196722617929711875.0_rp, 205532548800199165.0_rp/6225256605226855824.0_rp, &
70  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 643400862141470.0_rp/704684407539771.0_rp, 8947230518934447694268.0_rp/9333225588784524496875.0_rp, 32370527990426718666299.0_rp/90521226376106372167680.0_rp, &
71  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, -8377112295767292.0_rp/1089624335851065625.0_rp, 2610287999955961017.0_rp/236243323046620160.0_rp, &
72  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, -2690946369187951875.0_rp/253991013039290368.0_rp, &
73  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp /), &
75 
76  real(rp), parameter, public :: rkcoef_b_7s6o_lawson1967(7) = &
77  (/ 119490041.0_rp/1597112640.0_rp, 0.0_rp, 55710603179056.0_rp/168638187800205.0_rp, &
78  5739605598843081731.0_rp/28834038834414422400.0_rp, 1477688286853979.0_rp/291957783566400.0_rp, -298030839900625.0_rp/62778200252544.0_rp, &
79  5352656.0_rp/65415735.0_rp /)
80 
81 
82  !- coeffecients for 7 stage RK with 6th order by Butcher (1964) --------------
83 
84  real(rp), parameter, public :: rkcoef_a_7s6o_butcher1964(7,7) = reshape( &
85  (/ 0.0_rp, 1.0_rp/3.0_rp, 0.0_rp, 1.0_rp/12.0_rp, -1.0_rp/16.0_rp, 0.0_rp, 9.0_rp/44.0_rp, &
86  0.0_rp, 0.0_rp, 2.0_rp/3.0_rp, 1.0_rp/3.0_rp, 9.0_rp/8.0_rp, 9.0_rp/8.0_rp, -9.0_rp/11.0_rp, &
87  0.0_rp, 0.0_rp, 0.0_rp, -1.0_rp/12.0_rp, -3.0_rp/16.0_rp, -3_rp/8.0_rp, 63.0_rp/44.0_rp, &
88  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, -3.0_rp/8.0_rp, -3.0_rp/4.0_rp, 18.0_rp/11.0_rp, &
89  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 1.0_rp/2.0_rp, 0.0_rp, &
90  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, -16.0_rp/11.0_rp, &
91  0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp, 0.0_rp /), &
93 
94  real(rp), parameter, public :: rkcoef_b_7s6o_butcher1964(7) = &
95  1.0_rp/120.0_rp * (/ 11.0_rp, 0.0_rp, 81.0_rp, 81.0_rp, -32.0_rp, -32.0_rp, 11.0_rp /)
96 
97  !-----------------------------------------------------------------------------
98  !
99  !++ Private procedure
100  !
101  !-----------------------------------------------------------------------------
102  !
103  !++ Private parameters & variables
104  !
105  integer, private, parameter :: rk_nstage = 7
106  integer, private, parameter :: rk_nregister = 7
107 
108  type(rkinfo), private :: rk_dynvar
109  integer, private, parameter :: i_rk_dens = 1
110  integer, private, parameter :: i_rk_momz = 2
111  integer, private, parameter :: i_rk_momx = 3
112  integer, private, parameter :: i_rk_momy = 4
113  integer, private, parameter :: i_rk_rhot = 5
114 
115  type(rkinfo), private :: rk_prgvar
116 
117  type(rkinfo), private :: rk_mflx_hi
118  type(rkinfo), private :: rk_tflx_hi
119 
120  !-----------------------------------------------------------------------------
121 contains
122  !-----------------------------------------------------------------------------
125  tinteg_type )
126  use scale_prc, only: &
127  prc_abort
128  use scale_const, only: &
129  undef => const_undef
130  use scale_comm_cartesc, only: &
132  implicit none
133 
134  character(len=*) :: tinteg_type
135 
136  integer :: iv, d
137  character(H_SHORT) :: dynvar_name_list(5)
138  character(H_SHORT) :: prgvar_name_list(va)
139  character(H_SHORT) :: flux_name_list(3)
140 
141  real(rp) :: rkcoef_a(rk_nstage,rk_nstage)
142  real(rp) :: rkcoef_b(rk_nstage)
143 
144  !---------------------------------------------------------------------------
145 
146  select case( trim(tinteg_type) )
147  case ('RK7s6o', 'RK7s6oLawson1967')
148  rkcoef_a(:,:) = rkcoef_a_7s6o_lawson1967
149  rkcoef_b(:) = rkcoef_b_7s6o_lawson1967
150  case ('RK7s6oButcher1964')
151  rkcoef_a(:,:) = rkcoef_a_7s6o_butcher1964
152  rkcoef_b(:) = rkcoef_b_7s6o_butcher1964
153  case default
154  log_error("ATMOS_DYN_Tinteg_short_rk7s6o_setup",*) 'The specified TINTEG_TYPE is invalid. Check!', tinteg_type
155  call prc_abort
156  end select
157 
158  dynvar_name_list(1) = 'DENS'
159  dynvar_name_list(2) = 'MOMZ'
160  dynvar_name_list(3) = 'MOMX'
161  dynvar_name_list(4) = 'MOMY'
162  dynvar_name_list(5) = 'RHOT'
163  call rkcommon_setup( rk_dynvar, rk_nstage, rk_nregister, rkcoef_a, rkcoef_b, dynvar_name_list )
164 
165  do iv = 1, va
166  flux_name_list(iv) = 'PROG'
167  end do
168  call rkcommon_setup( rk_prgvar, rk_nstage, rk_nregister, rkcoef_a, rkcoef_b,prgvar_name_list, comm_id_offset=5 )
169 
170  do d = 1, 3
171  flux_name_list(iv) = 'mflx_hi'
172  end do
173  call rkcommon_setup( rk_mflx_hi, rk_nstage, rk_nregister, rkcoef_a, rkcoef_b, flux_name_list, is_type_flux=.true. )
174 
175 
176  do d = 1, 3
177  flux_name_list(iv) = 'tflx_hi'
178  end do
179  call rkcommon_setup( rk_tflx_hi, rk_nstage, rk_nregister, rkcoef_a, rkcoef_b, flux_name_list, is_type_flux=.true. )
180 
181  !----------------------------------------------------
182 
183  return
185 
186  !-----------------------------------------------------------------------------
188  subroutine atmos_dyn_tinteg_short_rk7s6o( &
189  DENS, MOMZ, MOMX, MOMY, RHOT, PROG, &
190  mflx_hi, tflx_hi, &
191  DENS_t, MOMZ_t, MOMX_t, MOMY_t, RHOT_t, &
192  DPRES0, CVtot, CORIOLI, &
193  num_diff, wdamp_coef, divdmp_coef, DDIV, &
194  FLAG_FCT_MOMENTUM, FLAG_FCT_T, &
195  FLAG_FCT_ALONG_STREAM, &
196  CDZ, FDZ, FDX, FDY, &
197  RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, &
198  PHI, GSQRT, J13G, J23G, J33G, MAPF, &
199  REF_pres, REF_dens, &
200  BND_W, BND_E, BND_S, BND_N, TwoD, &
201  dt )
202  use scale_comm_cartesc, only: &
203  comm_vars8, &
204  comm_wait
205  use scale_atmos_dyn_tstep_short, only: &
206  atmos_dyn_tstep => atmos_dyn_tstep_short
207  use scale_atmos_dyn_common, only: &
209  implicit none
210 
211  real(rp), intent(inout) :: dens(ka,ia,ja)
212  real(rp), intent(inout) :: momz(ka,ia,ja)
213  real(rp), intent(inout) :: momx(ka,ia,ja)
214  real(rp), intent(inout) :: momy(ka,ia,ja)
215  real(rp), intent(inout) :: rhot(ka,ia,ja)
216  real(rp), intent(inout) :: prog(ka,ia,ja,va)
217 
218  real(rp), intent(inout) :: mflx_hi(ka,ia,ja,3)
219  real(rp), intent(out) :: tflx_hi(ka,ia,ja,3)
220 
221  real(rp), intent(in) :: dens_t(ka,ia,ja)
222  real(rp), intent(in) :: momz_t(ka,ia,ja)
223  real(rp), intent(in) :: momx_t(ka,ia,ja)
224  real(rp), intent(in) :: momy_t(ka,ia,ja)
225  real(rp), intent(in) :: rhot_t(ka,ia,ja)
226 
227  real(rp), intent(in) :: dpres0(ka,ia,ja)
228  real(rp), intent(in) :: cvtot(ka,ia,ja)
229  real(rp), intent(in) :: corioli(ia,ja)
230  real(rp), intent(in) :: num_diff(ka,ia,ja,5,3)
231  real(rp), intent(in) :: wdamp_coef(ka)
232  real(rp), intent(in) :: divdmp_coef
233  real(rp), intent(in) :: ddiv(ka,ia,ja)
234 
235  logical, intent(in) :: flag_fct_momentum
236  logical, intent(in) :: flag_fct_t
237  logical, intent(in) :: flag_fct_along_stream
238 
239  real(rp), intent(in) :: cdz (ka)
240  real(rp), intent(in) :: fdz (ka-1)
241  real(rp), intent(in) :: fdx (ia-1)
242  real(rp), intent(in) :: fdy (ja-1)
243  real(rp), intent(in) :: rcdz(ka)
244  real(rp), intent(in) :: rcdx(ia)
245  real(rp), intent(in) :: rcdy(ja)
246  real(rp), intent(in) :: rfdz(ka-1)
247  real(rp), intent(in) :: rfdx(ia-1)
248  real(rp), intent(in) :: rfdy(ja-1)
249 
250  real(rp), intent(in) :: phi (ka,ia,ja)
251  real(rp), intent(in) :: gsqrt(ka,ia,ja,7)
252  real(rp), intent(in) :: j13g (ka,ia,ja,7)
253  real(rp), intent(in) :: j23g (ka,ia,ja,7)
254  real(rp), intent(in) :: j33g
255  real(rp), intent(in) :: mapf (ia,ja,2,4)
256 
257  real(rp), intent(in) :: ref_pres(ka,ia,ja)
258  real(rp), intent(in) :: ref_dens(ka,ia,ja)
259 
260  logical, intent(in) :: bnd_w
261  logical, intent(in) :: bnd_e
262  logical, intent(in) :: bnd_s
263  logical, intent(in) :: bnd_n
264  logical, intent(in) :: twod
265 
266  real(rp), intent(in) :: dt
267 
268  integer :: i, j, k, iv, n, s
269  integer :: stage
270 
271  integer, parameter :: ko_dynvar(5) = (/ 0, 1, 0, 0, 0 /)
272  integer, parameter :: io_dynvar(5) = (/ 0, 0, 1, 0, 0 /)
273  integer, parameter :: jo_dynvar(5) = (/ 0, 0, 0, 1, 0 /)
274  integer :: ko_prgvar(va)
275  integer :: io_prgvar(va)
276  integer :: jo_prgvar(va)
277 
278  !---------------------------------------------------------------------------
279 
280  call prof_rapstart("DYN_RK7s6o_Prep",3)
281 
282  call rkcommon_rkwork_alloc( rk_dynvar )
283  call rkcommon_rkwork_alloc( rk_prgvar )
284 
285 #ifdef QUICKDEBUG
286  rk_mflx_hi%buf( 1:ks-1,:,:,:) = undef
287  rk_mflx_hi%buf(ke+1:ka ,:,:,:) = undef
288 #endif
289 
290  !$omp parallel
291 
292  !$omp workshare
293 !OCL XFILL
294  rk_dynvar%work0(:,:,:,i_rk_dens) = dens(:,:,:)
295 !OCL XFILL
296  rk_dynvar%work0(:,:,:,i_rk_momz) = momz(:,:,:)
297 !OCL XFILL
298  rk_dynvar%work0(:,:,:,i_rk_momx) = momx(:,:,:)
299 !OCL XFILL
300  rk_dynvar%work0(:,:,:,i_rk_momy) = momy(:,:,:)
301 !OCL XFILL
302  rk_dynvar%work0(:,:,:,i_rk_rhot) = rhot(:,:,:)
303 !OCL XFILL
304  rk_dynvar%buf(:,:,:,:) = rk_dynvar%work0(:,:,:,:)
305  !$omp end workshare
306 
307  if (va > 0) then
308  !$omp workshare
309 !OCL XFILL
310  rk_prgvar%work0(:,:,:,:) = prog
311 !OCL XFILL
312  rk_prgvar%buf(:,:,:,:) = rk_prgvar%work0(:,:,:,:)
313  !$omp end workshare
314  end if
315  !$omp end parallel
316 
317  if ( bnd_w ) then
318  do j = js, je
319  do k = ks, ke
320  rk_mflx_hi%buf(k,is-1,j,2) = mflx_hi(k,is-1,j,2)
321  end do
322  end do
323  end if
324  if ( bnd_e ) then
325  do j = js, je
326  do k = ks, ke
327  rk_mflx_hi%buf(k,ie,j,2) = mflx_hi(k,ie,j,2)
328  end do
329  end do
330  end if
331  if ( bnd_s ) then
332  do i = is, ie
333  do k = ks, ke
334  rk_mflx_hi%buf(k,i,js-1,3) = mflx_hi(k,i,js-1,3)
335  end do
336  end do
337  end if
338  if ( bnd_n ) then
339  do i = is, ie
340  do k = ks, ke
341  rk_mflx_hi%buf(k,i,je,3) = mflx_hi(k,i,je,3)
342  end do
343  end do
344  end if
345 
346  io_prgvar(:) = 0; jo_prgvar(:) = 0; ko_prgvar(:) = 0
347 
348  call prof_rapend ("DYN_RK7s6o_Prep",3)
349 
350  !------------------------------------------------------------------------
351  ! Start RK
352  !------------------------------------------------------------------------
353 
354  do stage = 1, rk_nstage
355 
356  if ( stage > 1) then
357  call prof_rapstart("DYN_RK7s6o_BND",3)
358  call atmos_dyn_copy_boundary( rk_dynvar%buf(:,:,:,i_rk_dens), & ! [INOUT]
359  rk_dynvar%buf(:,:,:,i_rk_momz), & ! [INOUT]
360  rk_dynvar%buf(:,:,:,i_rk_momx), & ! [INOUT]
361  rk_dynvar%buf(:,:,:,i_rk_momy), & ! [INOUT]
362  rk_dynvar%buf(:,:,:,i_rk_rhot), & ! [INOUT]
363  rk_prgvar%buf(:,:,:,: ), & ! [INOUT]
364  rk_dynvar%work0(:,:,:,i_rk_dens), & ! [IN]
365  rk_dynvar%work0(:,:,:,i_rk_momz), & ! [IN]
366  rk_dynvar%work0(:,:,:,i_rk_momx), & ! [IN]
367  rk_dynvar%work0(:,:,:,i_rk_momy), & ! [IN]
368  rk_dynvar%work0(:,:,:,i_rk_rhot), & ! [IN]
369  rk_prgvar%work0(:,:,:,:), & ! [IN]
370  bnd_w, bnd_e, bnd_s, bnd_n, twod ) ! [IN]
371  call prof_rapend ("DYN_RK7s6o_BND",3)
372 
373  call rkcommon_comm( rk_dynvar )
374  call rkcommon_comm( rk_prgvar )
375  call rkcommon_comm_wait( rk_dynvar )
376  call rkcommon_comm_wait( rk_prgvar )
377  end if
378  !--
379 
380  call prof_rapstart("DYN_RK7s6o",3)
381 
382  call atmos_dyn_tstep( &
383  rk_dynvar%work(:,:,:,i_rk_dens,stage), & ! [OUT]
384  rk_dynvar%work(:,:,:,i_rk_momz,stage), & ! [OUT]
385  rk_dynvar%work(:,:,:,i_rk_momx,stage), & ! [OUT]
386  rk_dynvar%work(:,:,:,i_rk_momy,stage), & ! [OUT]
387  rk_dynvar%work(:,:,:,i_rk_rhot,stage), & ! [OUT]
388  rk_prgvar%work(:,:,:,: ,stage), & ! [OUT]
389  rk_mflx_hi%buf(:,:,:,:), rk_tflx_hi%buf(:,:,:,:), & ! [INOUT,OUT]
390  rk_dynvar%work0(:,:,:,i_rk_dens), & ! [IN]
391  rk_dynvar%work0(:,:,:,i_rk_momz), & ! [IN]
392  rk_dynvar%work0(:,:,:,i_rk_momx), & ! [IN]
393  rk_dynvar%work0(:,:,:,i_rk_momy), & ! [IN]
394  rk_dynvar%work0(:,:,:,i_rk_rhot), & ! [IN]
395  rk_dynvar%buf(:,:,:,i_rk_dens), & ! [IN]
396  rk_dynvar%buf(:,:,:,i_rk_momz), & ! [IN]
397  rk_dynvar%buf(:,:,:,i_rk_momx), & ! [IN]
398  rk_dynvar%buf(:,:,:,i_rk_momy), & ! [IN]
399  rk_dynvar%buf(:,:,:,i_rk_rhot), & ! [IN]
400  dens_t, momz_t, momx_t, momy_t, rhot_t, & ! [IN]
401  rk_prgvar%work0, rk_prgvar%buf(:,:,:,:), & ! [IN]
402  dpres0, cvtot, corioli, & ! [IN]
403  num_diff, wdamp_coef, divdmp_coef, ddiv, & ! [IN]
404  flag_fct_momentum, flag_fct_t, & ! [IN]
405  flag_fct_along_stream, & ! [IN]
406  cdz, fdz, fdx, fdy, & ! [IN]
407  rcdz, rcdx, rcdy, rfdz, rfdx, rfdy, & ! [IN]
408  phi, gsqrt, j13g, j23g, j33g, mapf, & ! [IN]
409  ref_pres, ref_dens, & ! [IN]
410  bnd_w, bnd_e, bnd_s, bnd_n, twod, & ! [IN]
411  1.0_rp, .false. ) ! [IN]
412 
413  if ( stage < rk_nstage) then
414  call rkcommon_nextstage( rk_dynvar, stage, io_dynvar, jo_dynvar, ko_dynvar, dt )
415  call rkcommon_nextstage( rk_prgvar, stage, io_prgvar, jo_prgvar, ko_prgvar, dt )
416  else
417  call rkcommon_updatevar( rk_dynvar, io_dynvar, jo_dynvar, ko_dynvar, i_rk_dens, i_rk_dens, dt, dens )
418  call rkcommon_updatevar( rk_dynvar, io_dynvar, jo_dynvar, ko_dynvar, i_rk_momz, i_rk_momz, dt, momz )
419  call rkcommon_updatevar( rk_dynvar, io_dynvar, jo_dynvar, ko_dynvar, i_rk_momx, i_rk_momx, dt, momx )
420  call rkcommon_updatevar( rk_dynvar, io_dynvar, jo_dynvar, ko_dynvar, i_rk_momy, i_rk_momy, dt, momy )
421  call rkcommon_updatevar( rk_dynvar, io_dynvar, jo_dynvar, ko_dynvar, i_rk_rhot, i_rk_rhot, dt, rhot )
422  call rkcommon_updatevar( rk_prgvar, io_prgvar, jo_prgvar, ko_prgvar, 1, va, dt, prog )
423  end if
424  call rkcommon_updateflux( rk_mflx_hi, stage, 0, 0, 0, 3, mflx_hi )
425  call rkcommon_updateflux( rk_tflx_hi, stage, 0, 0, 0, 3, tflx_hi )
426 
427  call prof_rapend ("DYN_RK7s6o",3)
428  end do
429 
430  call rkcommon_rkwork_dealloc( rk_dynvar )
431  call rkcommon_rkwork_dealloc( rk_prgvar )
432 
433  return
434  end subroutine atmos_dyn_tinteg_short_rk7s6o
435 
scale_atmos_grid_cartesc_index::ke
integer, public ke
end point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:52
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_index
module Index
Definition: scale_index.F90:11
scale_const::const_undef2
integer, parameter, public const_undef2
undefined value (INT2)
Definition: scale_const.F90:38
scale_atmos_dyn_common
module Atmosphere / Dynamics common
Definition: scale_atmos_dyn_common.F90:12
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_setup
subroutine, public atmos_dyn_tinteg_rkcommon_setup(this, rk_stage_num, rk_register_num, rkcoef_a, rkcoef_b, varname_list, is_type_flux, alloc_rkwork_flag, comm_id_offset)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:81
scale_precision
module PRECISION
Definition: scale_precision.F90:14
scale_atmos_grid_cartesc_index::ka
integer, public ka
Definition: scale_atmos_grid_cartesC_index.F90:47
scale_atmos_dyn_tinteg_rkcommon::rkinfo
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:33
scale_prof::prof_rapstart
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
Definition: scale_prof.F90:159
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_rkwork_dealloc
subroutine, public atmos_dyn_tinteg_rkcommon_rkwork_dealloc(this)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:171
scale_atmos_dyn_tstep_short::atmos_dyn_tstep_short
procedure(short), pointer, public atmos_dyn_tstep_short
Definition: scale_atmos_dyn_tstep_short.F90:135
scale_index::va
integer, public va
Definition: scale_index.F90:35
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_precision::rp
integer, parameter, public rp
Definition: scale_precision.F90:41
scale_atmos_grid_cartesc_index::ie
integer, public ie
end point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:54
scale_io
module STDIO
Definition: scale_io.F90:10
scale_atmos_dyn_tinteg_short_rk7s6o
module Atmosphere / Dyn Tinteg
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:17
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_updatevar
subroutine, public atmos_dyn_tinteg_rkcommon_updatevar(this, io, jo, ko, vs, ve, dt, var)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:270
scale_tracer::k
real(rp), public k
Definition: scale_tracer.F90:44
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_const
module CONSTANT
Definition: scale_const.F90:11
scale_atmos_grid_cartesc_index::ia
integer, public ia
Definition: scale_atmos_grid_cartesC_index.F90:48
scale_comm_cartesc::comm_vars8_init
subroutine, public comm_vars8_init(varname, var, vid)
Register variables.
Definition: scale_comm_cartesC.F90:294
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_rkwork_alloc
subroutine, public atmos_dyn_tinteg_rkcommon_rkwork_alloc(this)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:149
scale_debug::check
subroutine, public check(current_line, v)
Undefined value checker.
Definition: scale_debug.F90:56
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_dyn_tinteg_short_rk7s6o::rkcoef_a_7s6o_butcher1964
real(rp), dimension(7, 7), parameter, public rkcoef_a_7s6o_butcher1964
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:84
scale_atmos_grid_cartesc_index::is
integer, public is
start point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:53
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_atmos_dyn_tstep_short
module Atmosphere / Dynamical scheme
Definition: scale_atmos_dyn_tstep_short.F90:12
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_comm_wait
subroutine, public atmos_dyn_tinteg_rkcommon_comm_wait(this)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:201
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_atmos_grid_cartesc_index::ks
integer, public ks
start point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:51
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_comm
subroutine, public atmos_dyn_tinteg_rkcommon_comm(this)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:185
scale_debug
module DEBUG
Definition: scale_debug.F90:11
scale_comm_cartesc
module COMMUNICATION
Definition: scale_comm_cartesC.F90:11
scale_atmos_dyn_tinteg_short_rk7s6o::rkcoef_b_7s6o_lawson1967
real(rp), dimension(7), parameter, public rkcoef_b_7s6o_lawson1967
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:76
scale_atmos_dyn_tinteg_rkcommon
module scale_atmos_dyn_tinteg_rkcommon
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:12
scale_atmos_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
scale_prof::prof_rapend
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
Definition: scale_prof.F90:217
scale_atmos_dyn_tinteg_short_rk7s6o::rkcoef_b_7s6o_butcher1964
real(rp), dimension(7), parameter, public rkcoef_b_7s6o_butcher1964
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:94
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_updateflux
subroutine, public atmos_dyn_tinteg_rkcommon_updateflux(this, nowstage, io, jo, ko, va_, flux)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:320
scale_atmos_dyn_tinteg_rkcommon::atmos_dyn_tinteg_rkcommon_nextstage
subroutine, public atmos_dyn_tinteg_rkcommon_nextstage(this, nowstage, io, jo, ko, dt)
Definition: scale_atmos_dyn_tinteg_rkcommon.F90:217
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:41
scale_atmos_dyn_tinteg_short_rk7s6o::rkcoef_a_7s6o_lawson1967
real(rp), dimension(7, 7), parameter, public rkcoef_a_7s6o_lawson1967
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:66
scale_atmos_dyn_common::atmos_dyn_copy_boundary
subroutine, public atmos_dyn_copy_boundary(DENS, MOMZ, MOMX, MOMY, RHOT, PROG, DENS0, MOMZ0, MOMX0, MOMY0, RHOT0, PROG0, BND_W, BND_E, BND_S, BND_N, TwoD)
Definition: scale_atmos_dyn_common.F90:188
scale_atmos_dyn_tinteg_short_rk7s6o::atmos_dyn_tinteg_short_rk7s6o
subroutine, public atmos_dyn_tinteg_short_rk7s6o(DENS, MOMZ, MOMX, MOMY, RHOT, PROG, mflx_hi, tflx_hi, DENS_t, MOMZ_t, MOMX_t, MOMY_t, RHOT_t, DPRES0, CVtot, CORIOLI, num_diff, wdamp_coef, divdmp_coef, DDIV, FLAG_FCT_MOMENTUM, FLAG_FCT_T, FLAG_FCT_ALONG_STREAM, CDZ, FDZ, FDX, FDY, RCDZ, RCDX, RCDY, RFDZ, RFDX, RFDY, PHI, GSQRT, J13G, J23G, J33G, MAPF, REF_pres, REF_dens, BND_W, BND_E, BND_S, BND_N, TwoD, dt)
RK7s6o.
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:202
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56
scale_atmos_dyn_tinteg_short_rk7s6o::atmos_dyn_tinteg_short_rk7s6o_setup
subroutine, public atmos_dyn_tinteg_short_rk7s6o_setup(tinteg_type)
Setup.
Definition: scale_atmos_dyn_tinteg_short_rk7s6o.F90:126