SCALE-RM
scale_atmos_phy_bl_mynn_jmapplib.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
11 !-------------------------------------------------------------------------------
12 #include "scalelib.h"
14  !-----------------------------------------------------------------------------
15  !
16  !++ used modules
17  !
18  use scale_precision
19  use scale_io
20  use scale_prof
21 
22  use scale_const, only: &
23  undef => const_undef, &
24  iundef => const_undef2
25  !-----------------------------------------------------------------------------
26  implicit none
27  private
28  !-----------------------------------------------------------------------------
29  !
30  !++ Public procedure
31  !
35 
36  !-----------------------------------------------------------------------------
37  !
38  !++ Public parameters & variables
39  !
40 #ifdef JMAPPLIB
41  integer, public, parameter :: ATMOS_PHY_BL_MYNN_JMAPPLIB_NTRACER = 4
42  character(len=H_SHORT), public :: ATMOS_PHY_BL_MYNN_JMAPPLIB_NAME(4) = &
43  (/ 'TKE_MYNN', 'TSQ_MYNN', 'QSQ_MYNN', 'COV_MYNN' /)
44  character(len=H_LONG), public :: ATMOS_PHY_BL_MYNN_JMAPPLIB_DESC(4) = &
45  (/ 'doubled turbulent kinetic energy (MYNN) ', &
46  'sub-grid variance of liquid water potential temperature (MYNN) ', &
47  'sub-grid variance of total water content (MYNN) ', &
48  'sub-grid covariance of liquid water potential temperature and total water content (MYNN)' /)
49  character(len=H_SHORT), public :: ATMOS_PHY_BL_MYNN_JMAPPLIB_UNITS(4) = &
50  (/ 'm2/s2 ', 'K2 ', 'kg2/kg2', 'K kg ' /)
51 #else
52  integer, public, parameter :: atmos_phy_bl_mynn_jmapplib_ntracer = 0
53  character(len=H_SHORT), public :: atmos_phy_bl_mynn_jmapplib_name(1) = (/ '' /)
54  character(len=H_LONG), public :: atmos_phy_bl_mynn_jmapplib_desc(1) = (/ '' /)
55  character(len=H_SHORT), public :: atmos_phy_bl_mynn_jmapplib_units(1) = (/ '' /)
56 #endif
57 
58  !-----------------------------------------------------------------------------
59  !
60  !++ Private procedure
61  !
62  !-----------------------------------------------------------------------------
63  !
64  !++ Private parameters & variables
65  !
66 #ifdef JMAPPLIB
67  integer, private, parameter :: i_tke = 1
68  integer, private, parameter :: i_tsq = 2
69  integer, private, parameter :: i_qsq = 3
70  integer, private, parameter :: i_cov = 4
71 
72  integer, private :: ke_pbl
73 
74  character(len=3), private :: atmos_phy_bl_mynn_jmapplib_level = "3"
75  logical, private :: atmos_phy_bl_mynn_jmapplib_shcu_buoy_flag = .true.
76  real(rp), private :: atmos_phy_bl_mynn_jmapplib_pbl_max = 1.e+99_rp
77  real(rp), private :: atmos_phy_bl_mynn_jmapplib_shcu_max = 1.e+99_rp
78  real(rp), private :: atmos_phy_bl_mynn_jmapplib_sgm_min_fct = 0.09_rp
79 
80  namelist / param_atmos_phy_bl_mynn_jmapplib / &
81  atmos_phy_bl_mynn_jmapplib_level, &
82  atmos_phy_bl_mynn_jmapplib_shcu_buoy_flag, &
83  atmos_phy_bl_mynn_jmapplib_pbl_max, &
84  atmos_phy_bl_mynn_jmapplib_shcu_max, &
85  atmos_phy_bl_mynn_jmapplib_sgm_min_fct
86 #endif
87 
88  !-----------------------------------------------------------------------------
89 contains
90  !-----------------------------------------------------------------------------
95  KA, KS, KE, &
96  CZ, &
97  dt, PBL_MAX, SHCU_MAX )
98  use scale_prc, only: &
99  prc_abort
100  use scale_const, only: &
101  pre00 => const_pre00
102 #ifdef JMAPPLIB
103  use pbl_const, only: &
104  pbl_const_ini
105  use pbl_parm, only: &
106  pbl_parm_ini
107  use pbl_grid, only: &
108  pbl_grid_ini
109  use pbl_mym_option, only: &
110  pbl_mym_option_ini
111  use pbl_mym_option_symbol, only: &
112  mymodel3, &
113  mymodel25
114  use pbl_mym_parm, only: &
115  pbl_mym_parm_ini
116  use pbl_mym_const, only: &
117  pbl_mym_const_ini
118 #endif
119  implicit none
120 
121  integer, intent(in) :: ka, ks, ke
122 
123  real(rp), intent(in) :: cz(ka)
124 
125  real(dp), intent(in), optional :: dt
126  real(rp), intent(in), optional :: pbl_max
127  real(rp), intent(in), optional :: shcu_max
128 
129  real(rp) :: e_emit
130 
131  integer :: ke_shcu
132  integer :: nz_pbl, nz_shcu
133 
134  integer :: ierr
135  integer :: k
136  !---------------------------------------------------------------------------
137 
138  log_newline
139  log_info("ATMOS_PHY_BL_MYNN_JMAPPLIB_setup",*) 'Setup'
140  log_info("ATMOS_PHY_BL_MYNN_JMAPPLIB_setup",*) 'Mellor-Yamada Nakanishi-Niino scheme implemented in the JMA Physics Process Library'
141 
142 #ifdef JMAPPLIB
143  if ( present(pbl_max) ) atmos_phy_bl_mynn_jmapplib_pbl_max = pbl_max
144  if ( present(shcu_max) ) atmos_phy_bl_mynn_jmapplib_shcu_max = shcu_max
145 
146  !--- read namelist
147  rewind(io_fid_conf)
148  read(io_fid_conf,nml=param_atmos_phy_bl_mynn_jmapplib,iostat=ierr)
149  if( ierr > 0 ) then !--- fatal error
150  log_error("ATMOS_PHY_BL_MYNN_JMAPPLIB_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_PHY_BL_MYNN_JMAPPLIB. Check!'
151  call prc_abort
152  endif
153  log_nml(param_atmos_phy_bl_mynn_jmapplib)
154 
155 
156  ke_pbl = ks+1
157  ke_shcu = ks+1
158  do k = ks+2, ke-1
159  if ( atmos_phy_bl_mynn_jmapplib_pbl_max >= cz(k) ) then
160  ke_pbl = k
161  end if
162  if ( atmos_phy_bl_mynn_jmapplib_shcu_max >= cz(k) ) then
163  ke_shcu = k
164  end if
165  end do
166  nz_pbl = ke_pbl - ks + 1
167  nz_shcu = min(ke_shcu - ks + 1, nz_pbl)
168 
169  e_emit = 1.0_rp
170  call pbl_const_ini(pref_in = pre00, timestep_in = real(dt,rp), e_emit_in = e_emit)
171  call pbl_parm_ini
172  call pbl_grid_ini(nz_pbl, shcu_levels_in = nz_shcu)
173 
174  select case ( atmos_phy_bl_mynn_jmapplib_level )
175  case ( "3" )
176  call pbl_mym_option_ini(levflag_in = mymodel3, l_shcu_buoy_in = atmos_phy_bl_mynn_jmapplib_shcu_buoy_flag)
177 
178  case ( "2.5" )
179  call pbl_mym_option_ini(levflag_in = mymodel25, l_shcu_buoy_in = atmos_phy_bl_mynn_jmapplib_shcu_buoy_flag)
180  case default
181  log_error("ATMOS_PHY_BL_MYNN_JMAPPLIB_setup",*) 'only level 2.5 and 3 are supported at this moment'
182  call prc_abort
183  end select
184 
185  call pbl_mym_parm_ini(my_sgm_min_fct_in = atmos_phy_bl_mynn_jmapplib_sgm_min_fct)
186  call pbl_mym_const_ini
187 
188 #else
189 
190  log_error("ATMOS_PHY_BL_MYNN_JMAPPLIB_setup",*) 'To use "MYNN-JMAPPLIB", compile SCALE with "SCALE_ENABLE_JMAPPLIB=T" option.'
191  call prc_abort
192 
193 #endif
194 
195  return
196  end subroutine atmos_phy_bl_mynn_jmapplib_setup
197 
198  !-----------------------------------------------------------------------------
199  !! Finalize
200 
202  implicit none
203 
204  return
206 
207  !-----------------------------------------------------------------------------
212  KA, KS, KE, IA, IS, IE, JA, JS, JE, &
213  DENS, U, V, POTT, PROG, &
214  PRES, EXNER, &
215  QDRY, QV, QC, QI, &
216  SFC_DENS, SFC_PRES, &
217  SFLX_MU, SFLX_MV, SFLX_SH, SFLX_QV, &
218  us, RLmo, &
219  CZ, FZ, F2H, dt, &
220  RHOU_t, RHOV_t, RHOT_t, RHOQV_t, &
221  RPROG_t, &
222  Nu, Kh, &
223  Zi, SFLX_BUOY )
224  use scale_const, only: &
225  cpdry => const_cpdry
226  use scale_atmos_hydrometeor, only: &
227  cp_vapor
228  use scale_file_history, only: &
229  file_history_in
230 #ifdef JMAPPLIB
231  use pbl_mym_main, only: &
232  pbl_mym_main_level3, &
233  pbl_mym_main_level25
234  use pbl_coupler, only: &
235  pbl_coupler_flx_force_tend_run
236  use pbl_diag, only: &
237  pbl_diag_pbl_height
238 #endif
239  implicit none
240 
241  integer, intent(in) :: ka, ks, ke
242  integer, intent(in) :: ia, is, ie
243  integer, intent(in) :: ja, js, je
244 
245  real(rp), intent(in) :: dens (ka,ia,ja)
246  real(rp), intent(in) :: u (ka,ia,ja)
247  real(rp), intent(in) :: v (ka,ia,ja)
248  real(rp), intent(in) :: pott (ka,ia,ja)
249  real(rp), intent(in) :: prog (ka,ia,ja,atmos_phy_bl_mynn_jmapplib_ntracer)
250  real(rp), intent(in) :: pres (ka,ia,ja)
251  real(rp), intent(in) :: exner (ka,ia,ja)
252  real(rp), intent(in) :: qdry (ka,ia,ja)
253  real(rp), intent(in) :: qv (ka,ia,ja)
254  real(rp), intent(in) :: qc (ka,ia,ja)
255  real(rp), intent(in) :: qi (ka,ia,ja)
256  real(rp), intent(in) :: sfc_dens( ia,ja)
257  real(rp), intent(in) :: sfc_pres( ia,ja)
258  real(rp), intent(in) :: sflx_mu ( ia,ja)
259  real(rp), intent(in) :: sflx_mv ( ia,ja)
260  real(rp), intent(in) :: sflx_sh ( ia,ja)
261  real(rp), intent(in) :: sflx_qv ( ia,ja)
262  real(rp), intent(in) :: us ( ia,ja)
263  real(rp), intent(in) :: rlmo ( ia,ja)
264 
265  real(rp), intent(in) :: cz( ka,ia,ja)
266  real(rp), intent(in) :: fz(0:ka,ia,ja)
267  real(rp), intent(in) :: f2h(ka,2,ia,ja)
268  real(dp), intent(in) :: dt
269 
270  real(rp), intent(out) :: rhou_t (ka,ia,ja)
271  real(rp), intent(out) :: rhov_t (ka,ia,ja)
272  real(rp), intent(out) :: rhot_t (ka,ia,ja)
273  real(rp), intent(out) :: rhoqv_t(ka,ia,ja)
274  real(rp), intent(out) :: rprog_t(ka,ia,ja,atmos_phy_bl_mynn_jmapplib_ntracer)
275  real(rp), intent(out) :: nu (ka,ia,ja)
276  real(rp), intent(out) :: kh (ka,ia,ja)
277  real(rp), intent(out) :: zi (ia,ja)
278  real(rp), intent(out) :: sflx_buoy (ia,ja)
279 
280 #ifdef JMAPPLIB
281  real(rp) :: l(ka,ia,ja)
282 
283  real(rp) :: qke(ks:ke_pbl)
284  real(rp) :: qv_lc(ks:ke_pbl)
285  real(rp) :: qc_lc(ks:ke_pbl)
286  real(rp) :: qi_lc(ks:ke_pbl)
287  real(rp) :: dens_lc(ks:ke_pbl)
288  real(rp) :: dfm(ks:ke_pbl)
289  real(rp) :: dfh(ks:ke_pbl)
290  real(rp) :: taux_ex(ks:ke_pbl)
291  real(rp) :: tauy_ex(ks:ke_pbl)
292  real(rp) :: ftl_ex(ks:ke_pbl)
293  real(rp) :: fqw_ex(ks:ke_pbl)
294  real(rp) :: tend_qke(ks:ke_pbl)
295  real(rp) :: tend_tsq(ks:ke_pbl)
296  real(rp) :: tend_qsq(ks:ke_pbl)
297  real(rp) :: tend_cov(ks:ke_pbl)
298  real(rp) :: tend_u(ks:ke_pbl)
299  real(rp) :: tend_v(ks:ke_pbl)
300  real(rp) :: tend_pt(ks:ke_pbl)
301  real(rp) :: tend_qv(ks:ke_pbl)
302  real(rp) :: z_f(ks:ke_pbl)
303  real(rp) :: dz_f(ks:ke_pbl)
304  real(rp) :: rdz_f(ks:ke_pbl)
305  real(rp) :: rdz_h(ks:ke_pbl)
306  real(rp) :: h2f_m(ks:ke_pbl)
307  real(rp) :: h2f_p(ks:ke_pbl)
308  real(rp) :: fb_surf
309  real(rp) :: rho_ov_rhoa
310  real(rp) :: sflx_u
311  real(rp) :: sflx_v
312  real(rp) :: sflx_pt
313  real(rp) :: sflx_q
314  real(rp) :: cptot
315 
316  real(rp) :: diss(ka,ia,ja)
317  real(rp) :: dummy(ka,ia,ja)
318 
319  integer :: k, i, j
320  !---------------------------------------------------------------------------
321 
322  log_progress(*) "atmosphere / physics / pbl / MYNN-JMAPPLIB"
323 
324  h2f_m(:) = 0.5_rp
325  h2f_p(:) = 0.5_rp
326 
327  !$omp parallel do &
328  !$omp private(qke,qv_lc,qc_lc,qi_lc,dens_lc,taux_ex,tauy_ex,ftl_ex,fqw_ex,&
329  !$omp tend_qke,tend_tsq,tend_qsq,tend_cov,tend_u,tend_v,tend_pt,tend_qv, &
330  !$omp z_f,dz_f,rdz_f,rdz_h, &
331  !$omp rho_ov_rhoa,SFLX_U,SFLX_V,SFLX_PT,SFLX_Q,CPtot)
332  do j = js, je
333  do i = is, ie
334 
335  do k = ks, ke_pbl
336  qke(k) = prog(k,i,j,i_tke) * 2.0_rp
337  rho_ov_rhoa = 1.0_rp / ( qdry(k,i,j) + qv(k,i,j) )
338  qv_lc(k) = qv(k,i,j) * rho_ov_rhoa
339  qc_lc(k) = qc(k,i,j) * rho_ov_rhoa
340  qi_lc(k) = qi(k,i,j) * rho_ov_rhoa
341  z_f(k) = cz(k,i,j) - fz(ks-1,i,j)
342  dz_f(k) = fz(k,i,j) - fz(k-1,i,j)
343  rdz_f(k) = 1.0_rp / dz_f(k)
344  rdz_h(k) = 1.0_rp / ( cz(k+1,i,j) - cz(k,i,j) )
345  end do
346 
347  cptot = cpdry + sflx_qv(i,j) * ( cp_vapor - cpdry )
348 
349  sflx_u = sflx_mu(i,j) / sfc_dens(i,j)
350  sflx_v = sflx_mv(i,j) / sfc_dens(i,j)
351  sflx_pt = sflx_sh(i,j) / ( cptot * exner(ks,i,j) * sfc_dens(i,j) )
352  sflx_q = sflx_qv(i,j) / sfc_dens(i,j)
353 
354  select case ( atmos_phy_bl_mynn_jmapplib_level )
355  case ( "3" )
356  call pbl_mym_main_level3( &
357  sflx_u, sflx_v, sflx_pt, sflx_q, & ! (in)
358  us(i,j), rlmo(i,j), sfc_pres(i,j), & ! (in)
359  u(ks:ke_pbl,i,j), v(ks:ke_pbl,i,j), pott(ks:ke_pbl,i,j), & ! (in)
360  qv_lc, qc_lc, qi_lc, pres(ks:ke_pbl,i,j), exner(ks:ke_pbl,i,j), & ! (in)
361  qke(:), prog(ks:ke_pbl,i,j,i_tsq), prog(ks:ke_pbl,i,j,i_qsq), prog(ks:ke_pbl,i,j,i_cov), & ! (in)
362  z_f, dz_f, rdz_f, rdz_h, f2h(ks:ke_pbl,2,i,j), f2h(ks:ke_pbl,1,i,j), h2f_m, h2f_p, & ! (in)
363  sflx_buoy(i,j), & ! (out)
364  dfm(:), dfh(:), tend_qke(:), tend_tsq(:), tend_qsq(:), tend_cov(:), & ! (out)
365  taux_ex, tauy_ex, ftl_ex, fqw_ex, & ! (out)
366  l_e = l(ks:ke_pbl,i,j), tke_dis = diss(ks:ke_pbl,i,j), tsq_dis=dummy(ks:ke_pbl,i,j) ) ! (out)
367  case ( "2.5" )
368  call pbl_mym_main_level25( &
369  sflx_u, sflx_v, sflx_pt, sflx_q, & ! (in)
370  us(i,j), rlmo(i,j), sfc_pres(i,j), & ! (in)
371  u(ks:ke_pbl,i,j), v(ks:ke_pbl,i,j), pott(ks:ke_pbl,i,j), & ! (in)
372  qv_lc, qc_lc, qi_lc, pres(ks:ke_pbl,i,j), exner(ks:ke_pbl,i,j), & ! (in)
373  qke(:), prog(ks:ke_pbl,i,j,i_tsq), prog(ks:ke_pbl,i,j,i_qsq), prog(ks:ke_pbl,i,j,i_cov), & ! (in)
374  z_f, dz_f, rdz_f, rdz_h, f2h(ks:ke_pbl,2,i,j), f2h(ks:ke_pbl,1,i,j), h2f_m, h2f_p, & ! (in)
375  sflx_buoy(i,j), & ! (out)
376  dfm(:), dfh(:), tend_qke(:), tend_tsq(:), tend_qsq(:), tend_cov(:), & ! (out)
377  taux_ex, tauy_ex, ftl_ex, fqw_ex, & ! (out)
378  l_e = l(ks:ke_pbl,i,j), tke_dis = diss(ks:ke_pbl,i,j), tsq_dis=dummy(ks:ke_pbl,i,j) ) ! (out)
379  do k = ks, ke_pbl
380  tend_tsq(k) = ( tend_tsq(k) - prog(k,i,j,i_tsq) ) / dt
381  tend_qsq(k) = ( tend_qsq(k) - prog(k,i,j,i_qsq) ) / dt
382  tend_cov(k) = ( tend_cov(k) - prog(k,i,j,i_cov) ) / dt
383  end do
384  end select
385 
386  do k = ks, ke_pbl
387  dens_lc(k) = dens(k,i,j) * ( qdry(k,i,j) + qv(k,i,j) )
388  end do
389 
390  call pbl_coupler_flx_force_tend_run( &
391  sfc_dens(i,j), sflx_u, sflx_v, sflx_pt, sflx_q, & ! (in)
392  dfm(:), dfh(:), dens_lc(:), & ! (in)
393  taux_ex, tauy_ex, ftl_ex, fqw_ex, & ! (in)
394  f2h(ks:ke_pbl,2,i,j), f2h(ks:ke_pbl,1,i,j), rdz_f, rdz_h, & ! (in)
395  tend_u, tend_v, tend_pt, tend_qv ) ! (out)
396 
397  do k = ks, ke_pbl
398  rhou_t(k,i,j) = tend_u(k) * dens(k,i,j)
399  rhov_t(k,i,j) = tend_v(k) * dens(k,i,j)
400  rhot_t(k,i,j) = tend_pt(k) * dens(k,i,j)
401  rhoqv_t(k,i,j) = tend_qv(k) * dens(k,i,j) * ( qdry(k,i,j) + qv(k,i,j) )
402  rprog_t(k,i,j,i_tke) = tend_qke(k) * dens(k,i,j) * 0.5_rp
403  rprog_t(k,i,j,i_tsq) = tend_tsq(k) * dens(k,i,j)
404  rprog_t(k,i,j,i_qsq) = tend_qsq(k) * dens(k,i,j)
405  rprog_t(k,i,j,i_cov) = tend_cov(k) * dens(k,i,j)
406  end do
407  rhou_t(ks,i,j) = rhou_t(ks,i,j) - sflx_mu(i,j) * rdz_f(ks)
408  rhov_t(ks,i,j) = rhov_t(ks,i,j) - sflx_mv(i,j) * rdz_f(ks)
409  rhot_t(ks,i,j) = rhot_t(ks,i,j) - sflx_pt * sfc_dens(i,j) * rdz_f(ks)
410  rhoqv_t(ks,i,j) = rhoqv_t(ks,i,j) - sflx_qv(i,j) * rdz_f(ks)
411  do k = ke_pbl+1, ke
412  rhou_t(k,i,j) = 0.0_rp
413  rhov_t(k,i,j) = 0.0_rp
414  rhot_t(k,i,j) = 0.0_rp
415  rhoqv_t(k,i,j) = 0.0_rp
416  rprog_t(k,i,j,i_tke) = 0.0_rp
417  rprog_t(k,i,j,i_tsq) = 0.0_rp
418  rprog_t(k,i,j,i_qsq) = 0.0_rp
419  rprog_t(k,i,j,i_cov) = 0.0_rp
420  end do
421 
422  nu(ks-1,i,j) = 0.0_rp
423  kh(ks-1,i,j) = 0.0_rp
424  do k = ks, ke_pbl-1
425  nu(k,i,j) = dfm(k+1) * f2h(k,1,i,j) + dfm(k) * f2h(k,2,i,j)
426  kh(k,i,j) = dfh(k+1) * f2h(k,1,i,j) + dfh(k) * f2h(k,2,i,j)
427  end do
428  do k = ke_pbl, ke
429  nu(k,i,j) = 0.0_rp
430  kh(k,i,j) = 0.0_rp
431  end do
432 
433  call pbl_diag_pbl_height( &
434  sflx_pt, us(i,j), rlmo(i,j), & ! (in)
435  u(ks:ke_pbl,i,j), v(ks:ke_pbl,i,j), pott(ks:ke_pbl,i,j), qv_lc, z_f, & ! (in)
436  zi(i,j) ) ! (out)
437 
438  end do
439  end do
440 
441 
442  l(ke_pbl+1:ke,:,:) = undef
443  call file_history_in(l(:,:,:), 'L_mix_MYNN', 'minxing length', 'm', fill_halo=.true.)
444 
445  diss(ks:ke_pbl,:,:) = - diss(ks:ke_pbl,:,:)
446  diss(ke_pbl+1:ke,:,:) = undef
447  call file_history_in(diss(:,:,:), 'TKE_diss_MYNN', 'TKE dissipation', 'm2/s3', fill_halo=.true.)
448 #endif
449 
450  return
452 
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_const::const_undef2
integer, parameter, public const_undef2
undefined value (INT2)
Definition: scale_const.F90:40
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_hydrometeor
module atmosphere / hydrometeor
Definition: scale_atmos_hydrometeor.F90:12
scale_file_history
module file_history
Definition: scale_file_history.F90:15
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_tracer::k
real(rp), public k
Definition: scale_tracer.F90:45
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_atmos_phy_bl_mynn_jmapplib::atmos_phy_bl_mynn_jmapplib_setup
subroutine, public atmos_phy_bl_mynn_jmapplib_setup(KA, KS, KE, CZ, dt, PBL_MAX, SHCU_MAX)
ATMOS_PHY_BL_MYNN_JMAPPLIB_setup Setup.
Definition: scale_atmos_phy_bl_mynn_jmapplib.F90:98
scale_const::const_cpdry
real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K]
Definition: scale_const.F90:60
scale_prof
module profiler
Definition: scale_prof.F90:11
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_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_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
scale_atmos_phy_bl_mynn_jmapplib
module atmosphere / physics / pbl / mynn-jmapplib
Definition: scale_atmos_phy_bl_mynn_jmapplib.F90:13
scale_atmos_phy_bl_mynn_jmapplib::atmos_phy_bl_mynn_jmapplib_tendency
subroutine, public atmos_phy_bl_mynn_jmapplib_tendency(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, U, V, POTT, PROG, PRES, EXNER, QDRY, QV, QC, QI, SFC_DENS, SFC_PRES, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_QV, us, RLmo, CZ, FZ, F2H, dt, RHOU_t, RHOV_t, RHOT_t, RHOQV_t, RPROG_t, Nu, Kh, Zi, SFLX_BUOY)
ATMOS_PHY_BL_MYNN_JMAPPLIB_tendency calculate tendency by the virtical eddy viscosity.
Definition: scale_atmos_phy_bl_mynn_jmapplib.F90:224
scale_atmos_phy_bl_mynn_jmapplib::atmos_phy_bl_mynn_jmapplib_finalize
subroutine, public atmos_phy_bl_mynn_jmapplib_finalize
Definition: scale_atmos_phy_bl_mynn_jmapplib.F90:202
scale_const::const_undef
real(rp), public const_undef
Definition: scale_const.F90:43
scale_const::const_pre00
real(rp), public const_pre00
pressure reference [Pa]
Definition: scale_const.F90:97
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
scale_atmos_hydrometeor::cp_vapor
real(rp), public cp_vapor
CP for vapor [J/kg/K].
Definition: scale_atmos_hydrometeor.F90:150