50 character(len=*),
intent(in) :: land_type
54 namelist / param_land_sfc_thick_slab / &
61 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[THICK-SLAB] / Categ[LAND SFC] / Origin[SCALElib]' 65 read(
io_fid_conf,nml=param_land_sfc_thick_slab,iostat=ierr)
67 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 68 elseif( ierr > 0 )
then 69 write(*,*)
'xxx Not appropriate names in namelist PARAM_LAND_SFC_THICK_SLAB. Check!' 123 hydrometeor_lhv => atmos_hydrometeor_lhv
125 qsat => atmos_saturation_pres2qsat_all
131 real(RP),
intent(out) :: lst_t(
ia,
ja)
132 real(RP),
intent(out) :: zmflx(
ia,
ja)
133 real(RP),
intent(out) :: xmflx(
ia,
ja)
134 real(RP),
intent(out) :: ymflx(
ia,
ja)
135 real(RP),
intent(out) :: shflx(
ia,
ja)
136 real(RP),
intent(out) :: lhflx(
ia,
ja)
137 real(RP),
intent(out) :: ghflx(
ia,
ja)
138 real(RP),
intent(out) :: u10 (
ia,
ja)
139 real(RP),
intent(out) :: v10 (
ia,
ja)
140 real(RP),
intent(out) :: t2 (
ia,
ja)
141 real(RP),
intent(out) :: q2 (
ia,
ja)
143 real(RP),
intent(in) :: tmpa(
ia,
ja)
144 real(RP),
intent(in) :: prsa(
ia,
ja)
145 real(RP),
intent(in) :: wa (
ia,
ja)
146 real(RP),
intent(in) :: ua (
ia,
ja)
147 real(RP),
intent(in) :: va (
ia,
ja)
148 real(RP),
intent(in) :: rhoa(
ia,
ja)
149 real(RP),
intent(in) :: qva (
ia,
ja)
150 real(RP),
intent(in) :: z1 (
ia,
ja)
151 real(RP),
intent(in) :: pbl (
ia,
ja)
152 real(RP),
intent(in) :: prss(
ia,
ja)
153 real(RP),
intent(in) :: lwd (
ia,
ja)
154 real(RP),
intent(in) :: swd (
ia,
ja)
156 real(RP),
intent(in) :: tg (
ia,
ja)
157 real(RP),
intent(in) :: lst (
ia,
ja)
158 real(RP),
intent(in) :: qvef (
ia,
ja)
159 real(RP),
intent(in) :: alb_lw(
ia,
ja)
160 real(RP),
intent(in) :: alb_sw(
ia,
ja)
161 real(RP),
intent(in) :: dzg (
ia,
ja)
162 real(RP),
intent(in) :: tcs (
ia,
ja)
163 real(RP),
intent(in) :: z0m (
ia,
ja)
164 real(RP),
intent(in) :: z0h (
ia,
ja)
165 real(RP),
intent(in) :: z0e (
ia,
ja)
166 real(DP),
intent(in) :: dt
169 real(RP) :: lst1(
ia,
ja)
184 real(RP) :: lhv(
ia,
ja)
189 if(
io_l )
write(
io_fid_log,*)
'*** Land surface step: Thick-Slab' 191 call hydrometeor_lhv( lhv(:,:), tmpa(:,:) )
197 lst_t(i,j) = ( lst1(i,j) - lst(i,j) ) / dt
211 qvs = ( 1.0_rp - qvef(i,j) ) * qva(i,j) + qvef(i,j) * qvsat
235 zmflx(i,j) = -rhoa(i,j) * ustar**2 / uabs * wa(i,j)
236 xmflx(i,j) = -rhoa(i,j) * ustar**2 / uabs * ua(i,j)
237 ymflx(i,j) = -rhoa(i,j) * ustar**2 / uabs * va(i,j)
239 shflx(i,j) = - rhoa(i,j) * ustar * tstar &
240 * cpdry * ( prss(i,j) / pre00 )**( rdry/cpdry )
241 lhflx(i,j) = - rhoa(i,j) * ustar * qstar * lhv(i,j)
243 ghflx(i,j) = -2.0_rp * tcs(i,j) * ( lst1(i,j) - tg(i,j) ) / dzg(i,j)
246 res = ( 1.0_rp - alb_sw(i,j) ) * swd(i,j) &
247 + ( 1.0_rp - alb_lw(i,j) ) * ( lwd(i,j) - stb * lst1(i,j)**4 ) &
248 - shflx(i,j) - lhflx(i,j) + ghflx(i,j)
251 ghflx(i,j) = ghflx(i,j) - res
260 u10(i,j) = ua(i,j) * log( 10.0_rp / z0m(i,j) ) / log( z1(i,j) / z0m(i,j) )
261 v10(i,j) = va(i,j) * log( 10.0_rp / z0m(i,j) ) / log( z1(i,j) / z0m(i,j) )
262 t2(i,j) = lst1(i,j) + ( tmpa(i,j) - lst1(i,j) ) * ( log( 2.0_rp / z0m(i,j) ) * log( 2.0_rp / z0h(i,j) ) ) &
263 / ( log( z1(i,j) / z0m(i,j) ) * log( z1(i,j) / z0h(i,j) ) )
264 q2(i,j) = qvs + ( qva(i,j) - qvs ) * ( log( 2.0_rp / z0m(i,j) ) * log( 2.0_rp / z0e(i,j) ) ) &
265 / ( log( z1(i,j) / z0m(i,j) ) * log( z1(i,j) / z0e(i,j) ) )
integer, public is
start point of inner domain: x, local
subroutine, public land_sfc_thick_slab_setup(LAND_TYPE)
Setup.
integer, public je
end point of inner domain: y, local
real(rp), public const_cpdry
specific heat (dry air,constant pressure) [J/kg/K]
module ATMOSPHERE / Saturation adjustment
subroutine, public prc_mpistop
Abort MPI.
real(rp), parameter, public const_stb
Stefan-Boltzman constant [W/m2/K4].
logical, public io_l
output log or not? (this process)
subroutine, public land_sfc_thick_slab(LST_t, ZMFLX, XMFLX, YMFLX, SHFLX, LHFLX, GHFLX, U10, V10, T2, Q2, TMPA, PRSA, WA, UA, VA, RHOA, QVA, Z1, PBL, PRSS, LWD, SWD, TG, LST, QVEF, ALB_LW, ALB_SW, DZG, TCS, Z0M, Z0H, Z0E, dt)
real(rp), public const_rdry
specific gas constant (dry air) [J/kg/K]
logical, public io_nml
output log or not? (for namelist, this process)
integer, public ia
of whole cells: x, local, with HALO
real(rp), public const_pre00
pressure reference [Pa]
procedure(bc), pointer, public bulkflux
integer, public js
start point of inner domain: y, local
integer, public ie
end point of inner domain: x, local
module LAND / Surface fluxes with thick-slab land model
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
integer, public io_fid_log
Log file ID.
integer, public io_fid_nml
Log file ID (only for output namelist)
integer, public ja
of whole cells: y, local, with HALO