97 integer,
private,
parameter :: vmax = 6
98 integer,
private,
parameter :: i_sfc_temp = 1
99 integer,
private,
parameter :: i_sfc_albedo_lw = 2
100 integer,
private,
parameter :: i_sfc_albedo_sw = 3
101 integer,
private,
parameter :: i_sfc_z0m = 4
102 integer,
private,
parameter :: i_sfc_z0h = 5
103 integer,
private,
parameter :: i_sfc_z0e = 6
105 character(len=H_SHORT),
private :: var_name(vmax)
106 character(len=H_MID),
private :: var_desc(vmax)
107 character(len=H_SHORT),
private :: var_unit(vmax)
108 integer,
private :: var_id(vmax)
109 integer,
private :: restart_fid = -1
111 data var_name /
'SFC_TEMP', &
118 data var_desc /
'surface skin temperature', &
119 'surface albedo for longwave', &
120 'surface albedo for shortwave', &
121 'surface roughness length (momentum)', &
122 'surface roughness length (heat)', &
123 'surface roughness length (vapor)' /
125 data var_unit /
'K', &
132 real(RP),
private :: atmos_phy_sf_default_sfc_temp = 300.0_rp
133 real(RP),
private :: atmos_phy_sf_default_sfc_albedo = 0.4_rp
134 real(RP),
private :: atmos_phy_sf_default_sfc_z0 = 1e-4_rp
147 namelist / param_atmos_phy_sf_vars / &
153 atmos_phy_sf_default_sfc_temp, &
154 atmos_phy_sf_default_sfc_albedo, &
155 atmos_phy_sf_default_sfc_z0
162 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[ATMOS PHY_SF] / Origin[SCALE-RM]' 219 read(
io_fid_conf,nml=param_atmos_phy_sf_vars,iostat=ierr)
221 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 222 elseif( ierr > 0 )
then 223 write(*,*)
'xxx Not appropriate names in namelist PARAM_ATMOS_PHY_SF_VARS. Check!' 236 if(
io_l )
write(
io_fid_log,*)
'*** [ATMOS_PHY_SF] prognostic/diagnostic variables' 238 '*** |',
'VARNAME ',
'|',
'DESCRIPTION ',
'[',
'UNIT ',
']' 241 '*** NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']' 306 if(
io_l )
write(
io_fid_log,*)
'*** Input restart file (ATMOS_PHY_SF) ***' 333 if(
io_l )
write(
io_fid_log,*)
'*** restart file for ATMOS_PHY_SF is not specified.' 358 character(len=20) :: timelabel
359 character(len=H_LONG) :: basename
370 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (ATMOS_PHY_SF) ***' 413 real(RP),
intent(in) :: sfc_temp_in (:,:)
414 real(RP),
intent(in) :: albedo_lw_in(:,:)
415 real(RP),
intent(in) :: albedo_sw_in(:,:)
416 real(RP),
intent(in) :: sfc_z0m_in (:,:)
417 real(RP),
intent(in) :: sfc_z0h_in (:,:)
418 real(RP),
intent(in) :: sfc_z0e_in (:,:)
448 character(len=20) :: timelabel
449 character(len=H_LONG) :: basename
459 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (ATMOS_PHY_SF) ***' 476 if ( restart_fid .NE. -1 )
then 490 if ( restart_fid .NE. -1 )
then 507 if ( restart_fid .NE. -1 )
then 509 call fileio_def_var( restart_fid, var_id(1), var_name(1), var_desc(1), &
511 call fileio_def_var( restart_fid, var_id(2), var_name(2), var_desc(2), &
513 call fileio_def_var( restart_fid, var_id(3), var_name(3), var_desc(3), &
515 call fileio_def_var( restart_fid, var_id(4), var_name(4), var_desc(4), &
517 call fileio_def_var( restart_fid, var_id(5), var_name(5), var_desc(5), &
519 call fileio_def_var( restart_fid, var_id(6), var_name(6), var_desc(6), &
541 if ( restart_fid .NE. -1 )
then subroutine, public atmos_phy_sf_vars_restart_def_var
Write restart.
subroutine, public atmos_phy_sf_vars_restart_read
Read restart.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0e
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_momz_t
integer, public const_i_lw
long-wave radiation index
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_sflx_qtrc
subroutine, public atmos_phy_sf_vars_external_in(sfc_temp_in, albedo_lw_in, albedo_sw_in, sfc_z0m_in, sfc_z0h_in, sfc_z0e_in)
Input from External I/O.
subroutine, public prc_mpistop
Abort MPI.
character(len=h_long), public atmos_phy_sf_restart_out_basename
basename of the output file
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mw
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_rhoq_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_v10
logical, public io_l
output log or not? (this process)
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rhot_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_temp
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mv
subroutine, public atmos_phy_sf_vars_restart_enddef
Exit netCDF define mode.
subroutine, public atmos_phy_sf_vars_setup
Setup.
character(len=h_mid), public atmos_phy_sf_restart_out_dtype
REAL4 or REAL8.
real(rp), public const_undef
subroutine, public atmos_phy_sf_vars_restart_write_var
Write variables to restart file.
module ATMOSPHERIC Surface Variables
subroutine, public atmos_phy_sf_vars_restart_write
Write restart.
subroutine, public atmos_phy_sf_vars_restart_close
Close restart file.
subroutine, public fileio_def_var(fid, vid, varname, desc, unit, axistype, datatype, timeintv)
Define a variable to file.
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_u10
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_momx_t
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_dens_t
subroutine, public atmos_phy_sf_vars_fillhalo
HALO Communication.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0h
subroutine, public time_gettimelabel(timelabel)
generate time label
real(rp), dimension(:,:,:), allocatable, public atmos_phy_sf_sfc_albedo
subroutine, public fileio_create(fid, basename, title, datatype, date, subsec, append, nozcoord)
Create/open a netCDF file.
character(len=h_long), public atmos_phy_sf_restart_in_basename
basename of the restart file
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_lh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_pres
character(len=h_mid), public atmos_phy_sf_restart_out_title
title of the output file
subroutine, public fileio_enddef(fid)
Exit netCDF file define mode.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_sh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_momy_t
subroutine, public atmos_phy_sf_vars_restart_create
Create restart file.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_q2
logical, public io_lnml
output log or not? (for namelist, this process)
integer, public const_i_sw
short-wave radiation index
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_z0m
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_t2
subroutine, public fileio_close(fid)
Close a netCDF file.
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_dens
integer, public io_fid_log
Log file ID.
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_gh
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mu
integer, public ja
of y whole cells (local, with HALO)
logical, public atmos_phy_sf_restart_output
output restart file?