SCALE-RM
scale_atmos_phy_tb_dns.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
10 !-------------------------------------------------------------------------------
11 #include "scalelib.h"
13  !-----------------------------------------------------------------------------
14  !
15  !++ used modules
16  !
17  use scale_precision
18  use scale_io
19  use scale_prof
21  use scale_tracer
22 
23 #if defined DEBUG || defined QUICKDEBUG
24  use scale_debug, only: &
25  check
26  use scale_const, only: &
27  undef => const_undef, &
28  iundef => const_undef2
29 #endif
30  !-----------------------------------------------------------------------------
31  implicit none
32  private
33  !-----------------------------------------------------------------------------
34  !
35  !++ Public procedure
36  !
37  public :: atmos_phy_tb_dns_config
38  public :: atmos_phy_tb_dns_setup
39  public :: atmos_phy_tb_dns
40 
41  !-----------------------------------------------------------------------------
42  !
43  !++ Public parameters & variables
44  !
45  !-----------------------------------------------------------------------------
46  !
47  !++ Private procedure
48  !
49  !-----------------------------------------------------------------------------
50  !
51  !++ Private parameters & variables
52  !
53  real(RP), private, parameter :: OneOverThree = 1.0_rp / 3.0_rp
54 
55  real(RP), private :: ATMOS_PHY_TB_DNS_NU = 1.512e-5_rp ! [m2/s] kinematic viscosity coefficient for air at 20degC
56 ! real(RP), private :: mu = 1.8E-5_RP ! [m2/s] molecular diffusive coefficient for air at 20degC
57  real(RP), private :: ATMOS_PHY_TB_DNS_MU = 1.512e-5_rp ! same as NU (needed based on hyposes. see Mellado 2010)
58 
59  logical, private :: twoD
60  integer, private :: ISn, IEp
61 
62  !-----------------------------------------------------------------------------
63 contains
64  !-----------------------------------------------------------------------------
66  subroutine atmos_phy_tb_dns_config( &
67  TYPE_TB, &
68  I_TKE_out )
69  use scale_prc, only: &
70  prc_abort
71  implicit none
72 
73  character(len=*), intent(in) :: type_tb
74  integer, intent(out) :: i_tke_out
75  !---------------------------------------------------------------------------
76 
77  log_newline
78  log_info("ATMOS_PHY_TB_dns_config",*) 'Setup'
79  log_info("ATMOS_PHY_TB_dns_config",*) 'Tracers for Deardorff (1980) 1.5th TKE Model'
80 
81  if ( type_tb /= 'DNS' ) then
82  log_error("ATMOS_PHY_TB_dns_config",*) 'ATMOS_PHY_TB_TYPE is not DNS. Check!'
83  call prc_abort
84  endif
85 
86  i_tke_out = -1
87 
88  return
89  end subroutine atmos_phy_tb_dns_config
90  !-----------------------------------------------------------------------------
91  subroutine atmos_phy_tb_dns_setup( &
92  CDZ, CDX, CDY, CZ )
93  use scale_prc, only: &
94  prc_abort
95  implicit none
96 
97  real(rp), intent(in) :: cdz(ka)
98  real(rp), intent(in) :: cdx(ia)
99  real(rp), intent(in) :: cdy(ja)
100  real(rp), intent(in) :: cz (ka,ia,ja)
101 
102  namelist / param_atmos_phy_tb_dns / &
103  atmos_phy_tb_dns_nu, &
104  atmos_phy_tb_dns_mu
105 
106  integer :: ierr
107  !---------------------------------------------------------------------------
108 
109  log_newline
110  log_info("ATMOS_PHY_TB_dns_setup",*) 'Setup'
111  log_info("ATMOS_PHY_TB_dns_setup",*) 'Eddy Viscocity Model for DNS'
112 
113  !--- read namelist
114  rewind(io_fid_conf)
115  read(io_fid_conf,nml=param_atmos_phy_tb_dns,iostat=ierr)
116  if( ierr < 0 ) then !--- missing
117  log_info("ATMOS_PHY_TB_dns_setup",*) 'Not found namelist. Default used.'
118  elseif( ierr > 0 ) then !--- fatal error
119  log_error("ATMOS_PHY_TB_dns_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_PHY_TB_DNS. Check!'
120  call prc_abort
121  endif
122  log_nml(param_atmos_phy_tb_dns)
123 
124  twod = ( ia == 1 )
125  if ( twod ) then
126  isn = 1
127  iep = 1
128  else
129  isn = is - 1
130  iep = ie + 1
131  end if
132 
133  return
134  end subroutine atmos_phy_tb_dns_setup
135 
136  !-----------------------------------------------------------------------------
137  subroutine atmos_phy_tb_dns( &
138  qflx_sgs_MOMZ, qflx_sgs_MOMX, qflx_sgs_MOMY, &
139  qflx_sgs_rhot, qflx_sgs_rhoq, &
140  RHOQ_t, nu, Ri, Pr, &
141  MOMZ, MOMX, MOMY, POTT, DENS, QTRC, N2, &
142  SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_Q, &
143  FZ, FDZ, RCDZ, RFDZ, CDX, FDX, CDY, FDY, &
144  GSQRT, J13G, J23G, J33G, MAPF, dt )
146  use scale_tracer
147  use scale_const, only: &
148  grav => const_grav
149  use scale_atmos_phy_tb_common, only: &
150  calc_strain_tensor => atmos_phy_tb_calc_strain_tensor, &
151  calc_flux_phi => atmos_phy_tb_calc_flux_phi
152  implicit none
153 
154  ! SGS flux
155  real(rp), intent(out) :: qflx_sgs_momz(ka,ia,ja,3)
156  real(rp), intent(out) :: qflx_sgs_momx(ka,ia,ja,3)
157  real(rp), intent(out) :: qflx_sgs_momy(ka,ia,ja,3)
158  real(rp), intent(out) :: qflx_sgs_rhot(ka,ia,ja,3)
159  real(rp), intent(out) :: qflx_sgs_rhoq(ka,ia,ja,3,qa)
160 
161  real(rp), intent(inout) :: rhoq_t(ka,ia,ja,qa) ! tendency of rho * QTRC
162 
163  real(rp), intent(out) :: nu(ka,ia,ja) ! eddy viscosity (center)
164  real(rp), intent(out) :: ri(ka,ia,ja) ! Richardson number
165  real(rp), intent(out) :: pr(ka,ia,ja) ! Prantle number
166 
167  real(rp), intent(in) :: momz(ka,ia,ja)
168  real(rp), intent(in) :: momx(ka,ia,ja)
169  real(rp), intent(in) :: momy(ka,ia,ja)
170  real(rp), intent(in) :: pott(ka,ia,ja)
171  real(rp), intent(in) :: dens(ka,ia,ja)
172  real(rp), intent(in) :: qtrc(ka,ia,ja,qa)
173  real(rp), intent(in) :: n2(ka,ia,ja)
174 
175  real(rp), intent(in) :: sflx_mw(ia,ja)
176  real(rp), intent(in) :: sflx_mu(ia,ja)
177  real(rp), intent(in) :: sflx_mv(ia,ja)
178  real(rp), intent(in) :: sflx_sh(ia,ja)
179  real(rp), intent(in) :: sflx_q (ia,ja,qa)
180 
181  real(rp), intent(in) :: fz (0:ka,ia,ja)
182  real(rp), intent(in) :: fdz (ka-1)
183  real(rp), intent(in) :: rcdz (ka)
184  real(rp), intent(in) :: rfdz (ka-1)
185  real(rp), intent(in) :: cdx (ia)
186  real(rp), intent(in) :: fdx (ia-1)
187  real(rp), intent(in) :: cdy (ja)
188  real(rp), intent(in) :: fdy (ja-1)
189 
190  real(rp), intent(in) :: gsqrt (ka,ia,ja,7)
191  real(rp), intent(in) :: j13g (ka,ia,ja,7)
192  real(rp), intent(in) :: j23g (ka,ia,ja,7)
193  real(rp), intent(in) :: j33g
194  real(rp), intent(in) :: mapf (ia,ja,2,4)
195  real(dp), intent(in) :: dt
196 
197  ! deformation rate tensor
198  real(rp) :: s33_c(ka,ia,ja) ! (cell center)
199  real(rp) :: s11_c(ka,ia,ja)
200  real(rp) :: s22_c(ka,ia,ja)
201  real(rp) :: s31_c(ka,ia,ja)
202  real(rp) :: s12_c(ka,ia,ja)
203  real(rp) :: s23_c(ka,ia,ja)
204  real(rp) :: s12_z(ka,ia,ja) ! (z edge or x-y plane)
205  real(rp) :: s23_x(ka,ia,ja) ! (x edge or y-z plane)
206  real(rp) :: s31_y(ka,ia,ja) ! (y edge or z-x plane)
207  real(rp) :: s2 (ka,ia,ja) ! |S|^2
208 
209  real(rp) :: kh(ka,ia,ja) ! eddy diffusion
210 
211  ! implicit scheme (dummy)
212  real(rp) :: a (ka,ia,ja)
213  real(rp) :: b (ka,ia,ja)
214  real(rp) :: c (ka,ia,ja)
215 
216  integer :: iis, iie
217  integer :: jjs, jje
218 
219  integer :: k, i, j, iq
220  !---------------------------------------------------------------------------
221 
222 
223  !$acc data copyout(qflx_sgs_MOMZ, qflx_sgs_MOMX, qflx_sgs_MOMY, qflx_sgs_rhot, qflx_sgs_rhoq, &
224  !$acc RHOQ_t, &
225  !$acc nu, Ri, Pr) &
226  !$acc copyin(MOMZ, MOMX, MOMY, POTT, DENS, QTRC, &
227  !$acc FZ, FDZ, RCDZ, RFDZ, CDX, FDX, CDY, FDY, GSQRT, J13G, J23G, MAPF) &
228  !$acc create(S33_C, S11_C, S22_C, S31_C, S12_C, S23_C, S12_Z, S23_X, S31_Y, S2, &
229  !$acc Kh, a, b, c)
230 
231  log_progress(*) 'atmosphere / physics / turbulence / DNS'
232 
233 #ifdef DEBUG
234  !$acc kernels
235  qflx_sgs_momz(:,:,:,:) = undef
236  qflx_sgs_momx(:,:,:,:) = undef
237  qflx_sgs_momy(:,:,:,:) = undef
238  qflx_sgs_rhot(:,:,:,:) = undef
239  qflx_sgs_rhoq(:,:,:,:,:) = undef
240 
241  nu(:,:,:) = undef
242  ri(:,:,:) = undef
243  pr(:,:,:) = undef
244  ri(:,:,:) = undef
245  kh(:,:,:) = undef
246  !$acc end kernels
247 #endif
248 
249  !$omp parallel workshare
250  !$acc kernels
251  nu(:,:,:) = 0.0_rp
252  ri(:,:,:) = 0.0_rp
253  pr(:,:,:) = 1.0_rp
254  kh(:,:,:) = atmos_phy_tb_dns_mu
255  !$acc end kernels
256  !$omp end parallel workshare
257 
258  !##### Start Upadate #####
259 
260  call calc_strain_tensor( &
261  s33_c, s11_c, s22_c, & ! (out)
262  s31_c, s12_c, s23_c, & ! (out)
263  s12_z, s23_x, s31_y, & ! (out)
264  s2 , & ! (out)
265  dens, momz, momx, momy, & ! (in)
266  gsqrt, j13g, j23g, j33g, mapf ) ! (in)
267 ! GSQRT, J13G, J23G, J33G, MAPF, & ! (in)
268 ! twoD ) ! (in)
269 
270  do jjs = js, je, jblock
271  jje = jjs+jblock-1
272  do iis = is, ie, iblock
273  iie = iis+iblock-1
274 
275  !##### momentum equation (z) #####
276 
277  !$omp parallel private(i,j,k)
278  ! (cell center)
279 
280  if ( twod ) then
281  i = iis
282  !$omp do
283  !$acc kernels
284  do j = jjs, jje
285  do k = ks+1, ke-1
286  qflx_sgs_momz(k,i,j,zdir) = dens(k,i,j) * ( &
287  - 2.0_rp * atmos_phy_tb_dns_nu &
288  * ( s33_c(k,i,j) - ( s22_c(k,i,j) + s33_c(k,i,j) ) * oneoverthree ) )
289  enddo
290  enddo
291  !$acc end kernels
292  else
293  !$omp do collapse(2)
294  !$acc kernels
295  do j = jjs, jje
296  do i = iis, iie
297  do k = ks+1, ke-1
298  qflx_sgs_momz(k,i,j,zdir) = dens(k,i,j) * ( &
299  - 2.0_rp * atmos_phy_tb_dns_nu &
300  * ( s33_c(k,i,j) - ( s11_c(k,i,j) + s22_c(k,i,j) + s33_c(k,i,j) ) * oneoverthree ) )
301  enddo
302  enddo
303  enddo
304  !$acc end kernels
305  end if
306 
307  !$omp do
308  !$acc kernels
309  do j = jjs, jje
310  do i = iis, iie
311  qflx_sgs_momz(ks,i,j,zdir) = 0.0_rp ! bottom boundary
312  qflx_sgs_momz(ke,i,j,zdir) = 0.0_rp ! top boundary
313  enddo
314  enddo
315  !$acc end kernels
316  !$omp end do nowait
317 
318  ! (y edge)
319  if ( .not. twod ) then
320  !$omp do collapse(2)
321  !$acc kernels
322  do j = jjs, jje
323  do i = iis-1, iie
324  do k = ks, ke-1
325  qflx_sgs_momz(k,i,j,xdir) = - 0.5_rp & ! 2/4
326  * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i+1,j)+dens(k+1,i+1,j) ) &
327  * atmos_phy_tb_dns_nu &
328  * s31_y(k,i,j)
329  enddo
330  enddo
331  enddo
332  !$acc end kernels
333  !$omp end do nowait
334  end if
335 
336  ! (x edge)
337  !$omp do collapse(2)
338  !$acc kernels
339  do j = jjs-1, jje
340  do i = iis, iie
341  do k = ks, ke-1
342  qflx_sgs_momz(k,i,j,ydir) = - 0.5_rp & ! 2/4
343  * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i,j+1)+dens(k+1,i,j+1) ) &
344  * atmos_phy_tb_dns_nu &
345  * s23_x(k,i,j)
346  enddo
347  enddo
348  enddo
349  !$acc end kernels
350  !$omp end do nowait
351 
352  !$omp end parallel
353 
354  !##### momentum equation (x) #####
355 
356  if ( .not. twod ) then
357 
358  !$omp parallel private(i,j,k)
359 
360  ! (y edge)
361 
362  !$omp do collapse(2)
363  !$acc kernels
364  do j = jjs, jje
365  do i = iis, iie
366  do k = ks, ke-1
367  qflx_sgs_momx(k,i,j,zdir) = - 0.5_rp & ! 2/4
368  * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i+1,j)+dens(k+1,i+1,j) ) &
369  * atmos_phy_tb_dns_nu &
370  * s31_y(k,i,j)
371  enddo
372  enddo
373  enddo
374  !$acc end kernels
375  !$omp end do nowait
376 
377  !$omp do
378  !$acc kernels
379  do j = jjs, jje
380  do i = iis, iie
381  qflx_sgs_momx(ks-1,i,j,zdir) = 0.0_rp ! bottom boundary
382  qflx_sgs_momx(ke ,i,j,zdir) = 0.0_rp ! top boundary
383  enddo
384  enddo
385  !$acc end kernels
386  !$omp end do nowait
387 
388  ! (cell center)
389  !$omp do collapse(2)
390  !$acc kernels
391  do j = jjs, jje
392  do i = iis, iie+1
393  do k = ks, ke
394  qflx_sgs_momx(k,i,j,xdir) = dens(k,i,j) * ( &
395  - 2.0_rp * atmos_phy_tb_dns_nu &
396  * ( s11_c(k,i,j) - ( s11_c(k,i,j) + s22_c(k,i,j) + s33_c(k,i,j) ) * oneoverthree ) )
397  enddo
398  enddo
399  enddo
400  !$acc end kernels
401  !$omp end do nowait
402 
403  ! (z edge)
404  !$omp do collapse(2)
405  !$acc kernels
406  do j = jjs-1, jje
407  do i = iis, iie
408  do k = ks, ke
409  qflx_sgs_momx(k,i,j,ydir) = - 0.5_rp & ! 2/4
410  * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) &
411  * atmos_phy_tb_dns_nu &
412  * s12_z(k,i,j)
413  enddo
414  enddo
415  enddo
416  !$acc end kernels
417  !$omp end do nowait
418 
419  !$omp end parallel
420 
421  end if ! twoD
422 
423  !##### momentum equation (y) #####
424 
425  !$omp parallel private(i,j,k)
426 
427  ! (x edge)
428  !$omp do collapse(2)
429  !$acc kernels
430  do j = jjs, jje
431  do i = iis, iie
432  do k = ks, ke-1
433  qflx_sgs_momy(k,i,j,zdir) = - 0.5_rp & ! 2/4
434  * ( dens(k,i,j)+dens(k+1,i,j)+dens(k,i,j+1)+dens(k+1,i,j+1) ) &
435  * atmos_phy_tb_dns_nu &
436  * s23_x(k,i,j)
437  enddo
438  enddo
439  enddo
440  !$acc end kernels
441  !$omp end do nowait
442 
443  !$omp do
444  !$acc kernels
445  do j = jjs, jje
446  do i = iis, iie
447  qflx_sgs_momy(ks-1,i,j,zdir) = 0.0_rp ! bottom boundary
448  qflx_sgs_momy(ke ,i,j,zdir) = 0.0_rp ! top boundary
449  enddo
450  enddo
451  !$acc end kernels
452  !$omp end do nowait
453 
454  ! (z edge)
455  if ( .not. twod ) then
456  !$omp do collapse(2)
457  !$acc kernels
458  do j = jjs, jje
459  do i = iis-1, iie
460  do k = ks, ke
461  qflx_sgs_momy(k,i,j,xdir) = - 0.5_rp & ! 2/4
462  * ( dens(k,i,j)+dens(k,i+1,j)+dens(k,i,j+1)+dens(k,i+1,j+1) ) &
463  * atmos_phy_tb_dns_nu &
464  * s12_z(k,i,j)
465  enddo
466  enddo
467  enddo
468  !$acc end kernels
469  !$omp end do nowait
470  end if
471 
472  ! (z-x plane)
473  if ( twod ) then
474  i = iis
475  !$omp do
476  !$acc kernels
477  do j = jjs, jje+1
478  do k = ks, ke
479  qflx_sgs_momy(k,i,j,ydir) = dens(k,i,j) * ( &
480  - 2.0_rp * atmos_phy_tb_dns_nu &
481  * ( s22_c(k,i,j) - ( s22_c(k,i,j) + s33_c(k,i,j) ) * oneoverthree ) )
482  enddo
483  enddo
484  !$acc end kernels
485  !$omp end do nowait
486  else
487  !$omp do collapse(2)
488  !$acc kernels
489  do j = jjs, jje+1
490  do i = iis, iie
491  do k = ks, ke
492  qflx_sgs_momy(k,i,j,ydir) = dens(k,i,j) * ( &
493  - 2.0_rp * atmos_phy_tb_dns_nu &
494  * ( s22_c(k,i,j) - ( s11_c(k,i,j) + s22_c(k,i,j) + s33_c(k,i,j) ) * oneoverthree ) )
495  enddo
496  enddo
497  enddo
498  !$acc end kernels
499  !$omp end do nowait
500  end if
501 
502  !$omp end parallel
503 
504  !##### Thermodynamic Equation #####
505 
506  call calc_flux_phi( &
507  qflx_sgs_rhot, & ! [inout]
508  dens, pott, kh, 1.0_rp, & ! [in]
509  gsqrt, j13g, j23g, j33g, mapf, & ! [in]
510  .false., .false., & ! horizontal, implicit
511  a, b, c, dt, & ! [in, dummy]
512  iis, iie, jjs, jje )
513 ! IIS, IIE, JJS, JJE, &
514 ! twoD )
515  enddo
516  enddo
517 
518  !##### Tracers #####
519  do iq = 1, qa
520 
521  if ( .not. tracer_advc(iq) ) cycle
522 
523  do jjs = js, je, jblock
524  jje = jjs+jblock-1
525  do iis = is, ie, iblock
526  iie = iis+iblock-1
527 
528  call calc_flux_phi( &
529  qflx_sgs_rhoq(:,:,:,:,iq), & ! [inout]
530  dens, qtrc(:,:,:,iq), kh, 1.0_rp, & ! [in]
531  gsqrt, j13g, j23g, j33g, mapf, & ! [in]
532  .false., .false., & ! horizontal, implicit
533  a, b, c, dt, & ! [in, dummy]
534  iis, iie, jjs, jje )
535 ! IIS, IIE, JJS, JJE, &
536 ! twoD )
537 
538  enddo
539  enddo
540 
541  enddo ! scalar quantities loop
542 
543  !$acc end data
544 
545  return
546  end subroutine atmos_phy_tb_dns
547 
548 end module scale_atmos_phy_tb_dns
scale_const::const_grav
real(rp), public const_grav
standard acceleration of gravity [m/s2]
Definition: scale_const.F90:49
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:350
scale_tracer::qa
integer, public qa
Definition: scale_tracer.F90:35
scale_atmos_phy_tb_dns
module ATMOSPHERE / Physics Turbulence
Definition: scale_atmos_phy_tb_dns.F90:12
scale_const::const_undef2
integer, parameter, public const_undef2
undefined value (INT2)
Definition: scale_const.F90:40
scale_atmos_phy_tb_common::atmos_phy_tb_calc_strain_tensor
subroutine, public atmos_phy_tb_calc_strain_tensor(S33_C, S11_C, S22_C, S31_C, S12_C, S23_C, S12_Z, S23_X, S31_Y, S2, DENS, MOMZ, MOMX, MOMY, GSQRT, J13G, J23G, J33G, MAPF)
Definition: scale_atmos_phy_tb_common.F90:66
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_grid_cartesc_index::jblock
integer, public jblock
block size for cache blocking: y
Definition: scale_atmos_grid_cartesC_index.F90:41
scale_tracer::tracer_advc
logical, dimension(qa_max), public tracer_advc
Definition: scale_tracer.F90:46
scale_atmos_grid_cartesc_index::iblock
integer, public iblock
block size for cache blocking: x
Definition: scale_atmos_grid_cartesC_index.F90:40
scale_atmos_phy_tb_dns::atmos_phy_tb_dns_setup
subroutine, public atmos_phy_tb_dns_setup(CDZ, CDX, CDY, CZ)
Definition: scale_atmos_phy_tb_dns.F90:93
scale_atmos_phy_tb_dns::atmos_phy_tb_dns_config
subroutine, public atmos_phy_tb_dns_config(TYPE_TB, I_TKE_out)
Config.
Definition: scale_atmos_phy_tb_dns.F90:69
scale_atmos_phy_tb_dns::atmos_phy_tb_dns
subroutine, public atmos_phy_tb_dns(qflx_sgs_MOMZ, qflx_sgs_MOMX, qflx_sgs_MOMY, qflx_sgs_rhot, qflx_sgs_rhoq, RHOQ_t, nu, Ri, Pr, MOMZ, MOMX, MOMY, POTT, DENS, QTRC, N2, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_Q, FZ, FDZ, RCDZ, RFDZ, CDX, FDX, CDY, FDY, GSQRT, J13G, J23G, J33G, MAPF, dt)
Definition: scale_atmos_phy_tb_dns.F90:145
scale_prc
module PROCESS
Definition: scale_prc.F90:11
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_tracer::k
real(rp), public k
Definition: scale_tracer.F90:45
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_debug::check
subroutine, public check(current_line, v)
Undefined value checker.
Definition: scale_debug.F90:59
scale_atmos_grid_cartesc_index::zdir
integer, parameter, public zdir
Definition: scale_atmos_grid_cartesC_index.F90:32
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_phy_tb_common::atmos_phy_tb_calc_flux_phi
subroutine, public atmos_phy_tb_calc_flux_phi(qflx_phi, DENS, PHI, Kh, FACT, GSQRT, J13G, J23G, J33G, MAPF, horizontal, implicit, a, b, c, dt, IIS, IIE, JJS, JJE)
Definition: scale_atmos_phy_tb_common.F90:1337
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_precision::dp
integer, parameter, public dp
Definition: scale_precision.F90:32
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
scale_atmos_grid_cartesc_index::xdir
integer, parameter, public xdir
Definition: scale_atmos_grid_cartesC_index.F90:33
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_debug
module DEBUG
Definition: scale_debug.F90:11
scale_atmos_phy_tb_common
module ATMOSPHERE / Physics Turbulence
Definition: scale_atmos_phy_tb_common.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_atmos_grid_cartesc_index::ydir
integer, parameter, public ydir
Definition: scale_atmos_grid_cartesC_index.F90:34
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56