Go to the documentation of this file.
114 integer,
private,
parameter :: vmax = 10
115 integer,
private,
parameter :: i_sfc_temp = 1
116 integer,
private,
parameter :: i_sfc_alb_ir_dir = 2
117 integer,
private,
parameter :: i_sfc_alb_ir_dif = 3
118 integer,
private,
parameter :: i_sfc_alb_nir_dir = 4
119 integer,
private,
parameter :: i_sfc_alb_nir_dif = 5
120 integer,
private,
parameter :: i_sfc_alb_vis_dir = 6
121 integer,
private,
parameter :: i_sfc_alb_vis_dif = 7
122 integer,
private,
parameter :: i_sfc_z0m = 8
123 integer,
private,
parameter :: i_sfc_z0h = 9
124 integer,
private,
parameter :: i_sfc_z0e = 10
126 character(len=H_SHORT),
private :: var_name(vmax)
127 character(len=H_MID),
private :: var_desc(vmax)
128 character(len=H_MID),
private :: var_stdn(vmax)
129 character(len=H_SHORT),
private :: var_unit(vmax)
130 integer,
private :: var_id(vmax)
131 integer,
private :: restart_fid = -1
133 data var_name /
'SFC_TEMP', &
144 data var_desc /
'surface skin temperature', &
145 'surface albedo for IR, direct ', &
146 'surface albedo for IR, diffuse', &
147 'surface albedo for NIR, direct ', &
148 'surface albedo for NIR, diffuse', &
149 'surface albedo for VIS, direct ', &
150 'surface albedo for VIS, diffuse', &
151 'surface roughness length (momentum)', &
152 'surface roughness length (heat)', &
153 'surface roughness length (vapor)' /
155 data var_stdn /
'surface_temp', &
162 'surface_roughness_length_for_momentum_in_air', &
163 'surface_roughness_length_for_heat_in_air', &
166 data var_unit /
'K', &
177 real(
rp),
private :: atmos_phy_sf_default_sfc_temp = 300.0_rp
178 real(
rp),
private :: atmos_phy_sf_default_sfc_albedo_lw = 0.04_rp
179 real(
rp),
private :: atmos_phy_sf_default_sfc_albedo_sw = 0.10_rp
180 real(
rp),
private :: atmos_phy_sf_default_sfc_z0m = 1e-4_rp
181 real(
rp),
private :: atmos_phy_sf_default_sfc_z0h = 1e-5_rp
182 real(
rp),
private :: atmos_phy_sf_default_sfc_z0e = 1e-5_rp
184 real(
rp),
allocatable,
target :: zero(:,:)
199 namelist / param_atmos_phy_sf_vars / &
209 atmos_phy_sf_default_sfc_temp, &
210 atmos_phy_sf_default_sfc_albedo_lw, &
211 atmos_phy_sf_default_sfc_albedo_sw, &
212 atmos_phy_sf_default_sfc_z0m, &
213 atmos_phy_sf_default_sfc_z0h, &
214 atmos_phy_sf_default_sfc_z0e
221 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Setup'
225 read(
io_fid_conf,nml=param_atmos_phy_sf_vars,iostat=ierr)
227 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Not found namelist. Default used.'
228 elseif( ierr > 0 )
then
229 log_error(
"ATMOS_PHY_SF_vars_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_SF_VARS. Check!'
232 log_nml(param_atmos_phy_sf_vars)
324 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'[ATMOS_PHY_SF] prognostic/diagnostic variables'
325 log_info_cont(
'(1x,A,A24,A,A48,A,A12,A)') &
326 ' |',
'VARNAME ',
'|', &
327 'DESCRIPTION ',
'[',
'UNIT ',
']'
329 log_info_cont(
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
330 'NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']'
338 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Restart input? : NO'
345 log_info(
"ATMOS_PHY_SF_vars_setup",*)
'Restart output? : NO'
352 allocate( zero(
ia,
ja) )
368 log_info(
"ATMOS_PHY_SF_vars_finalize",*)
'Finalize'
420 if (
allocated( zero ) )
then
435 integer :: n ,idir, irgn
476 character(len=19) :: timelabel
477 character(len=H_LONG) :: basename
481 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'Open restart file (ATMOS_PHY_SF) '
492 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'basename: ', trim(basename)
497 log_info(
"ATMOS_PHY_SF_vars_restart_open",*)
'restart file for ATMOS_PHY_SF is not specified.'
514 if ( restart_fid /= -1 )
then
516 log_info(
"ATMOS_PHY_SF_vars_restart_read",*)
'Read from restart file (ATMOS_PHY_SF) '
518 call file_cartesc_read( restart_fid, var_name(i_sfc_temp),
'XY', &
520 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dir),
'XY', &
522 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_ir_dif),
'XY', &
524 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dir),
'XY', &
526 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_nir_dif),
'XY', &
528 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dir),
'XY', &
530 call file_cartesc_read( restart_fid, var_name(i_sfc_alb_vis_dif),
'XY', &
532 call file_cartesc_read( restart_fid, var_name(i_sfc_z0m),
'XY', &
534 call file_cartesc_read( restart_fid, var_name(i_sfc_z0h),
'XY', &
536 call file_cartesc_read( restart_fid, var_name(i_sfc_z0e),
'XY', &
549 log_info(
"ATMOS_PHY_SF_vars_restart_read",*)
'invalid restart file ID for ATMOS_PHY_SF.'
564 character(len=19) :: timelabel
565 character(len=H_LONG) :: basename
571 log_info(
"ATMOS_PHY_SF_vars_restart_create",*)
'Create restart file (ATMOS_PHY_AE) '
580 log_info(
"ATMOS_PHY_SF_vars_restart_create",*)
'basename: ', trim(basename)
598 if ( restart_fid /= -1 )
then
613 if ( restart_fid /= -1 )
then
615 log_info(
"ATMOS_PHY_SF_vars_restart_close",*)
'Close restart file (ATMOS_PHY_SF) '
635 if ( restart_fid /= -1 )
then
639 var_name(i), var_desc(i), var_unit(i), &
642 standard_name=var_stdn(i) )
654 file_cartesc_write_var
658 if ( restart_fid /= -1 )
then
664 call file_cartesc_write_var( restart_fid, var_id(i_sfc_temp), &
666 var_name(i_sfc_temp),
'XY' )
667 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dir), &
669 var_name(i_sfc_alb_ir_dir),
'XY' )
670 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_ir_dif), &
672 var_name(i_sfc_alb_ir_dif),
'XY' )
673 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dir), &
675 var_name(i_sfc_alb_nir_dir),
'XY' )
676 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_nir_dif), &
678 var_name(i_sfc_alb_nir_dif),
'XY' )
679 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dir), &
681 var_name(i_sfc_alb_vis_dir),
'XY' )
682 call file_cartesc_write_var( restart_fid, var_id(i_sfc_alb_vis_dif), &
684 var_name(i_sfc_alb_vis_dif),
'XY' )
685 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0m), &
687 var_name(i_sfc_z0m),
'XY' )
688 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0h), &
690 var_name(i_sfc_z0h),
'XY' )
691 call file_cartesc_write_var( restart_fid, var_id(i_sfc_z0e), &
693 var_name(i_sfc_z0e),
'XY' )
711 0.0_rp, 1.0e3_rp, var_name(i_sfc_temp), &
715 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dir), &
719 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_ir_dif), &
723 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dir), &
727 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_nir_dif), &
731 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dir), &
735 0.0_rp, 1.0e0_rp, var_name(i_sfc_alb_vis_dif), &
739 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0m), &
743 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0h), &
747 0.0_rp, 1.0e2_rp, var_name(i_sfc_z0e), &
752 var_name(i_sfc_temp), &
757 var_name(i_sfc_alb_ir_dir), &
762 var_name(i_sfc_alb_ir_dif), &
767 var_name(i_sfc_alb_nir_dir), &
772 var_name(i_sfc_alb_nir_dif), &
777 var_name(i_sfc_alb_vis_dir), &
782 var_name(i_sfc_alb_vis_dif), &
787 var_name(i_sfc_z0m), &
792 var_name(i_sfc_z0h), &
797 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
subroutine, public atmos_phy_sf_vars_finalize
Finalize.
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_lhex
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.
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)
subroutine, public file_cartesc_open(basename, fid, single, aggregate)
open a netCDF file for read
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