SCALE-RM
mod_land_driver.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
9 !-------------------------------------------------------------------------------
10 #include "scalelib.h"
12  !-----------------------------------------------------------------------------
13  !
14  !++ used modules
15  !
16  use scale_precision
17  use scale_io
18  use scale_prof
20  use scale_tracer
22 
23  use scale_const, only: &
24  i_lw => const_i_lw, &
25  i_sw => const_i_sw
26  !-----------------------------------------------------------------------------
27  implicit none
28  private
29  !-----------------------------------------------------------------------------
30  !
31  !++ Public procedure
32  !
33  public :: land_driver_setup
35  public :: land_driver_update
36  public :: land_surface_get
37  public :: land_surface_set
38 
39  !-----------------------------------------------------------------------------
40  !
41  !++ Public parameters & variables
42  !
43  !-----------------------------------------------------------------------------
44  !
45  !++ Private procedure
46  !
47  !-----------------------------------------------------------------------------
48  !
49  !++ Private parameters & variables
50  !
51  !-----------------------------------------------------------------------------
52 contains
53  !-----------------------------------------------------------------------------
55  subroutine land_driver_setup
56  use scale_prc, only: &
57  prc_abort
58  use mod_land_admin, only: &
59  land_do, &
60  land_dyn_type, &
61  land_sfc_type, &
62  snow_type
63  use scale_land_dyn_bucket, only: &
65  use scale_land_phy_snow_ky90, only: &
67  use scale_cpl_phy_sfc_skin, only: &
69  use scale_cpl_phy_sfc_fixed_temp, only: &
71  implicit none
72  !---------------------------------------------------------------------------
73 
74  log_newline
75  log_info("LAND_driver_setup",*) 'Setup'
76 
77  if ( land_do ) then
78 
79  select case ( land_dyn_type )
80  case ( 'BUCKET' )
82  case ( 'INIT' )
83  ! do nothing
84  case default
85  log_error("LAND_driver_setup",*) 'LAND_DYN_TYPE is invalid: ', trim(land_dyn_type)
86  call prc_abort
87  end select
88 
89  select case ( land_sfc_type )
90  case ( 'SKIN' )
92  case ( 'FIXED-TEMP' )
94  case default
95  log_error("LAND_driver_setup",*) 'LAND_SFC_TYPE is invalid: ', trim(land_sfc_type)
96  call prc_abort
97  end select
98 
99  select case ( snow_type )
100  case ( 'NONE', 'OFF' )
101  case ( 'KY90' )
102  log_warn("LAND_driver_setup",*) 'SNOW model is enabled'
103  log_warn("LAND_driver_setup",*) 'SNOW model is on experimental stage.'
104  log_warn("LAND_driver_setup",*) 'Use this with your own risk.'
106  case default
107  log_error("LAND_driver_setup",*) 'SNOW_TYPE is invalid: ', trim(snow_type)
108  call prc_abort
109  end select
110 
111  end if
112 
113  return
114  end subroutine land_driver_setup
115 
116  !-----------------------------------------------------------------------------
118  subroutine land_driver_calc_tendency( force )
119  use scale_const, only: &
120  tem00 => const_tem00
121  use scale_time, only: &
122  dt => time_dtsec_land
123  use scale_file_history, only: &
124  file_history_in
125  use scale_atmos_grid_cartesc_real, only: &
126  real_z1 => atmos_grid_cartesc_real_z1
127  use scale_topography, only: &
128  tansl_x => topography_tansl_x, &
129  tansl_y => topography_tansl_y
130  use scale_atmos_hydrometeor, only: &
131  hydrometeor_lhv => atmos_hydrometeor_lhv, &
132  hydrometeor_lhs => atmos_hydrometeor_lhs, &
134  cv_water, &
135  cv_ice, &
136  lhf, &
137  i_qv
138  use scale_land_grid_cartesc, only: &
139  lcz => land_grid_cartesc_cz, &
140  cdz => land_grid_cartesc_cdz
141  use scale_land_phy_snow_ky90, only: &
143  use scale_land_phy_snow_diagnos, only: &
145  use scale_cpl_phy_sfc_skin, only: &
147  use scale_cpl_phy_sfc_fixed_temp, only: &
149  use scale_bulkflux, only: &
150  bulkflux_diagnose_scales
151  use mod_atmos_admin, only: &
153  use mod_atmos_phy_ch_driver, only: &
155  use mod_land_admin, only: &
156  land_sfc_type, &
157  snow_type
158  use mod_land_vars, only: &
159  i_waterlimit, &
160  i_watercritical, &
161  i_stomataresist, &
162  i_thermalcond, &
163  i_heatcapacity, &
164  i_waterdiff, &
165  i_alblw, &
166  i_albsw, &
167  i_z0m, &
168  i_z0h, &
169  i_z0e, &
170  snow_flag, &
171  land_property, &
172  land_temp, &
173  land_water, &
174  land_ice, &
175  land_sfc_temp, &
176  land_sfc_albedo, &
177  snow_sfc_temp, &
178  snow_swe, &
179  snow_depth, &
180  snow_dzero, &
181  snow_nosnowsec, &
182  land_temp_t, &
183  land_water_t, &
184  land_ice_t, &
185  land_sflx_gh, &
186  land_sflx_water, &
187  land_sflx_engi, &
188  land_sflx_mw, &
189  land_sflx_mu, &
190  land_sflx_mv, &
191  land_sflx_sh, &
192  land_sflx_lh, &
193  land_sflx_qtrc, &
194  land_u10, &
195  land_v10, &
196  land_t2, &
197  land_q2, &
198  land_ustar, &
199  land_tstar, &
200  land_qstar, &
201  land_wstar, &
202  land_rlmo, &
203  soil_ustar, &
204  soil_tstar, &
205  soil_qstar, &
206  soil_wstar, &
207  soil_rlmo, &
208  snow_ustar, &
209  snow_tstar, &
210  snow_qstar, &
211  snow_wstar, &
212  snow_rlmo, &
213  atmos_temp, &
214  atmos_pres, &
215  atmos_u, &
216  atmos_v, &
217  atmos_dens, &
218  atmos_qv, &
219  atmos_pbl, &
220  atmos_sfc_dens, &
221  atmos_sfc_pres, &
225  use scale_landuse, only: &
226  exists_land => landuse_exists_land
227  implicit none
228 
229  logical, intent(in) :: force
230 
231  ! parameters
232  real(rp), parameter :: beta_max = 1.0_rp
233 
234  ! works
235  real(rp) :: snow_qvef (lia,lja)
236  real(rp) :: land_wstr (lia,lja)
237  real(rp) :: land_qvef (lia,lja)
238  real(rp) :: land_tc_dz(lia,lja)
239  real(rp) :: sflx_qv (lia,lja)
240  real(rp) :: sflx_engi (lia,lja)
241  real(rp) :: lh (lia,lja) ! latent heat of vaporization [J/kg]
242  real(rp) :: atmos_w (lia,lja)
243  real(rp) :: total
244 
245  ! for snow
246  real(rp) :: snow_albedo (lia,lja,2)
247  real(rp) :: snow_atmos_sflx_sh (lia,lja)
248  real(rp) :: snow_atmos_sflx_lh (lia,lja)
249  real(rp) :: snow_atmos_sflx_gh (lia,lja)
250  real(rp) :: snow_atmos_sflx_qv (lia,lja)
251  real(rp) :: snow_land_sflx_gh (lia,lja)
252  real(rp) :: snow_land_sflx_water(lia,lja)
253  real(rp) :: snow_land_sflx_engi (lia,lja)
254  real(rp) :: snow_frac (lia,lja)
255 
256  real(rp) :: snow_atmos_sflx_mw (lia,lja)
257  real(rp) :: snow_atmos_sflx_mu (lia,lja)
258  real(rp) :: snow_atmos_sflx_mv (lia,lja)
259  real(rp) :: snow_u10 (lia,lja)
260  real(rp) :: snow_v10 (lia,lja)
261  real(rp) :: snow_t2 (lia,lja)
262  real(rp) :: snow_q2 (lia,lja)
263 
264  ! monitor
265  !real(RP) :: MONIT_WCONT0 (LIA,LJA)
266  !real(RP) :: MONIT_WCONT1 (LIA,LJA)
267  !real(RP) :: MONIT_ENG0 (LIA,LJA)
268  !real(RP) :: MONIT_ENG1 (LIA,LJA)
269  !
270  !real(RP) :: MONIT_SNOW_heat (LIA,LJA)
271  !real(RP) :: MONIT_SNOW_water (LIA,LJA)
272  !real(RP) :: MONIT_LAND_heat (LIA,LJA)
273  !real(RP) :: MONIT_LAND_water (LIA,LJA)
274 
275  integer :: k, i, j, iq, idir
276  !---------------------------------------------------------------------------
277 
278  call prof_rapstart('LND_CalcTend', 1)
279 
280  !########## Get Surface Boundary from coupler ##########
281  call land_surface_get
282 
283  !########## reset tendencies ##########
284 !OCL XFILL
285  !$omp parallel do
286  do j = ljs, lje
287  do i = lis, lie
288  do k = lks, lke
289  land_temp_t(k,i,j) = 0.0_rp
290  land_water_t(k,i,j) = 0.0_rp
291  land_ice_t(k,i,j) = 0.0_rp
292  enddo
293  enddo
294  enddo
295 !OCL XFILL
296  do iq = 1, qa
297  !$omp parallel do
298  do j = ljs, lje
299  do i = lis, lie
300  land_sflx_qtrc(i,j,iq) = 0.0_rp
301  enddo
302  enddo
303  enddo
304 
305  !$omp parallel do
306  do j = ljs, lje
307  do i = lis, lie
308  atmos_w(i,j) = atmos_u(i,j) * tansl_x(i,j) + atmos_v(i,j) * tansl_y(i,j)
309  end do
310  end do
311 
312  if ( snow_flag ) then
313  !------------------------------------------------------------------------
315 
316 !OCL XFILL
317  !$omp parallel do
318  do j = ljs, lje
319  do i = lis, lie
320  ! This is for debug---adachi start
321  !if(( int(SNOW_frac(i,j)) == 1 ).and.( abs(SNOW_SFC_TEMP(i,j)-LAND_SFC_TEMP(i,j))/=0 ))then
322  ! LOG_ERROR("LAND_driver_calc_tendency",*) "Error please check SNOW_SFC_TEMP routine"
323  ! call PRC_abort
324  !endif
325  ! This is for debug---adachi end
326  snow_sfc_temp(i,j) = land_sfc_temp(i,j)
327  end do
328  end do
329 
330  select case ( snow_type )
331  case ( 'KY90' )
332  ! accumulation and melt of snow if there is snow
333 
334  !MONIT_WCONT0 = 0.0_RP
335  !call monitor_snow_water( SNOW_Depth (:,:), & ! [IN]
336  ! SNOW_Dzero (:,:), & ! [IN]
337  ! MONIT_WCONT0 (:,:) ) ! [OUT]
338 
339  call land_phy_snow_ky90( lia, lis, lie, lja, ljs, lje, &
340  atmos_sflx_water(:,:), atmos_sflx_engi(:,:), & ! [IN]
341  atmos_pres(:,:), atmos_temp(:,:), atmos_qv(:,:), & ! [IN]
342  atmos_w(:,:), atmos_u(:,:), atmos_v(:,:), & ! [IN]
343  atmos_sfc_dens(:,:), & ! [IN]
344  atmos_sflx_rad_dn(:,:,:,:), & ! [IN]
345  exists_land(:,:), dt, & ! [IN]
346  snow_sfc_temp(:,:), snow_swe(:,:), & ! [INOUT]
347  snow_depth(:,:), snow_dzero(:,:), & ! [INOUT]
348  snow_nosnowsec(:,:), & ! [INOUT]
349  snow_albedo(:,:,:), & ! [OUT]
350  snow_atmos_sflx_sh(:,:), & ! [OUT]
351  snow_atmos_sflx_lh(:,:), snow_atmos_sflx_qv(:,:), & ! [OUT]
352  sflx_engi(:,:), & ! [OUT]
353  snow_atmos_sflx_gh(:,:), snow_land_sflx_gh(:,:), & ! [OUT]
354  snow_land_sflx_water(:,:), & ! [OUT]
355  snow_frac(:,:) ) ! [OUT]
356 
357 !OCL XFILL
358  !$omp parallel do
359  do j = ljs, lje
360  do i = lis, lie
361  if ( exists_land(i,j) ) then
362  snow_land_sflx_engi(i,j) = atmos_sflx_engi(i,j) & ! internal energy of precipitation
363  - sflx_engi(i,j) ! internal energy of evapolation
364  end if
365  enddo
366  enddo
367  end select
368 
369 !OCL XFILL
370  !call monitor_snow_water( SNOW_Depth (:,:), & ! [IN]
371  ! SNOW_Dzero (:,:), & ! [IN]
372  ! MONIT_WCONT1 (:,:) ) ! [OUT]
373 
374  !call monitor_land_regidual( ATMOS_SFLX_water (:,:), & ! [IN] ! downward at surface
375  ! ATMOS_SFLX_ENGI (:,:), & ! [IN] ! downward at surface
376  ! SNOW_ATMOS_SFLX_evap(:,:), & ! [IN] ! upward at surface
377  ! SNOW_LAND_SFLX_water(:,:), & ! [IN] ! downward at bottom
378  ! MONIT_WCONT0 (:,:), & ! [IN]
379  ! MONIT_WCONT1 (:,:), & ! [IN]
380  ! MONIT_SNOW_water (:,:) ) ! [OUT]
381 
382 !OCL XFILL
383  !$omp parallel do
384  do j = ljs, lje
385  do i = lis, lie
386  snow_qvef(i,j) = 1.0_rp ! tentative
387  end do
388  end do
389 
390  ! momentum fluxes and diagnostic variables above snowpack
391  call land_phy_snow_diags( lia, lis, lie, lja, ljs, lje, &
392  snow_frac(:,:), & ! [IN]
393  atmos_temp(:,:), atmos_pres(:,:), & ! [IN]
394  atmos_w(:,:), atmos_u(:,:), atmos_v(:,:), & ! [IN]
395  atmos_dens(:,:), atmos_qv(:,:), & ! [IN]
396  real_z1(:,:), atmos_pbl(:,:), & ! [IN]
397  atmos_sfc_dens(:,:), atmos_sfc_pres(:,:), snow_sfc_temp(:,:), & ! [IN]
398  snow_qvef(:,:), & ! [IN]
399  land_property(:,:,i_z0m), & ! [IN]
400  land_property(:,:,i_z0h), & ! [IN]
401  land_property(:,:,i_z0e), & ! [IN]
402  snow_atmos_sflx_mw(:,:), & ! [OUT]
403  snow_atmos_sflx_mu(:,:), & ! [OUT]
404  snow_atmos_sflx_mv(:,:), & ! [OUT]
405  snow_ustar(:,:), snow_tstar(:,:), snow_qstar(:,:), & ! [OUT]
406  snow_wstar(:,:), & ! [OUT]
407  snow_rlmo(:,:), & ! [OUT]
408  snow_u10(:,:), snow_v10(:,:), & ! [OUT]
409  snow_t2(:,:), snow_q2(:,:) ) ! [OUT]
410 
411  call file_history_in( snow_frac(:,:), 'LAND_SNOW_frac', 'Snow fraction on land subgrid', '1' )
412  call file_history_in( snow_albedo(:,:,i_sw), 'LAND_SNOW_ALB_SW', 'Snow surface albedo (short wave)', '1' )
413  call file_history_in( snow_albedo(:,:,i_lw), 'LAND_SNOW_ALB_LW', 'Snow surface albedo (long wave)', '1' )
414  call file_history_in( snow_atmos_sflx_sh(:,:), 'LAND_SNOW_SFLX_SH', 'Snow surface sensible heat flux', 'J/m2/s' )
415  call file_history_in( snow_atmos_sflx_lh(:,:), 'LAND_SNOW_SFLX_LH', 'Snow surface latent heat flux', 'J/m2/s' )
416  call file_history_in( snow_atmos_sflx_gh(:,:), 'LAND_SNOW_SFLX_GH', 'Snowpack received heat flux', 'J/m2/s' )
417  call file_history_in( snow_atmos_sflx_mw(:,:), 'LAND_SNOW_SFLX_MW', 'Snow surface w-momentum flux', 'J/m2/s' )
418  call file_history_in( snow_atmos_sflx_mu(:,:), 'LAND_SNOW_SFLX_MU', 'Snow surface u-momentum flux', 'J/m2/s' )
419  call file_history_in( snow_atmos_sflx_mv(:,:), 'LAND_SNOW_SFLX_MV', 'Snow surface v-momentum flux', 'J/m2/s' )
420  call file_history_in( snow_u10(:,:), 'LAND_SNOW_U10', 'Wind velocity u at 10 m on snow surface', 'm/s' )
421  call file_history_in( snow_v10(:,:), 'LAND_SNOW_V10', 'Wind velocity v at 10 m on snow surface', 'm/s' )
422  call file_history_in( snow_t2(:,:), 'LAND_SNOW_T2', 'Air temperature at 2m on snow surface', 'K' )
423  call file_history_in( snow_q2(:,:), 'LAND_SNOW_Q2', 'Specific humidity at 2m on snow surface', 'kg/kg' )
424 
425  call file_history_in( snow_land_sflx_gh(:,:), 'LAND_SNOW_LAND_SFLX_GH', 'land surface ground heat flux under snow', 'J/m2/s' )
426  call file_history_in( snow_land_sflx_water(:,:), 'LAND_SNOW_LAND_SFLX_water', 'land surface water mass flux under snow', 'kg/m2/s' )
427  call file_history_in( snow_land_sflx_engi(:,:), 'LAND_SNOW_LAND_SFLX_ENGI', 'land surface internal energy flux under snow', 'kg/m2/s' )
428  endif
429 
430 
431 !OCL XFILL
432  !$omp parallel do &
433  !$omp private(total)
434  do j = ljs, lje
435  do i = lis, lie
436  if ( exists_land(i,j) ) then
437  total = land_water(lks,i,j) + land_ice(lks,i,j)
438  land_wstr(i,j) = total * cdz(lks) &
439  + dt * ( atmos_sflx_water(i,j) &
440  + max( 0.0_rp, 2.0_rp * land_property(i,j,i_waterdiff) &
441  * ( land_water(lks+1,i,j) - land_water(lks,i,j) ) / ( lcz(lks) + lcz(lks+1) ) ) )
442  if ( atmos_hydrometeor_dry ) then
443  land_qvef(i,j) = 0.0_rp
444  else
445  land_qvef(i,j) = min( total / land_property(i,j,i_watercritical), beta_max )
446  end if
447 
448  ! eq.(12) in Merlin et al.(2011) but simplified P=0.5 used
449  !sw = 0.5_RP + sign(0.5_RP,LAND_WATER(LKS,i,j)-LAND_PROPERTY(i,j,I_WaterCritical)) ! if W > Wc, sw = 1
450  !LAND_QVEF(i,j) = ( sw ) * 1.0_RP &
451  ! + ( 1.0_RP-sw ) * sqrt( 0.5_RP - 0.5_RP * cos( PI * LAND_WATER(LKS,i,j) / LAND_PROPERTY(i,j,I_WaterCritical) ) )
452 
453  land_tc_dz(i,j) = land_property(i,j,i_thermalcond) / lcz(lks)
454  end if
455  end do
456  end do
457 
458 
459  !------------------------------------------------------------------------
461 
462 
463  !$omp parallel do
464  do j = ljs, lje
465  do i = lis, lie
466  if ( exists_land(i,j) ) then
467  if ( land_ice(lks,i,j) > 0.0_rp ) then
468  call hydrometeor_lhs( land_sfc_temp(i,j), lh(i,j) )
469  else
470  call hydrometeor_lhv( land_sfc_temp(i,j), lh(i,j) )
471  end if
472  end if
473  end do
474  end do
475 
476 
477  select case ( land_sfc_type )
478  case ( 'SKIN' )
479 !OCL XFILL
480  !$omp parallel do
481  do j = ljs, lje
482  do i = lis, lie
483  if ( exists_land(i,j) ) then
490  end if
491  end do
492  end do
493 
494  call cpl_phy_sfc_skin( lia, lis, lie, lja, ljs, lje, &
495  atmos_temp(:,:), atmos_pres(:,:), & ! [IN]
496  atmos_w(:,:), atmos_u(:,:), atmos_v(:,:), & ! [IN]
497  atmos_dens(:,:), atmos_qv(:,:), & ! [IN]
498  lh(:,:), real_z1(:,:), atmos_pbl(:,:), & ! [IN]
499  atmos_sfc_dens(:,:), atmos_sfc_pres(:,:), & ! [IN]
500  atmos_sflx_rad_dn(:,:,:,:), & ! [IN]
501  land_temp(lks,:,:), land_wstr(:,:), land_qvef(:,:), & ! [IN]
502  land_sfc_albedo(:,:,:,:), & ! [IN]
503  land_property(:,:,i_stomataresist), & ! [IN]
504  land_tc_dz(:,:), & ! [IN]
505  land_property(:,:,i_z0m), & ! [IN]
506  land_property(:,:,i_z0h), & ! [IN]
507  land_property(:,:,i_z0e), & ! [IN]
508  exists_land(:,:), dt, & ! [IN]
509  'LAND', & ! [IN]
510  land_sfc_temp(:,:), & ! [INOUT]
511  land_sflx_mw(:,:), land_sflx_mu(:,:), land_sflx_mv(:,:), & ! [OUT]
512  land_sflx_sh(:,:), land_sflx_lh(:,:), sflx_qv(:,:), & ! [OUT]
513  land_sflx_gh(:,:), & ! [OUT]
514  soil_ustar(:,:), soil_tstar(:,:), soil_qstar(:,:), & ! [OUT]
515  soil_wstar(:,:), & ! [OUT]
516  soil_rlmo(:,:), & ! [OUT]
517  land_u10(:,:), land_v10(:,:), land_t2(:,:), land_q2(:,:) ) ! [OUT]
518 
519  case ( 'FIXED-TEMP' )
520 !OCL XFILL
521  !$omp parallel do
522  do j = ljs, lje
523  do i = lis, lie
524  if ( exists_land(i,j) ) then
525  land_sfc_temp(i,j) = land_temp(lks,i,j)
526  end if
527  end do
528  end do
529 !OCL XFILL
530  !$omp parallel do
531  do j = ljs, lje
532  do i = lis, lie
533  if ( exists_land(i,j) ) then
540  end if
541  end do
542  end do
543 
544  call cpl_phy_sfc_fixed_temp( lia, lis, lie, lja, ljs, lje, &
545  atmos_temp(:,:), atmos_pres(:,:), & ! [IN]
546  atmos_w(:,:), atmos_u(:,:), atmos_v(:,:), & ! [IN]
547  atmos_dens(:,:), atmos_qv(:,:), lh(:,:), & ! [IN]
548  real_z1(:,:), atmos_pbl(:,:), & ! [IN]
549  atmos_sfc_dens(:,:), atmos_sfc_pres(:,:), & ! [IN]
550  atmos_sflx_rad_dn(:,:,:,:), & ! [IN]
551  land_sfc_temp(:,:), land_wstr(:,:), land_qvef(:,:), & ! [IN]
552  land_sfc_albedo(:,:,:,:), & ! [IN]
553  land_property(:,:,i_stomataresist), & ! [IN]
554  land_property(:,:,i_z0m), & ! [IN]
555  land_property(:,:,i_z0h), & ! [IN]
556  land_property(:,:,i_z0e), & ! [IN]
557  exists_land(:,:), dt, & ! [IN]
558  land_sflx_mw(:,:), land_sflx_mu(:,:), land_sflx_mv(:,:), & ! [OUT]
559  land_sflx_sh(:,:), land_sflx_lh(:,:), sflx_qv(:,:), & ! [OUT]
560  land_sflx_gh(:,:), & ! [OUT]
561  soil_ustar(:,:), soil_tstar(:,:), soil_qstar(:,:), & ! [OUT]
562  soil_wstar(:,:), & ! [OUT]
563  soil_rlmo(:,:), & ! [OUT]
564  land_u10(:,:), land_v10(:,:), & ! [OUT]
565  land_t2(:,:), land_q2(:,:) ) ! [OUT]
566  end select
567 
568  !$omp parallel do
569  do j = ljs, lje
570  do i = lis, lie
571  if ( exists_land(i,j) ) then
572  if ( land_ice(lks,i,j) > 0.0_rp ) then
573  sflx_engi(i,j) = ( cv_ice * land_sfc_temp(i,j) - lhf ) * sflx_qv(i,j)
574  else
575  sflx_engi(i,j) = cv_water * land_sfc_temp(i,j) * sflx_qv(i,j)
576  end if
577  end if
578  end do
579  end do
580 
581  ! LAND_SFLX_* are positive for downward
582 !OCL XFILL
583  !$omp parallel do
584  do j = ljs, lje
585  do i = lis, lie
586  if ( exists_land(i,j) ) then
587  land_sflx_water(i,j) = atmos_sflx_water(i,j) - sflx_qv(i,j)
588  land_sflx_engi(i,j) = atmos_sflx_engi(i,j) & ! internal energy of precipitation
589  - sflx_engi(i,j) ! internal energy of evapolation or sublimation
590  end if
591  end do
592  end do
593 
594  if ( snow_flag ) then
595 
596  call file_history_in( land_sflx_mw(:,:), 'SOIL_SFLX_MW', 'soil surface w-momentum flux (upward)', 'kg/m2/s' )
597  call file_history_in( land_sflx_mu(:,:), 'SOIL_SFLX_MU', 'soil surface u-momentum flux (upward)', 'kg/m2/s' )
598  call file_history_in( land_sflx_mv(:,:), 'SOIL_SFLX_MV', 'soil surface v-momentum flux (upward)', 'kg/m2/s' )
599  call file_history_in( land_sflx_sh(:,:), 'SOIL_SFLX_SH', 'soil surface sensible heat flux (upward)', 'J/m2/s' )
600  call file_history_in( land_sflx_lh(:,:), 'SOIL_SFLX_LH', 'soil surface latent heat flux (upward)', 'J/m2/s' )
601  call file_history_in( land_u10(:,:), 'LAND_SOIL_U10', 'Wind velocity u at 10 m on soil surface', 'm/s' )
602  call file_history_in( land_v10(:,:), 'LAND_SOIL_V10', 'Wind velocity v at 10 m on soil surface', 'm/s' )
603  call file_history_in( land_t2(:,:), 'LAND_SOIL_T2', 'Air temperature at 2m on soil surface', 'K' )
604  call file_history_in( land_q2(:,:), 'LAND_SOIL_Q2', 'Specific humidity at 2m on soil surface', 'kg/kg' )
605 
606  ! marge land surface and snow surface !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
607 !OCL XFILL
608  !$omp parallel do
609  do j = ljs, lje
610  do i = lis, lie
611  if ( exists_land(i,j) ) then
612  land_sfc_temp(i,j) = ( snow_frac(i,j) ) * snow_sfc_temp(i,j) &
613  + ( 1.0_rp-snow_frac(i,j) ) * land_sfc_temp(i,j)
614 
615  do idir = i_r_direct, i_r_diffuse
616  land_sfc_albedo(i,j,idir,i_r_ir ) = ( snow_frac(i,j) ) * snow_albedo(i,j,i_lw) &
617  + ( 1.0_rp-snow_frac(i,j) ) * land_sfc_albedo(i,j,idir,i_r_ir)
618  land_sfc_albedo(i,j,idir,i_r_nir) = ( snow_frac(i,j) ) * snow_albedo(i,j,i_sw) &
619  + ( 1.0_rp-snow_frac(i,j) ) * land_sfc_albedo(i,j,idir,i_r_nir)
620  land_sfc_albedo(i,j,idir,i_r_vis) = ( snow_frac(i,j) ) * snow_albedo(i,j,i_sw) &
621  + ( 1.0_rp-snow_frac(i,j) ) * land_sfc_albedo(i,j,idir,i_r_vis)
622  enddo
623 
624  ! flux to the soil
625  land_sflx_gh(i,j) = ( snow_frac(i,j) ) * snow_land_sflx_gh(i,j) &
626  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_gh(i,j)
627  land_sflx_water(i,j) = ( snow_frac(i,j) ) * snow_land_sflx_water(i,j) &
628  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_water(i,j)
629  land_sflx_engi(i,j) = ( snow_frac(i,j) ) * snow_land_sflx_engi(i,j) &
630  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_engi(i,j)
631  ! flux to the atmosphere
632  land_sflx_mw(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_mw(i,j) &
633  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_mw(i,j)
634  land_sflx_mu(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_mu(i,j) &
635  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_mu(i,j)
636  land_sflx_mv(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_mv(i,j) &
637  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_mv(i,j)
638  land_sflx_sh(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_sh(i,j) &
639  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_sh(i,j)
640  land_sflx_lh(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_lh(i,j) &
641  + ( 1.0_rp-snow_frac(i,j) ) * land_sflx_lh(i,j)
642  sflx_qv(i,j) = ( snow_frac(i,j) ) * snow_atmos_sflx_qv(i,j) &
643  + ( 1.0_rp-snow_frac(i,j) ) * sflx_qv(i,j)
644  ! diagnostics
645  land_u10(i,j) = ( snow_frac(i,j) ) * snow_u10(i,j) &
646  + ( 1.0_rp-snow_frac(i,j) ) * land_u10(i,j)
647  land_v10(i,j) = ( snow_frac(i,j) ) * snow_v10(i,j) &
648  + ( 1.0_rp-snow_frac(i,j) ) * land_v10(i,j)
649  land_t2(i,j) = ( snow_frac(i,j) ) * snow_t2(i,j) &
650  + ( 1.0_rp-snow_frac(i,j) ) * land_t2(i,j)
651  land_q2(i,j) = ( snow_frac(i,j) ) * snow_q2(i,j) &
652  + ( 1.0_rp-snow_frac(i,j) ) * land_q2(i,j)
653  end if
654  enddo
655  enddo
656 
657  call bulkflux_diagnose_scales( lia, lis, lie, lja, ljs, lje, &
658  land_sflx_mw(:,:), land_sflx_mu(:,:), land_sflx_mv(:,:), & ! [IN]
659  land_sflx_sh(:,:), sflx_qv(:,:), & ! [IN]
660  atmos_sfc_dens(:,:), land_sfc_temp(:,:), atmos_pbl(:,:), & ! [IN]
661  land_ustar(:,:), land_tstar(:,:), land_qstar(:,:), & ! [OUT]
662  land_wstar(:,:), land_rlmo(:,:), & ! [OUT]
663  mask = exists_land(:,:) ) ! [IN]
664 
665  end if
666 
667  if ( .NOT. atmos_hydrometeor_dry ) then
668  !$omp parallel do
669  do j = ljs, lje
670  do i = lis, lie
671  if ( exists_land(i,j) ) then
672  land_sflx_qtrc(i,j,i_qv) = sflx_qv(i,j)
673  end if
674  enddo
675  enddo
676  end if
677 
678 
679  ! Surface flux for chemical tracers
680  if ( atmos_sw_phy_ch ) then
681  call atmos_phy_ch_driver_land_flux( land_sflx_qtrc(:,:,:) ) ! [INOUT]
682  endif
683 
684  call prof_rapend ('LND_CalcTend', 1)
685 
686  !########## Set Surface Boundary to coupler ##########
687  call land_surface_set( countup=.true. )
688 
689  return
690  end subroutine land_driver_calc_tendency
691 
692  !-----------------------------------------------------------------------------
694  subroutine land_driver_update
695  use scale_time, only: &
696  dt => time_dtsec_land
697  use mod_land_vars, only: &
698  land_property, &
699  i_waterlimit, &
700  i_thermalcond, &
701  i_heatcapacity, &
702  i_waterdiff, &
703  land_temp, &
704  land_water, &
705  land_ice, &
706  land_sflx_gh, &
707  land_sflx_water, &
708  land_sflx_engi, &
709  land_runoff, &
711  land_sfc_temp, &
712  land_temp_t, &
713  land_water_t, &
714  land_ice_t, &
716  use scale_land_grid_cartesc, only: &
717  lcdz => land_grid_cartesc_cdz
718  use scale_land_dyn_bucket, only: &
720  use scale_landuse, only: &
721  exists_land => landuse_exists_land
722  use scale_time, only: &
723  nowdaysec => time_nowdaysec
724  use scale_file_history, only: &
725  file_history_in
726  use mod_land_admin, only: &
728  implicit none
729 
730  integer :: k, i, j
731  !---------------------------------------------------------------------------
732 
733  call prof_rapstart('LND_Update', 2)
734 
735  !########## Get Surface Boundary from coupler ##########
736  call land_surface_get
737 
738  !########## Dynamics / Update variables ##########
739  select case ( land_dyn_type )
740  case ( 'BUCKET' )
741  call land_dyn_bucket( lkmax, lks, lke, lia, lis, lie, lja, ljs, lje, &
742  land_temp_t(:,:,:), & ! [IN]
743  land_water_t(:,:,:), land_ice_t(:,:,:), & ! [IN]
744  land_property(:,:,i_waterlimit), & ! [IN]
745  land_property(:,:,i_thermalcond), & ! [IN]
746  land_property(:,:,i_heatcapacity), & ! [IN]
747  land_property(:,:,i_waterdiff), & ! [IN]
748  land_sflx_gh(:,:), & ! [IN]
749  land_sflx_water(:,:), & ! [IN]
750  land_sflx_engi(:,:), & ! [IN]
751  exists_land(:,:), lcdz(:), & ! [IN]
752  dt, nowdaysec, & ! [IN]
753  land_temp(:,:,:), & ! [INOUT]
754  land_water(:,:,:), land_ice(:,:,:), & ! [INOUT]
755  land_runoff(:,:), land_runoff_engi(:,:) ) ! [OUT]
756  case ( 'INIT' )
757  ! Never update LAND_TEMP and LAND_WATER from initial condition
758  end select
759 
760  !########## Negative Fixer ##########
761  !$omp parallel do
762  do j = ljs, lje
763  do i = lis, lie
764  if ( exists_land(i,j) ) then
765  do k = lks, lke
766  land_water(k,i,j) = max( land_water(k,i,j), 0.0_rp )
767  land_ice(k,i,j) = max( land_ice(k,i,j), 0.0_rp )
768  enddo
769  end if
770  enddo
771  enddo
772 
773  call land_vars_check
774 
775  call prof_rapend ('LND_Update', 1)
776 
777  return
778  end subroutine land_driver_update
779 
780  !-----------------------------------------------------------------------------
782  subroutine land_surface_get
783  use mod_land_admin, only: &
784  land_do
785  use mod_land_vars, only: &
786  atmos_temp, &
787  atmos_pres, &
788  atmos_w, &
789  atmos_u, &
790  atmos_v, &
791  atmos_dens, &
792  atmos_qv, &
793  atmos_pbl, &
794  atmos_sfc_dens, &
795  atmos_sfc_pres, &
797  atmos_cossza, &
800  use mod_cpl_vars, only: &
802  implicit none
803  !---------------------------------------------------------------------------
804 
805  call prof_rapstart('LND_SfcExch', 2)
806 
807  if ( land_do ) then
808  call cpl_getatm_lnd( atmos_temp(:,:), & ! [OUT]
809  atmos_pres(:,:), & ! [OUT]
810  atmos_w(:,:), & ! [OUT]
811  atmos_u(:,:), & ! [OUT]
812  atmos_v(:,:), & ! [OUT]
813  atmos_dens(:,:), & ! [OUT]
814  atmos_qv(:,:), & ! [OUT]
815  atmos_pbl(:,:), & ! [OUT]
816  atmos_sfc_dens(:,:), & ! [OUT]
817  atmos_sfc_pres(:,:), & ! [OUT]
818  atmos_sflx_rad_dn(:,:,:,:), & ! [OUT]
819  atmos_cossza(:,:), & ! [OUT]
820  atmos_sflx_water(:,:), & ! [OUT]
821  atmos_sflx_engi(:,:) ) ! [OUT]
822  endif
823 
824  call prof_rapend ('LND_SfcExch', 2)
825 
826  return
827  end subroutine land_surface_get
828 
829  !-----------------------------------------------------------------------------
831  subroutine land_surface_set( countup )
832  use mod_land_admin, only: &
833  land_do
834  use mod_land_vars, only: &
835  land_property, &
836  i_z0m, &
837  i_z0h, &
838  i_z0e, &
839  land_sfc_temp, &
840  land_sfc_albedo, &
841  land_sflx_mw, &
842  land_sflx_mu, &
843  land_sflx_mv, &
844  land_sflx_sh, &
845  land_sflx_lh, &
846  land_sflx_gh, &
847  land_sflx_qtrc, &
848  land_u10, &
849  land_v10, &
850  land_t2, &
851  land_q2
852  use mod_cpl_vars, only: &
853  cpl_putlnd
854  use scale_landuse, only: &
855  exists_land => landuse_exists_land
856  implicit none
857 
858  ! arguments
859  logical, intent(in) :: countup
860  !---------------------------------------------------------------------------
861 
862  call prof_rapstart('LND_SfcExch', 2)
863 
864  if ( land_do ) then
865  call cpl_putlnd( land_sfc_temp(:,:), & ! [IN]
866  land_sfc_albedo(:,:,:,:), & ! [IN]
867  land_property(:,:,i_z0m), & ! [IN]
868  land_property(:,:,i_z0h), & ! [IN]
869  land_property(:,:,i_z0e), & ! [IN]
870  land_sflx_mw(:,:), & ! [IN]
871  land_sflx_mu(:,:), & ! [IN]
872  land_sflx_mv(:,:), & ! [IN]
873  land_sflx_sh(:,:), & ! [IN]
874  land_sflx_lh(:,:), & ! [IN]
875  land_sflx_gh(:,:), & ! [IN]
876  land_sflx_qtrc(:,:,:), & ! [IN]
877  land_u10(:,:), & ! [IN]
878  land_v10(:,:), & ! [IN]
879  land_t2(:,:), & ! [IN]
880  land_q2(:,:), & ! [IN]
881  exists_land(:,:), & ! [IN]
882  countup ) ! [IN]
883  endif
884 
885  call prof_rapend ('LND_SfcExch', 2)
886 
887  return
888  end subroutine land_surface_set
889 
890 end module mod_land_driver
mod_land_vars::land_temp
real(rp), dimension(:,:,:), allocatable, public land_temp
temperature of each soil layer [K]
Definition: mod_land_vars.F90:61
scale_time::time_nowdaysec
real(dp), public time_nowdaysec
second of current time [sec]
Definition: scale_time.F90:70
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_cpl_sfc_index::i_r_direct
integer, parameter, public i_r_direct
Definition: scale_cpl_sfc_index.F90:37
mod_land_vars::atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
Definition: mod_land_vars.F90:125
mod_land_vars::atmos_temp
real(rp), dimension(:,:), allocatable, public atmos_temp
Definition: mod_land_vars.F90:116
mod_land_vars::snow_sfc_temp
real(rp), dimension(:,:), allocatable, public snow_sfc_temp
snow surface temperature [K]
Definition: mod_land_vars.F90:68
scale_land_grid_cartesc_index::ljs
integer, public ljs
Definition: scale_land_grid_cartesC_index.F90:45
mod_land_vars::atmos_qv
real(rp), dimension(:,:), allocatable, public atmos_qv
Definition: mod_land_vars.F90:122
mod_land_driver
module LAND driver
Definition: mod_land_driver.F90:11
scale_tracer::qa
integer, public qa
Definition: scale_tracer.F90:34
mod_land_vars::i_stomataresist
integer, parameter, public i_stomataresist
Definition: mod_land_vars.F90:142
scale_land_grid_cartesc_index::lia
integer, public lia
Definition: scale_land_grid_cartesC_index.F90:37
mod_land_vars::land_sflx_mu
real(rp), dimension(:,:), allocatable, public land_sflx_mu
land surface u-momentum flux [kg/m2/s]
Definition: mod_land_vars.F90:86
scale_land_grid_cartesc_index::lja
integer, public lja
Definition: scale_land_grid_cartesC_index.F90:38
mod_land_vars::land_tstar
real(rp), dimension(:,:), allocatable, target, public land_tstar
temperature scale [K]
Definition: mod_land_vars.F90:96
scale_land_grid_cartesc::land_grid_cartesc_cdz
real(rp), dimension(:), allocatable, public land_grid_cartesc_cdz
z-length of control volume [m]
Definition: scale_land_grid_cartesC.F90:36
mod_land_vars::land_sfc_albedo
real(rp), dimension(:,:,:,:), allocatable, public land_sfc_albedo
land surface albedo (direct/diffuse,IR/near-IR/VIS) (0-1)
Definition: mod_land_vars.F90:65
scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_z1
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_z1
Height of the lowermost grid from surface (cell center) [m].
Definition: scale_atmos_grid_cartesC_real.F90:59
scale_cpl_sfc_index::i_r_diffuse
integer, parameter, public i_r_diffuse
Definition: scale_cpl_sfc_index.F90:38
scale_topography::topography_tansl_y
real(rp), dimension(:,:), allocatable, public topography_tansl_y
tan(slope_y)
Definition: scale_topography.F90:40
mod_cpl_vars
module COUPLER Variables
Definition: mod_cpl_vars.F90:12
mod_land_vars::land_sflx_engi
real(rp), dimension(:,:), allocatable, public land_sflx_engi
land surface internal energy flux [J/m2/s]
Definition: mod_land_vars.F90:82
scale_precision
module PRECISION
Definition: scale_precision.F90:14
mod_atmos_admin
module ATMOS admin
Definition: mod_atmos_admin.F90:11
mod_land_vars::i_alblw
integer, parameter, public i_alblw
Definition: mod_land_vars.F90:146
mod_land_admin::land_sfc_type
character(len=h_short), public land_sfc_type
Definition: mod_land_admin.F90:36
mod_land_vars::i_albsw
integer, parameter, public i_albsw
Definition: mod_land_vars.F90:147
mod_land_vars::atmos_w
real(rp), dimension(:,:), allocatable, public atmos_w
Definition: mod_land_vars.F90:118
mod_land_vars::soil_ustar
real(rp), dimension(:,:), pointer, public soil_ustar
Definition: mod_land_vars.F90:100
mod_land_vars::land_water_t
real(rp), dimension(:,:,:), allocatable, public land_water_t
tendency of LAND_WATER
Definition: mod_land_vars.F90:76
scale_land_grid_cartesc_index::lkmax
integer, public lkmax
Definition: scale_land_grid_cartesC_index.F90:32
mod_land_vars::land_water
real(rp), dimension(:,:,:), allocatable, public land_water
moisture of each soil layer [m3/m3]
Definition: mod_land_vars.F90:62
mod_land_vars::land_runoff
real(rp), dimension(:,:), allocatable, public land_runoff
runoff of the land water [kg/m2/s]
Definition: mod_land_vars.F90:111
scale_cpl_sfc_index::i_r_ir
integer, parameter, public i_r_ir
Definition: scale_cpl_sfc_index.F90:29
mod_land_vars::atmos_u
real(rp), dimension(:,:), allocatable, public atmos_u
Definition: mod_land_vars.F90:119
scale_land_grid_cartesc_index::lje
integer, public lje
Definition: scale_land_grid_cartesC_index.F90:46
scale_prof::prof_rapstart
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
Definition: scale_prof.F90:159
scale_bulkflux
module Surface bulk flux
Definition: scale_bulkflux.F90:12
scale_atmos_hydrometeor
module atmosphere / hydrometeor
Definition: scale_atmos_hydrometeor.F90:12
mod_land_vars::land_sflx_mv
real(rp), dimension(:,:), allocatable, public land_sflx_mv
land surface v-momentum flux [kg/m2/s]
Definition: mod_land_vars.F90:87
mod_land_vars::i_waterdiff
integer, parameter, public i_waterdiff
Definition: mod_land_vars.F90:145
mod_land_vars::atmos_cossza
real(rp), dimension(:,:), allocatable, public atmos_cossza
Definition: mod_land_vars.F90:127
mod_land_vars::i_z0m
integer, parameter, public i_z0m
Definition: mod_land_vars.F90:148
mod_land_vars::atmos_sflx_rad_dn
real(rp), dimension(:,:,:,:), allocatable, public atmos_sflx_rad_dn
Definition: mod_land_vars.F90:126
mod_land_vars::land_ice_t
real(rp), dimension(:,:,:), allocatable, public land_ice_t
tendency of LAND_ICE
Definition: mod_land_vars.F90:77
scale_topography
module TOPOGRAPHY
Definition: scale_topography.F90:11
mod_land_vars::snow_wstar
real(rp), dimension(:,:), allocatable, public snow_wstar
Definition: mod_land_vars.F90:108
scale_landuse::landuse_exists_land
logical, dimension(:,:), allocatable, public landuse_exists_land
land calculation flag
Definition: scale_landuse.F90:50
scale_atmos_hydrometeor::atmos_hydrometeor_dry
logical, public atmos_hydrometeor_dry
Definition: scale_atmos_hydrometeor.F90:97
scale_cpl_phy_sfc_fixed_temp::cpl_phy_sfc_fixed_temp_setup
subroutine, public cpl_phy_sfc_fixed_temp_setup
Setup.
Definition: scale_cpl_phy_sfc_fixed_temp.F90:50
scale_land_phy_snow_ky90::land_phy_snow_ky90
subroutine, public land_phy_snow_ky90(LIA, LIS, LIE, LJA, LJS, LJE, SFLX_water, SFLX_ENGI, PRSA, TA, QA, WA, UA, VA, DENS, SFLX_RAD_dn, exists_land, dt, TSNOW, SWE, SDepth, SDzero, nosnowsec, Salbedo, SFLX_SH, SFLX_LH, SFLX_QV, SFLX_QV_ENGI, SFLX_GH, SNOW_LAND_GH, SNOW_LAND_Water, SNOW_frac)
Main routine for land submodel.
Definition: scale_land_phy_snow_ky90.F90:151
mod_land_vars::atmos_sflx_water
real(rp), dimension(:,:), allocatable, public atmos_sflx_water
Definition: mod_land_vars.F90:128
scale_atmos_grid_cartesc_real
module Atmosphere GRID CartesC Real(real space)
Definition: scale_atmos_grid_cartesC_real.F90:11
mod_land_vars::soil_rlmo
real(rp), dimension(:,:), pointer, public soil_rlmo
Definition: mod_land_vars.F90:104
scale_file_history
module file_history
Definition: scale_file_history.F90:15
mod_land_admin::snow_type
character(len=h_short), public snow_type
Definition: mod_land_admin.F90:38
mod_land_vars::land_rlmo
real(rp), dimension(:,:), allocatable, target, public land_rlmo
inversed Obukhov length [1/m]
Definition: mod_land_vars.F90:99
mod_land_vars::snow_tstar
real(rp), dimension(:,:), allocatable, public snow_tstar
Definition: mod_land_vars.F90:106
mod_land_vars::soil_tstar
real(rp), dimension(:,:), pointer, public soil_tstar
Definition: mod_land_vars.F90:101
scale_land_grid_cartesc_index
module land / grid / cartesianC / index
Definition: scale_land_grid_cartesC_index.F90:11
scale_const::const_i_sw
integer, public const_i_sw
short-wave radiation index
Definition: scale_const.F90:97
scale_land_phy_snow_ky90::land_phy_snow_ky90_setup
subroutine, public land_phy_snow_ky90_setup
Setup.
Definition: scale_land_phy_snow_ky90.F90:82
mod_land_admin::land_dyn_type
character(len=h_short), public land_dyn_type
Definition: mod_land_admin.F90:32
mod_land_vars::land_sflx_gh
real(rp), dimension(:,:), allocatable, public land_sflx_gh
land surface heat flux [J/m2/s]
Definition: mod_land_vars.F90:80
scale_prc
module PROCESS
Definition: scale_prc.F90:11
mod_land_vars::land_sflx_mw
real(rp), dimension(:,:), allocatable, public land_sflx_mw
land surface w-momentum flux [kg/m2/s]
Definition: mod_land_vars.F90:85
mod_land_vars::atmos_pres
real(rp), dimension(:,:), allocatable, public atmos_pres
Definition: mod_land_vars.F90:117
scale_precision::rp
integer, parameter, public rp
Definition: scale_precision.F90:41
scale_io
module STDIO
Definition: scale_io.F90:10
scale_cpl_sfc_index::i_r_nir
integer, parameter, public i_r_nir
Definition: scale_cpl_sfc_index.F90:30
mod_land_vars::soil_wstar
real(rp), dimension(:,:), pointer, public soil_wstar
Definition: mod_land_vars.F90:103
scale_tracer::k
real(rp), public k
Definition: scale_tracer.F90:44
scale_const
module CONSTANT
Definition: scale_const.F90:11
mod_land_driver::land_surface_set
subroutine, public land_surface_set(countup)
Put surface boundary to other model.
Definition: mod_land_driver.F90:832
mod_land_vars::land_sflx_sh
real(rp), dimension(:,:), allocatable, public land_sflx_sh
land surface sensible heat flux [J/m2/s]
Definition: mod_land_vars.F90:88
mod_land_vars::land_wstar
real(rp), dimension(:,:), allocatable, target, public land_wstar
convective velocity scale [m/s]
Definition: mod_land_vars.F90:98
mod_land_vars::land_ustar
real(rp), dimension(:,:), allocatable, target, public land_ustar
friction velocity [m/s]
Definition: mod_land_vars.F90:95
mod_land_admin
module Land admin
Definition: mod_land_admin.F90:11
mod_land_vars::land_property
real(rp), dimension(:,:,:), allocatable, public land_property
land surface property
Definition: mod_land_vars.F90:135
mod_land_vars::land_temp_t
real(rp), dimension(:,:,:), allocatable, public land_temp_t
tendency of LAND_TEMP
Definition: mod_land_vars.F90:75
scale_land_grid_cartesc_index::lie
integer, public lie
Definition: scale_land_grid_cartesC_index.F90:44
mod_land_vars::snow_ustar
real(rp), dimension(:,:), allocatable, public snow_ustar
Definition: mod_land_vars.F90:105
mod_land_vars::land_qstar
real(rp), dimension(:,:), allocatable, target, public land_qstar
moisture scale [kg/kg]
Definition: mod_land_vars.F90:97
scale_topography::topography_tansl_x
real(rp), dimension(:,:), allocatable, public topography_tansl_x
tan(slope_x)
Definition: scale_topography.F90:39
scale_land_phy_snow_diagnos
module land / physics / snow / diagnostics
Definition: scale_land_phy_snow_diagnos.F90:11
mod_land_vars
module LAND Variables
Definition: mod_land_vars.F90:11
mod_land_vars::land_sflx_water
real(rp), dimension(:,:), allocatable, public land_sflx_water
land surface water flux [kg/m2/s]
Definition: mod_land_vars.F90:81
mod_land_driver::land_driver_setup
subroutine, public land_driver_setup
Setup.
Definition: mod_land_driver.F90:56
scale_prof
module profiler
Definition: scale_prof.F90:11
mod_land_vars::snow_nosnowsec
real(rp), dimension(:,:), allocatable, public snow_nosnowsec
sec while no snow [s]
Definition: mod_land_vars.F90:72
scale_land_phy_snow_diagnos::land_phy_snow_diags
subroutine, public land_phy_snow_diags(LIA, LIS, LIE, LJA, LJS, LJE, SNOW_frac, TMPA, PRSA, WA, UA, VA, RHOA, QVA, Z1, PBL, RHOS, PRSS, LST1, QVEF, Z0M, Z0H, Z0E, ZMFLX, XMFLX, YMFLX, Ustar, Tstar, Qstar, Wstar, RLmo, U10, V10, T2, Q2)
Definition: scale_land_phy_snow_diagnos.F90:59
mod_atmos_admin::atmos_sw_phy_ch
logical, public atmos_sw_phy_ch
Definition: mod_atmos_admin.F90:54
mod_land_vars::i_thermalcond
integer, parameter, public i_thermalcond
Definition: mod_land_vars.F90:143
scale_land_dyn_bucket::land_dyn_bucket
subroutine, public land_dyn_bucket(LKMAX, LKS, LKE, LIA, LIS, LIE, LJA, LJS, LJE, TEMP_t, WATER_t, ICE_t, WaterLimit, ThermalCond, HeatCapacity, WaterDiff, SFLX_GH, SFLX_water, SFLX_RHOE, exists_land, CDZ, dt, NOWDAYSEC, TEMP, WATER, ICE, RUNOFF, RUNOFF_ENGI)
Physical processes for land submodel.
Definition: scale_land_dyn_bucket.F90:204
scale_time
module TIME
Definition: scale_time.F90:11
mod_land_vars::land_runoff_engi
real(rp), dimension(:,:), allocatable, public land_runoff_engi
internal energy of the runoff [J/m2/s]
Definition: mod_land_vars.F90:112
scale_land_grid_cartesc_index::lis
integer, public lis
Definition: scale_land_grid_cartesC_index.F90:42
mod_land_driver::land_driver_update
subroutine, public land_driver_update
Land step.
Definition: mod_land_driver.F90:695
mod_land_vars::i_heatcapacity
integer, parameter, public i_heatcapacity
Definition: mod_land_vars.F90:144
mod_land_vars::soil_qstar
real(rp), dimension(:,:), pointer, public soil_qstar
Definition: mod_land_vars.F90:102
scale_cpl_phy_sfc_skin
module coupler / physics / surface skin
Definition: scale_cpl_phy_sfc_skin.F90:12
mod_land_vars::snow_swe
real(rp), dimension(:,:), allocatable, public snow_swe
snow water equivalent [kg/m2]
Definition: mod_land_vars.F90:69
scale_const::const_i_lw
integer, public const_i_lw
long-wave radiation index
Definition: scale_const.F90:96
mod_land_vars::i_waterlimit
integer, parameter, public i_waterlimit
Definition: mod_land_vars.F90:140
scale_land_grid_cartesc::land_grid_cartesc_cz
real(rp), dimension(:), allocatable, public land_grid_cartesc_cz
center coordinate [m]: z, local=global
Definition: scale_land_grid_cartesC.F90:34
scale_tracer
module TRACER
Definition: scale_tracer.F90:12
mod_land_vars::i_z0h
integer, parameter, public i_z0h
Definition: mod_land_vars.F90:149
mod_land_vars::land_q2
real(rp), dimension(:,:), allocatable, public land_q2
land surface water vapor at 2m [kg/kg]
Definition: mod_land_vars.F90:94
scale_atmos_hydrometeor::i_qv
integer, public i_qv
Definition: scale_atmos_hydrometeor.F90:77
mod_land_vars::i_z0e
integer, parameter, public i_z0e
Definition: mod_land_vars.F90:150
mod_land_vars::land_vars_check
subroutine, public land_vars_check(force)
Budget monitor for land.
Definition: mod_land_vars.F90:927
mod_land_vars::atmos_dens
real(rp), dimension(:,:), allocatable, public atmos_dens
Definition: mod_land_vars.F90:121
scale_cpl_phy_sfc_skin::cpl_phy_sfc_skin
subroutine, public cpl_phy_sfc_skin(IA, IS, IE, JA, JS, JE, TMPA, PRSA, WA, UA, VA, RHOA, QVA, LH, Z1, PBL, RHOS, PRSS, RFLXD, TG, WSTR, QVEF, ALBEDO, Rb, TC_dZ, Z0M, Z0H, Z0E, calc_flag, dt, model_name, TMPS, ZMFLX, XMFLX, YMFLX, SHFLX, LHFLX, QVFLX, GFLX, Ustar, Tstar, Qstar, Wstar, RLmo, U10, V10, T2, Q2)
Definition: scale_cpl_phy_sfc_skin.F90:114
mod_land_vars::land_sfc_temp
real(rp), dimension(:,:), allocatable, public land_sfc_temp
land surface skin temperature [K]
Definition: mod_land_vars.F90:64
mod_land_vars::snow_qstar
real(rp), dimension(:,:), allocatable, public snow_qstar
Definition: mod_land_vars.F90:107
mod_atmos_phy_ch_driver
module ATMOSPHERE / Physics Chemistry
Definition: mod_atmos_phy_ch_driver.F90:12
scale_const::const_tem00
real(rp), parameter, public const_tem00
temperature reference (0C) [K]
Definition: scale_const.F90:90
mod_land_driver::land_driver_calc_tendency
subroutine, public land_driver_calc_tendency(force)
Calculate tendency.
Definition: mod_land_driver.F90:119
scale_cpl_sfc_index
module coupler / surface-atmospehre
Definition: scale_cpl_sfc_index.F90:11
mod_land_vars::snow_depth
real(rp), dimension(:,:), allocatable, public snow_depth
snow depth [m]
Definition: mod_land_vars.F90:70
mod_land_admin::land_do
logical, public land_do
Definition: mod_land_admin.F90:41
scale_time::time_dtsec_land
real(dp), public time_dtsec_land
time interval of land step [sec]
Definition: scale_time.F90:47
mod_land_vars::land_u10
real(rp), dimension(:,:), allocatable, public land_u10
land surface velocity u at 10m [m/s]
Definition: mod_land_vars.F90:91
scale_cpl_sfc_index::i_r_vis
integer, parameter, public i_r_vis
Definition: scale_cpl_sfc_index.F90:31
mod_land_vars::snow_flag
logical, public snow_flag
Definition: mod_land_vars.F90:132
mod_land_vars::atmos_sfc_dens
real(rp), dimension(:,:), allocatable, public atmos_sfc_dens
Definition: mod_land_vars.F90:124
scale_cpl_phy_sfc_fixed_temp::cpl_phy_sfc_fixed_temp
subroutine, public cpl_phy_sfc_fixed_temp(IA, IS, IE, JA, JS, JE, TMPA, PRSA, WA, UA, VA, RHOA, QVA, LH, Z1, PBL, RHOS, PRSS, RFLXD, TMPS, WSTR, QVEF, ALBEDO, Rb, Z0M, Z0H, Z0E, calc_flag, dt, ZMFLX, XMFLX, YMFLX, SHFLX, LHFLX, QVFLX, GFLX, Ustar, Tstar, Qstar, Wstar, RLmo, U10, V10, T2, Q2)
Definition: scale_cpl_phy_sfc_fixed_temp.F90:84
scale_land_dyn_bucket
module land / dynamics / bucket
Definition: scale_land_dyn_bucket.F90:11
scale_atmos_hydrometeor::lhf
real(rp), public lhf
latent heat of fusion for use [J/kg]
Definition: scale_atmos_hydrometeor.F90:128
mod_land_vars::land_sflx_lh
real(rp), dimension(:,:), allocatable, public land_sflx_lh
land surface latent heat flux [J/m2/s]
Definition: mod_land_vars.F90:89
scale_land_dyn_bucket::land_dyn_bucket_setup
subroutine, public land_dyn_bucket_setup
Setup.
Definition: scale_land_dyn_bucket.F90:72
mod_land_vars::land_v10
real(rp), dimension(:,:), allocatable, public land_v10
land surface velocity v at 10m [m/s]
Definition: mod_land_vars.F90:92
scale_cpl_phy_sfc_skin::cpl_phy_sfc_skin_setup
subroutine, public cpl_phy_sfc_skin_setup
Setup.
Definition: scale_cpl_phy_sfc_skin.F90:56
scale_prof::prof_rapend
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
Definition: scale_prof.F90:217
scale_land_grid_cartesc
module land / grid / cartesianC
Definition: scale_land_grid_cartesC.F90:11
mod_land_driver::land_surface_get
subroutine, public land_surface_get
Get surface boundary from other model.
Definition: mod_land_driver.F90:783
scale_land_grid_cartesc_index::lke
integer, public lke
Definition: scale_land_grid_cartesC_index.F90:41
mod_atmos_phy_ch_driver::atmos_phy_ch_driver_land_flux
subroutine, public atmos_phy_ch_driver_land_flux(SFLX_QTRC)
Driver.
Definition: mod_atmos_phy_ch_driver.F90:255
scale_landuse
module LANDUSE
Definition: scale_landuse.F90:19
mod_land_vars::land_ice
real(rp), dimension(:,:,:), allocatable, public land_ice
ice of each soil layer [m3/m3]
Definition: mod_land_vars.F90:63
mod_land_vars::land_t2
real(rp), dimension(:,:), allocatable, public land_t2
land surface temperature at 2m [K]
Definition: mod_land_vars.F90:93
mod_land_vars::atmos_sflx_engi
real(rp), dimension(:,:), allocatable, public atmos_sflx_engi
Definition: mod_land_vars.F90:129
mod_cpl_vars::cpl_putlnd
subroutine, public cpl_putlnd(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
Definition: mod_cpl_vars.F90:769
mod_land_vars::snow_rlmo
real(rp), dimension(:,:), allocatable, public snow_rlmo
Definition: mod_land_vars.F90:109
mod_land_vars::atmos_pbl
real(rp), dimension(:,:), allocatable, public atmos_pbl
Definition: mod_land_vars.F90:123
mod_land_vars::i_watercritical
integer, parameter, public i_watercritical
Definition: mod_land_vars.F90:141
scale_land_grid_cartesc_index::lks
integer, public lks
Definition: scale_land_grid_cartesC_index.F90:40
mod_cpl_vars::cpl_getatm_lnd
subroutine, public cpl_getatm_lnd(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI)
Definition: mod_cpl_vars.F90:1217
scale_land_phy_snow_ky90
module land / physics / snow / ky90
Definition: scale_land_phy_snow_ky90.F90:12
scale_atmos_hydrometeor::cv_water
real(rp), public cv_water
CV for water [J/kg/K].
Definition: scale_atmos_hydrometeor.F90:132
mod_land_vars::snow_dzero
real(rp), dimension(:,:), allocatable, public snow_dzero
snow depth at melting point [m]
Definition: mod_land_vars.F90:71
mod_land_vars::atmos_v
real(rp), dimension(:,:), allocatable, public atmos_v
Definition: mod_land_vars.F90:120
mod_land_vars::land_sflx_qtrc
real(rp), dimension(:,:,:), allocatable, public land_sflx_qtrc
land surface tracer flux [kg/m2/s]
Definition: mod_land_vars.F90:90
scale_atmos_hydrometeor::cv_ice
real(rp), public cv_ice
CV for ice [J/kg/K].
Definition: scale_atmos_hydrometeor.F90:134
scale_cpl_phy_sfc_fixed_temp
module coupler / surface fixed temp model
Definition: scale_cpl_phy_sfc_fixed_temp.F90:12