52 real(RP),
public,
allocatable ::
urban_tr (:,:)
53 real(RP),
public,
allocatable ::
urban_tb (:,:)
54 real(RP),
public,
allocatable ::
urban_tg (:,:)
55 real(RP),
public,
allocatable ::
urban_tc (:,:)
56 real(RP),
public,
allocatable ::
urban_qc (:,:)
57 real(RP),
public,
allocatable ::
urban_uc (:,:)
98 real(RP),
public,
allocatable ::
urban_t2 (:,:)
99 real(RP),
public,
allocatable ::
urban_q2 (:,:)
104 real(RP),
public,
allocatable ::
atmos_w (:,:)
105 real(RP),
public,
allocatable ::
atmos_u (:,:)
106 real(RP),
public,
allocatable ::
atmos_v (:,:)
124 logical,
private :: urban_vars_checkrange = .false.
126 integer,
private,
parameter :: vmax = 23
127 integer,
private,
parameter :: i_tr = 1
128 integer,
private,
parameter :: i_tb = 2
129 integer,
private,
parameter :: i_tg = 3
130 integer,
private,
parameter :: i_tc = 4
131 integer,
private,
parameter :: i_qc = 5
132 integer,
private,
parameter :: i_uc = 6
133 integer,
private,
parameter :: i_trl = 7
134 integer,
private,
parameter :: i_tbl = 8
135 integer,
private,
parameter :: i_tgl = 9
136 integer,
private,
parameter :: i_rainr = 10
137 integer,
private,
parameter :: i_rainb = 11
138 integer,
private,
parameter :: i_raing = 12
139 integer,
private,
parameter :: i_roff = 13
140 integer,
private,
parameter :: i_sfc_temp = 14
141 integer,
private,
parameter :: i_alb_lw = 15
142 integer,
private,
parameter :: i_alb_sw = 16
143 integer,
private,
parameter :: i_sflx_mw = 17
144 integer,
private,
parameter :: i_sflx_mu = 18
145 integer,
private,
parameter :: i_sflx_mv = 19
146 integer,
private,
parameter :: i_sflx_sh = 20
147 integer,
private,
parameter :: i_sflx_lh = 21
148 integer,
private,
parameter :: i_sflx_gh = 22
149 integer,
private,
parameter :: i_sflx_evap = 23
151 character(len=H_SHORT),
private :: var_name(vmax)
152 character(len=H_MID),
private :: var_desc(vmax)
153 character(len=H_SHORT),
private :: var_unit(vmax)
155 data var_name /
'URBAN_TR' , &
179 data var_desc /
'urban surface temperature of roof', &
180 'urban surface temperature of wall', &
181 'urban surface temperature of road', &
182 'urban canopy air temperature', &
183 'urban canopy humidity', &
184 'urban canopy wind', &
185 'urban temperature in layer of roof', &
186 'urban temperature in layer of wall', &
187 'urban temperature in layer of road', &
188 'urban rain strage on roof', &
189 'urban rain strage on wall', &
190 'urban rain strage on road', &
192 'urban grid average of temperature', &
193 'urban grid average of albedo LW', &
194 'urban grid average of albedo SW', &
195 'urban grid average of w-momentum flux', &
196 'urban grid average of u-momentum flux', &
197 'urban grid average of v-momentum flux', &
198 'urban grid average of sensible heat flux', &
199 'urban grid average of latent heat flux', &
200 'urban grid average of ground heat flux', &
201 'urban grid average of water vapor flux' /
203 data var_unit /
'K', &
238 namelist / param_urban_vars / &
244 urban_vars_checkrange
251 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[URBAN] / Origin[SCALE-RM]' 372 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 373 elseif( ierr > 0 )
then 374 write(*,*)
'xxx Not appropriate names in namelist PARAM_URBAN_VARS. Check!' 380 if(
io_l )
write(
io_fid_log,*)
'*** List of prognostic variables (URBAN) ***' 382 '*** |',
'VARNAME ',
'|',
'DESCRIPTION ',
'[',
'UNIT ',
']' 385 '*** NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']' 416 if(
io_l )
write(
io_fid_log,*)
'*** Input restart file (URBAN) ***' 475 if(
io_l )
write(
io_fid_log,*)
'*** restart file for urban is not specified.' 492 character(len=20) :: timelabel
493 character(len=H_LONG) :: basename
502 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (URBAN) ***' 508 var_name(i_tr), var_desc(i_tr), var_unit(i_tr), &
511 var_name(i_tb), var_desc(i_tb), var_unit(i_tb), &
514 var_name(i_tg), var_desc(i_tg), var_unit(i_tg), &
517 var_name(i_tc), var_desc(i_tc), var_unit(i_tc), &
520 var_name(i_qc), var_desc(i_qc), var_unit(i_qc), &
523 var_name(i_uc), var_desc(i_uc), var_unit(i_uc), &
527 var_name(i_trl), var_desc(i_trl), var_unit(i_trl), &
530 var_name(i_tbl), var_desc(i_tbl), var_unit(i_tbl), &
533 var_name(i_tgl), var_desc(i_tgl), var_unit(i_tgl), &
537 var_name(i_rainr), var_desc(i_rainr), var_unit(i_rainr), &
540 var_name(i_rainb), var_desc(i_rainb), var_unit(i_rainb), &
543 var_name(i_raing), var_desc(i_raing), var_unit(i_raing), &
546 var_name(i_roff), var_desc(i_roff), var_unit(i_roff), &
550 var_name(i_sfc_temp), var_desc(i_sfc_temp), var_unit(i_sfc_temp), &
553 var_name(i_alb_lw), var_desc(i_alb_lw), var_unit(i_alb_lw), &
556 var_name(i_alb_sw), var_desc(i_alb_sw), var_unit(i_alb_sw), &
560 var_name(i_sflx_mw), var_desc(i_sflx_mw), var_unit(i_sflx_mw), &
563 var_name(i_sflx_mu), var_desc(i_sflx_mu), var_unit(i_sflx_mu), &
566 var_name(i_sflx_mv), var_desc(i_sflx_mv), var_unit(i_sflx_mv), &
569 var_name(i_sflx_sh), var_desc(i_sflx_sh), var_unit(i_sflx_sh), &
572 var_name(i_sflx_lh), var_desc(i_sflx_lh), var_unit(i_sflx_lh), &
575 var_name(i_sflx_gh), var_desc(i_sflx_gh), var_unit(i_sflx_gh), &
578 var_name(i_sflx_evap), var_desc(i_sflx_evap), var_unit(i_sflx_evap), &
594 if ( urban_vars_checkrange )
then 629 call hist_in(
urban_tr(:,:), var_name(i_tr), var_desc(i_tr), var_unit(i_tr) )
630 call hist_in(
urban_tb(:,:), var_name(i_tb), var_desc(i_tb), var_unit(i_tb) )
631 call hist_in(
urban_tg(:,:), var_name(i_tg), var_desc(i_tg), var_unit(i_tg) )
632 call hist_in(
urban_tc(:,:), var_name(i_tc), var_desc(i_tc), var_unit(i_tc) )
633 call hist_in(
urban_qc(:,:), var_name(i_qc), var_desc(i_qc), var_unit(i_qc) )
634 call hist_in(
urban_uc(:,:), var_name(i_uc), var_desc(i_uc), var_unit(i_uc) )
636 call hist_in(
urban_trl(:,:,:), var_name(i_trl), var_desc(i_trl), var_unit(i_trl), zdim=
'urban' )
637 call hist_in(
urban_tbl(:,:,:), var_name(i_tbl), var_desc(i_tbl), var_unit(i_tbl), zdim=
'urban' )
638 call hist_in(
urban_tgl(:,:,:), var_name(i_tgl), var_desc(i_tgl), var_unit(i_tgl), zdim=
'urban' )
640 call hist_in(
urban_rainr(:,:), var_name(i_rainr), var_desc(i_rainr), var_unit(i_rainr) )
641 call hist_in(
urban_rainb(:,:), var_name(i_rainb), var_desc(i_rainb), var_unit(i_rainb) )
642 call hist_in(
urban_raing(:,:), var_name(i_raing), var_desc(i_raing), var_unit(i_raing) )
643 call hist_in(
urban_roff(:,:), var_name(i_roff), var_desc(i_roff), var_unit(i_roff) )
645 call hist_in(
urban_sfc_temp(:,:), var_name(i_sfc_temp), var_desc(i_sfc_temp), var_unit(i_sfc_temp) )
646 call hist_in(
urban_sfc_albedo(:,:,i_lw), var_name(i_alb_lw), var_desc(i_alb_lw), var_unit(i_alb_lw) )
647 call hist_in(
urban_sfc_albedo(:,:,i_sw), var_name(i_alb_sw), var_desc(i_alb_sw), var_unit(i_alb_sw) )
649 call hist_in(
urban_sflx_mw(:,:), var_name(i_sflx_mw), var_desc(i_sflx_mw), var_unit(i_sflx_mw) )
650 call hist_in(
urban_sflx_mu(:,:), var_name(i_sflx_mu), var_desc(i_sflx_mu), var_unit(i_sflx_mu) )
651 call hist_in(
urban_sflx_mv(:,:), var_name(i_sflx_mv), var_desc(i_sflx_mv), var_unit(i_sflx_mv) )
652 call hist_in(
urban_sflx_sh(:,:), var_name(i_sflx_sh), var_desc(i_sflx_sh), var_unit(i_sflx_sh) )
653 call hist_in(
urban_sflx_lh(:,:), var_name(i_sflx_lh), var_desc(i_sflx_lh), var_unit(i_sflx_lh) )
654 call hist_in(
urban_sflx_gh(:,:), var_name(i_sflx_gh), var_desc(i_sflx_gh), var_unit(i_sflx_gh) )
655 call hist_in(
urban_sflx_evap(:,:), var_name(i_sflx_evap), var_desc(i_sflx_evap), var_unit(i_sflx_evap) )
673 call stat_total( total,
urban_tr(:,:), var_name(i_tr) )
674 call stat_total( total,
urban_tb(:,:), var_name(i_tb) )
675 call stat_total( total,
urban_tg(:,:), var_name(i_tg) )
676 call stat_total( total,
urban_tc(:,:), var_name(i_tc) )
677 call stat_total( total,
urban_qc(:,:), var_name(i_qc) )
678 call stat_total( total,
urban_uc(:,:), var_name(i_uc) )
681 call stat_total( total,
urban_trl(k,:,:), var_name(i_trl) )
682 call stat_total( total,
urban_tbl(k,:,:), var_name(i_tbl) )
683 call stat_total( total,
urban_tgl(k,:,:), var_name(i_tgl) )
686 call stat_total( total,
urban_rainr(:,:), var_name(i_rainr) )
687 call stat_total( total,
urban_rainb(:,:), var_name(i_rainb) )
688 call stat_total( total,
urban_raing(:,:), var_name(i_raing) )
689 call stat_total( total,
urban_roff(:,:), var_name(i_roff) )
691 call stat_total( total,
urban_sfc_temp(:,:), var_name(i_sfc_temp) )
695 call stat_total( total,
urban_sflx_mw(:,:), var_name(i_sflx_mw) )
696 call stat_total( total,
urban_sflx_mu(:,:), var_name(i_sflx_mu) )
697 call stat_total( total,
urban_sflx_mv(:,:), var_name(i_sflx_mv) )
698 call stat_total( total,
urban_sflx_sh(:,:), var_name(i_sflx_sh) )
699 call stat_total( total,
urban_sflx_lh(:,:), var_name(i_sflx_lh) )
700 call stat_total( total,
urban_sflx_gh(:,:), var_name(i_sflx_gh) )
715 URBAN_SFC_albedo_in )
718 real(RP),
intent(in) :: URBAN_TC_in (
ia,
ja)
719 real(RP),
intent(in) :: URBAN_QC_in (
ia,
ja)
720 real(RP),
intent(in) :: URBAN_UC_in (
ia,
ja)
721 real(RP),
intent(in) :: URBAN_SFC_TEMP_in (
ia,
ja)
722 real(RP),
intent(in) :: URBAN_SFC_albedo_in(
ia,
ja,2)
730 urban_tr(:,:) = urban_sfc_temp_in(:,:)
731 urban_tb(:,:) = urban_sfc_temp_in(:,:)
732 urban_tg(:,:) = urban_sfc_temp_in(:,:)
739 urban_trl(k,:,:) = urban_sfc_temp_in(:,:)
740 urban_tbl(k,:,:) = urban_sfc_temp_in(:,:)
741 urban_tgl(k,:,:) = urban_sfc_temp_in(:,:)
real(rp), dimension(:,:), allocatable, public urban_qc_t
integer, public is
start point of inner domain: x, local
logical, public statistics_checktotal
calc&report variable totals to logfile?
integer, public je
end point of inner domain: y, local
integer, public const_i_lw
long-wave radiation index
subroutine, public prc_mpistop
Abort MPI.
real(rp), dimension(:,:), allocatable, public urban_qc
real(rp), dimension(:,:), allocatable, public urban_rainr_t
real(rp), dimension(:,:,:), allocatable, public urban_trl_t
real(rp), dimension(:,:), allocatable, public urban_tg_t
real(rp), dimension(:,:), allocatable, public urban_u10
logical, public io_l
output log or not? (this process)
real(rp), dimension(:,:), allocatable, public urban_v10
real(rp), dimension(:,:), allocatable, public urban_raing_t
real(rp), dimension(:,:), allocatable, public urban_z0e
real(rp), dimension(:,:), allocatable, public urban_sflx_mu
real(rp), dimension(:,:), allocatable, public urban_sflx_evap
real(rp), dimension(:,:), allocatable, public urban_z0m
subroutine, public urban_vars_total
Budget monitor for urban.
subroutine, public urban_vars_restart_read
Read urban restart.
real(rp), dimension(:,:), allocatable, public urban_tb_t
real(rp), dimension(:,:), allocatable, public urban_t2
subroutine, public urban_vars_history
History output set for urban variables.
real(rp), dimension(:,:), allocatable, public urban_tb
subroutine, public urban_vars_external_in(URBAN_TC_in, URBAN_QC_in, URBAN_UC_in, URBAN_SFC_TEMP_in, URBAN_SFC_albedo_in)
Input from External I/O.
real(rp), dimension(:,:), allocatable, public urban_raing
real(rp), dimension(:,:), allocatable, public urban_uc
real(rp), dimension(:,:), allocatable, public atmos_sflx_prec
real(rp), public const_undef
subroutine, public urban_vars_restart_write
Write urban restart.
real(rp), dimension(:,:), allocatable, public atmos_pbl
real(rp), dimension(:,:), allocatable, public urban_sflx_sh
character(len=h_long), public urban_restart_out_basename
basename of the output file
real(rp), dimension(:,:), allocatable, public urban_tr
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:,:), allocatable, public urban_tgl
subroutine, public time_gettimelabel(timelabel)
generate time label
real(rp), dimension(:,:), allocatable, public atmos_qv
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_cossza
real(rp), dimension(:,:), allocatable, public urban_uc_t
real(rp), dimension(:,:), allocatable, public urban_z0h
real(rp), dimension(:,:,:), allocatable, public atmos_sflx_sw
real(rp), dimension(:,:), allocatable, public atmos_v
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public urban_roff
real(rp), dimension(:,:), allocatable, public atmos_dens
subroutine, public urban_vars_setup
Setup.
real(rp), dimension(:,:,:), allocatable, public urban_sfc_albedo
real(rp), dimension(:,:), allocatable, public urban_sflx_lh
character(len=h_mid), public urban_restart_out_dtype
REAL4 or REAL8.
real(rp), dimension(:,:), allocatable, public urban_tc
real(rp), dimension(:,:), allocatable, public atmos_pres
logical, public urban_restart_output
output restart file?
real(rp), dimension(:,:), allocatable, public urban_rainr
integer, public ie
end point of inner domain: x, local
logical, public io_lnml
output log or not? (for namelist, this process)
real(rp), dimension(:,:), allocatable, public atmos_temp
integer, public const_i_sw
short-wave radiation index
real(rp), dimension(:,:), allocatable, public urban_q2
real(rp), dimension(:,:), allocatable, public urban_tg
real(rp), dimension(:,:), allocatable, public atmos_u
real(rp), dimension(:,:), allocatable, public urban_sfc_temp
real(rp), dimension(:,:,:), allocatable, public urban_trl
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public urban_rainb_t
real(rp), dimension(:,:,:), allocatable, public atmos_sflx_lw
integer, public io_fid_log
Log file ID.
real(rp), dimension(:,:,:), allocatable, public urban_tbl
real(rp), dimension(:,:), allocatable, public urban_tr_t
real(rp), dimension(:,:,:), allocatable, public urban_tgl_t
real(rp), dimension(:,:), allocatable, public urban_sflx_gh
real(rp), dimension(:,:), allocatable, public urban_sflx_mv
real(rp), dimension(:,:), allocatable, public atmos_w
real(rp), dimension(:,:), allocatable, public urban_rainb
real(rp), dimension(:,:), allocatable, public urban_tc_t
character(len=h_long), public urban_restart_in_basename
basename of the restart file
real(rp), dimension(:,:), allocatable, public urban_roff_t
real(rp), dimension(:,:,:), allocatable, public urban_tbl_t
real(rp), dimension(:,:), allocatable, public urban_sflx_mw
character(len=h_mid), public urban_restart_out_title
title of the output file
integer, public ja
of y whole cells (local, with HALO)