Go to the documentation of this file.
112 integer,
private,
parameter :: vmax = 10
113 integer,
private,
parameter :: i_sfc_temp = 1
114 integer,
private,
parameter :: i_sfc_alb_ir_dir = 2
115 integer,
private,
parameter :: i_sfc_alb_ir_dif = 3
116 integer,
private,
parameter :: i_sfc_alb_nir_dir = 4
117 integer,
private,
parameter :: i_sfc_alb_nir_dif = 5
118 integer,
private,
parameter :: i_sfc_alb_vis_dir = 6
119 integer,
private,
parameter :: i_sfc_alb_vis_dif = 7
120 integer,
private,
parameter :: i_sfc_z0m = 8
121 integer,
private,
parameter :: i_sfc_z0h = 9
122 integer,
private,
parameter :: i_sfc_z0e = 10
124 character(len=H_SHORT),
private :: var_name(vmax)
125 character(len=H_MID),
private :: var_desc(vmax)
126 character(len=H_MID),
private :: var_stdn(vmax)
127 character(len=H_SHORT),
private :: var_unit(vmax)
128 integer,
private :: var_id(vmax)
129 integer,
private :: restart_fid = -1
131 data var_name /
'SFC_TEMP', &
142 data var_desc /
'surface skin temperature', &
143 'surface albedo for IR, direct ', &
144 'surface albedo for IR, diffuse', &
145 'surface albedo for NIR, direct ', &
146 'surface albedo for NIR, diffuse', &
147 'surface albedo for VIS, direct ', &
148 'surface albedo for VIS, diffuse', &
149 'surface roughness length (momentum)', &
150 'surface roughness length (heat)', &
151 'surface roughness length (vapor)' /
153 data var_stdn /
'surface_temp', &
160 'surface_roughness_length_for_momentum_in_air', &
161 'surface_roughness_length_for_heat_in_air', &
164 data var_unit /
'K', &
175 real(
rp),
private :: atmos_phy_sf_default_sfc_temp = 300.0_rp
176 real(
rp),
private :: atmos_phy_sf_default_sfc_albedo_lw = 0.04_rp
177 real(
rp),
private :: atmos_phy_sf_default_sfc_albedo_sw = 0.10_rp
178 real(
rp),
private :: atmos_phy_sf_default_sfc_z0m = 1e-4_rp
179 real(
rp),
private :: atmos_phy_sf_default_sfc_z0h = 1e-5_rp
180 real(
rp),
private :: atmos_phy_sf_default_sfc_z0e = 1e-5_rp
182 real(
rp),
allocatable,
target :: zero(:,:)
197 namelist / param_atmos_phy_sf_vars / &
207 atmos_phy_sf_default_sfc_temp, &
208 atmos_phy_sf_default_sfc_albedo_lw, &
209 atmos_phy_sf_default_sfc_albedo_sw, &
210 atmos_phy_sf_default_sfc_z0m, &
211 atmos_phy_sf_default_sfc_z0h, &
212 atmos_phy_sf_default_sfc_z0e
219 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Setup'
223 read(
io_fid_conf,nml=param_atmos_phy_sf_vars,iostat=ierr)
225 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Not found namelist. Default used.'
226 elseif( ierr > 0 )
then
227 log_error(
"ATMOS_PHY_SF_vars_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_SF_VARS. Check!'
230 log_nml(param_atmos_phy_sf_vars)
314 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'[ATMOS_PHY_SF] prognostic/diagnostic variables'
315 log_info_cont(
'(1x,A,A24,A,A48,A,A12,A)') &
316 ' |',
'VARNAME ',
'|', &
317 'DESCRIPTION ',
'[',
'UNIT ',
']'
319 log_info_cont(
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
320 'NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']'
328 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Restart input? : NO'
335 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Restart output? : NO'
342 allocate( zero(
ia,
ja) )
357 integer :: n ,idir, irgn
398 character(len=19) :: timelabel
399 character(len=H_LONG) :: basename
403 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'Open restart file (ATMOS_PHY_SF) '
414 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'basename: ', trim(basename)
419 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'restart file for ATMOS_PHY_SF is not specified.'
436 if ( restart_fid /= -1 )
then
438 log_info(
"ATMOS_PHY_SF_vars_restart_read",*)
'Read from restart file (ATMOS_PHY_SF) '
440 call file_cartesc_read( restart_fid, var_name(i_sfc_temp),
'XY', &
442 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dir),
'XY', &
444 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dif),
'XY', &
446 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dir),
'XY', &
448 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dif),
'XY', &
450 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dir),
'XY', &
452 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dif),
'XY', &
454 call file_cartesc_read( restart_fid, var_name(i_sfc_z0m),
'XY', &
456 call file_cartesc_read( restart_fid, var_name(i_sfc_z0h),
'XY', &
458 call file_cartesc_read( restart_fid, var_name(i_sfc_z0e),
'XY', &
470 log_info(
"ATMOS_PHY_SF_vars_restart_read",*)
'invalid restart file ID for ATMOS_PHY_SF.'
485 character(len=19) :: timelabel
486 character(len=H_LONG) :: basename
492 log_info(
"ATMOS_PHY_SF_vars_restart_create",*)
'Create restart file (ATMOS_PHY_AE) '
501 log_info(
"ATMOS_PHY_SF_vars_restart_create",*)
'basename: ', trim(basename)
519 if ( restart_fid /= -1 )
then
534 if ( restart_fid /= -1 )
then
536 log_info(
"ATMOS_PHY_SF_vars_restart_close",*)
'Close restart file (ATMOS_PHY_SF) '
556 if ( restart_fid /= -1 )
then
560 var_name(i), var_desc(i), var_unit(i), &
563 standard_name=var_stdn(i) )
575 file_cartesc_write_var
579 if ( restart_fid /= -1 )
then
585 call file_cartesc_write_var( restart_fid, var_id(i_sfc_temp), &
587 var_name(i_sfc_temp),
'XY' )
588 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dir), &
590 var_name(i_sfc_alb_ir_dir),
'XY' )
591 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dif), &
593 var_name(i_sfc_alb_ir_dif),
'XY' )
594 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dir), &
596 var_name(i_sfc_alb_nir_dir),
'XY' )
597 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dif), &
599 var_name(i_sfc_alb_nir_dif),
'XY' )
600 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dir), &
602 var_name(i_sfc_alb_vis_dir),
'XY' )
603 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dif), &
605 var_name(i_sfc_alb_vis_dif),
'XY' )
606 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0m), &
608 var_name(i_sfc_z0m),
'XY' )
609 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0h), &
611 var_name(i_sfc_z0h),
'XY' )
612 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0e), &
614 var_name(i_sfc_z0e),
'XY' )
632 0.0_rp, 1.0e3_rp, var_name(i_sfc_temp), &
636 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dir), &
640 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dif), &
644 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dir), &
648 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dif), &
652 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dir), &
656 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dif), &
660 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0m), &
664 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0h), &
668 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0e), &
673 var_name(i_sfc_temp), &
678 var_name(i_sfc_alb_ir_dir), &
683 var_name(i_sfc_alb_ir_dif), &
688 var_name(i_sfc_alb_nir_dir), &
693 var_name(i_sfc_alb_nir_dif), &
698 var_name(i_sfc_alb_vis_dir), &
703 var_name(i_sfc_alb_vis_dif), &
708 var_name(i_sfc_z0m), &
713 var_name(i_sfc_z0h), &
718 var_name(i_sfc_z0e), &
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0m
integer, parameter, public n_rad_dir
character(len=h_long), public atmos_phy_sf_restart_out_basename
Basename of the output file.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_dens
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mu
subroutine, public prc_abort
Abort Process.
integer, parameter, public i_r_direct
logical, public atmos_phy_sf_restart_out_aggregate
Switch to use aggregate file.
subroutine, public atmos_phy_sf_vars_restart_open
Open restart file for read.
subroutine atmos_phy_sf_vars_check
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_v10
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_prec_mass
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0e
subroutine, public file_cartesc_def_var(fid, varname, desc, unit, dim_type, datatype, vid, standard_name, timeintv, nsteps, cell_measures)
Define a variable to file.
integer, parameter, public i_r_diffuse
logical, public atmos_phy_sf_restart_output
output restart file?
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_qstar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_prec_engi
subroutine, public atmos_phy_sf_vars_restart_def_var
Write restart.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhoh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_ustar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_wstar
real(rp), public atmos_grid_cartesc_real_totarea
total area (xy, local) [m2]
integer, parameter, public i_r_ir
module atmosphere / hydrometeor
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mv
module ATMOSPHERIC Surface Variables
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mw
logical, public atmos_phy_sf_restart_in_aggregate
Switch to use aggregate file.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0h
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_temp
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_qvex
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_u10
integer, parameter, public rp
integer, public ie
end point of inner domain: x, local
integer, parameter, public i_r_nir
subroutine, public atmos_phy_sf_vars_restart_write
Write variables to restart file.
subroutine, public atmos_phy_sf_vars_restart_close
Close restart file.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_rhoq_t
module atmosphere / grid / cartesC index
subroutine, public atmos_phy_sf_vars_restart_enddef
Exit netCDF define mode.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_shex
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_sf_sfc_albedo
subroutine, public atmos_phy_sf_vars_setup
Setup.
subroutine, public atmos_phy_sf_vars_fillhalo
HALO Communication.
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rlmo
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_area
horizontal area ( xy, normal z) [m2]
integer, public is
start point of inner domain: x, local
subroutine, public atmos_phy_sf_vars_restart_create
Create restart file.
logical, public atmos_phy_sf_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
character(len=h_long), public atmos_phy_sf_restart_in_basename
Basename of the input file.
real(rp), dimension(:,:), pointer, public atmos_phy_sf_sflx_qv
character(len=h_short), public atmos_phy_sf_restart_out_dtype
REAL4 or REAL8.
real(rp), dimension(:,:,:), allocatable, target, public atmos_phy_sf_sflx_qtrc
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_engi
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_t2
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_lh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_dens_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_pres
subroutine, public file_cartesc_create(basename, title, datatype, fid, date, subsec, haszcoord, append, aggregate, single)
Create/open a netCDF file.
subroutine, public file_cartesc_open(basename, fid, aggregate)
open a netCDF file for read
character(len=h_mid), public atmos_phy_sf_restart_out_title
title of the output file
subroutine, public file_cartesc_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
subroutine, public time_gettimelabel(timelabel)
generate time label
module coupler / surface-atmospehre
logical, public atmos_phy_sf_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
integer, public js
start point of inner domain: y, local
integer, parameter, public i_r_vis
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_sh
logical function, public file_get_aggregate(fid)
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_q2
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_gh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhou_t
integer, parameter, public n_rad_rgn
real(rp), public const_undef
subroutine, public atmos_phy_sf_vars_restart_read
Read restart.
integer, public io_fid_conf
Config file ID.
integer, public je
end point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_tstar
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_momz_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhov_t