Go to the documentation of this file.
87 integer,
private,
parameter :: vmax = 2
88 integer,
private,
parameter :: i_w0mean = 1
89 integer,
private,
parameter :: i_kf_nca = 2
92 character(len=H_SHORT),
private :: var_name(vmax)
93 character(len=H_MID),
private :: var_desc(vmax)
94 character(len=H_SHORT),
private :: var_unit(vmax)
95 character(len=H_SHORT),
private :: var_dim (vmax)
96 integer,
private :: var_id (vmax)
97 integer,
private :: restart_fid = -1
99 data var_name /
'w0mean', &
102 data var_desc /
'running mean vertical velocity', &
103 'advection/cumulus convection timescale for KF' /
105 data var_unit /
'm/s', &
108 data var_dim /
'ZXY', &
112 integer,
private :: vmax_t
113 integer,
private :: i_cp_rain_sf = 1
114 integer,
private :: i_cp_snow_sf = 2
115 integer,
private :: i_cp_engi_sf = 3
116 integer,
private :: i_cp_dens_t = 4
117 integer,
private :: i_cp_rhot_t = 5
118 integer,
private :: i_cp_qv_t = 6
120 character(len=H_SHORT),
private,
allocatable :: var_t_name(:)
121 character(len=H_MID),
private,
allocatable :: var_t_desc(:)
122 character(len=H_SHORT),
private,
allocatable :: var_t_unit(:)
123 integer,
private,
allocatable :: var_t_id (:)
139 namelist / param_atmos_phy_cp_vars / &
156 log_info(
"ATMOS_PHY_CP_vars_setup",*)
'Setup'
178 allocate( var_t_name(vmax_t) )
179 allocate( var_t_desc(vmax_t) )
180 allocate( var_t_unit(vmax_t) )
181 allocate( var_t_id(vmax_t) )
183 var_t_name(i_cp_rain_sf) =
'SFLX_RAIN_CP'
184 var_t_desc(i_cp_rain_sf) =
'surface rain flux in CP'
185 var_t_unit(i_cp_rain_sf) =
'kg/m2/s'
186 var_t_name(i_cp_snow_sf) =
'SFLX_SNOW_CP'
187 var_t_desc(i_cp_snow_sf) =
'surface snow flux in CP'
188 var_t_unit(i_cp_snow_sf) =
'kg/m2/s'
189 var_t_name(i_cp_engi_sf) =
'SFLX_ENGI_CP'
190 var_t_desc(i_cp_engi_sf) =
'surface internal energy flux in CP'
191 var_t_unit(i_cp_engi_sf) =
'J/m2/s'
193 var_t_name(i_cp_dens_t) =
'DENS_t_CP'
194 var_t_desc(i_cp_dens_t) =
'tendency DENS in CP'
195 var_t_unit(i_cp_dens_t) =
'kg/m3/s'
196 var_t_name(i_cp_rhot_t) =
'RHOT_t_CP'
197 var_t_desc(i_cp_rhot_t) =
'tendency RHOT in CP'
198 var_t_unit(i_cp_rhot_t) =
'K*kg/m3/s'
200 var_t_name(i_cp_qv_t) =
'QV_t_CP'
201 var_t_desc(i_cp_qv_t) =
'tendency rho*QV in CP'
202 var_t_unit(i_cp_qv_t) =
'kg/m3/s'
204 var_t_name(6+iq) = trim(
hyd_name(iq))//
'_t_CP'
205 var_t_desc(6+iq) =
'tendency rho*'//trim(
hyd_name(iq))//
' in CP'
206 var_t_unit(6+iq) =
'kg/m3/s'
230 read(
io_fid_conf,nml=param_atmos_phy_cp_vars,iostat=ierr)
232 log_info(
"ATMOS_PHY_CP_vars_setup",*)
'Not found namelist. Default used.'
233 elseif( ierr > 0 )
then
234 log_error(
"ATMOS_PHY_CP_vars_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_CP_VARS. Check!'
237 log_nml(param_atmos_phy_cp_vars)
240 log_info(
"ATMOS_PHY_CP_vars_setup",*)
'[ATMOS_PHY_CP] prognostic/diagnostic variables'
241 log_info_cont(
'(1x,A,A24,A,A48,A,A12,A)') &
242 ' |',
'VARNAME ',
'|', &
243 'DESCRIPTION ',
'[',
'UNIT ',
']'
245 log_info_cont(
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
246 'NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']'
251 log_info_cont(
'(1x,A,I3,A,A24,A,A48,A,A12,A)') &
252 'NO.',iv+vmax,
'|',var_t_name(iv),
'|',var_t_desc(iv),
'[',var_t_unit(iv),
']'
260 log_info(
"ATMOS_PHY_CP_vars_setup",*)
'Restart input? : NO'
267 log_info(
"ATMOS_PHY_CP_vars_setup",*)
'Restart output? : NO'
281 log_info(
"ATMOS_PHY_CP_vars_finalize",*)
'Finalize'
295 deallocate( var_t_name )
296 deallocate( var_t_desc )
297 deallocate( var_t_unit )
298 deallocate( var_t_id )
389 character(len=19) :: timelabel
390 character(len=H_LONG) :: basename
394 log_info(
"ATMOS_PHY_CP_vars_restart_open",*)
'Open restart file (ATMOS_PHY_CP) '
405 log_info(
"ATMOS_PHY_CP_vars_restart_open",*)
'basename: ', trim(basename)
409 log_info(
"ATMOS_PHY_CP_vars_restart_open",*)
'restart file for ATMOS_PHY_CP is not specified.'
430 if ( restart_fid /= -1 )
then
432 log_info(
"ATMOS_PHY_CP_vars_restart_read",*)
'Read from restart file (ATMOS_PHY_CP) '
434 call file_cartesc_read( restart_fid, var_name(1),
'ZXY', &
436 call file_cartesc_read( restart_fid, var_name(2),
'XY', &
440 call file_cartesc_read( restart_fid, var_t_name(1),
'XY', &
442 call file_cartesc_read( restart_fid, var_t_name(2),
'XY', &
444 call file_cartesc_read( restart_fid, var_t_name(3),
'XY', &
448 call file_cartesc_read( restart_fid, var_t_name(4),
'ZXY', &
450 call file_cartesc_read( restart_fid, var_t_name(5),
'ZXY', &
452 call file_cartesc_read( restart_fid, var_t_name(6),
'ZXY', &
455 call file_cartesc_read( restart_fid, var_t_name(6+iq),
'ZXY', &
499 log_info(
"ATMOS_PHY_CP_vars_restart_read",*)
'invalid restart file ID for ATMOS_PHY_CP.'
514 character(len=19) :: timelabel
515 character(len=H_LONG) :: basename
521 log_info(
"ATMOS_PHY_CP_vars_restart_create",*)
'Create restart file (ATMOS_PHY_AE) '
530 log_info(
"ATMOS_PHY_CP_vars_restart_create",*)
'basename: ', trim(basename)
549 if ( restart_fid /= -1 )
then
564 if ( restart_fid /= -1 )
then
566 log_info(
"ATMOS_PHY_CP_vars_restart_close",*)
'Close restart file (ATMOS_PHY_CP) '
588 if ( restart_fid /= -1 )
then
592 var_name(i), var_desc(i), var_unit(i), &
599 var_t_name(i), var_t_desc(i), var_t_unit(i), &
606 var_t_name(i), var_t_desc(i), var_t_unit(i), &
613 var_t_name(6+iq), var_t_desc(6+iq), var_t_unit(6+iq), &
627 file_cartesc_write => file_cartesc_write_var
635 if ( restart_fid /= -1 )
then
648 var_t_name(1),
'XY' )
650 var_t_name(2),
'XY' )
652 var_t_name(3),
'XY' )
656 var_t_name(4),
'ZXY' )
658 var_t_name(5),
'ZXY' )
660 var_t_name(6),
'ZXY' )
663 var_t_name(6+iq),
'ZXY' )
688 -100.0_rp, 100.0_rp, var_name(1), &
692 -100.0_rp, 1.0e5_rp, var_name(2), &
697 0.0e0_rp, 1.0e0_rp, var_t_name(1), &
701 0.0e0_rp, 1.0e0_rp, var_t_name(2), &
705 0.0e0_rp, 5.0e3_rp, var_t_name(3), &
710 -1.0e0_rp, 1.0e0_rp, var_t_name(4), &
714 -1.0e3_rp, 1.0e3_rp, var_t_name(5), &
718 -1.0e0_rp, 1.0e0_rp, var_t_name(6), &
723 -1.0e0_rp, 1.0e0_rp, var_t_name(6+iq), &
subroutine, public atmos_phy_cp_vars_restart_write
Write restart.
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_mflx_cloudbase
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_rhoqv_t
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_cloudbase
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:,:), allocatable, public atmos_phy_cp_rhohyd_t
logical, public atmos_phy_cp_restart_in_postfix_timelabel
Add timelabel to the basename of input file?
subroutine, public prc_abort
Abort Process.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_cldfrac_sh
character(len=h_short), dimension(n_hyd), parameter, public hyd_name
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_rhot_t
subroutine, public file_cartesc_enddef(fid)
Exit netCDF file define mode.
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.
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_sflx_engi
character(len=h_short), public atmos_phy_cp_restart_out_dtype
REAL4 or REAL8.
real(rp), public atmos_grid_cartesc_real_totarea
total area (xy, local) [m2]
subroutine, public atmos_phy_cp_vars_restart_open
Open restart file for read.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_cldfrac_dp
subroutine, public atmos_phy_cp_vars_restart_create
Create restart file.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_w0mean
module atmosphere / hydrometeor
logical, public atmos_phy_cp_restart_output
output restart file?
character(len=h_mid), public atmos_phy_cp_restart_out_title
title of the output file
character(len=h_long), public atmos_phy_cp_restart_in_basename
Basename of the input file.
subroutine, public atmos_phy_cp_vars_restart_enddef
Exit netCDF define mode.
module Atmosphere GRID CartesC Real(real space)
character(len=h_long), public atmos_phy_cp_restart_out_basename
Basename of the output file.
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_sflx_rain
integer, parameter, public rp
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_sflx_snow
logical, public atmos_phy_cp_restart_out_postfix_timelabel
Add timelabel to the basename of output file?
module atmosphere / grid / cartesC index
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
control volume (zxy) [m3]
subroutine, public atmos_phy_cp_vars_restart_close
Close restart file.
subroutine, public file_cartesc_close(fid)
Close a netCDF file.
logical, public atmos_phy_cp_restart_in_aggregate
Switch to use aggregate file.
logical, public atmos_phy_cp_restart_out_aggregate
Switch to use aggregate file.
subroutine, public atmos_phy_cp_vars_setup
Setup.
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
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_cloudtop
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_momz_t
subroutine atmos_phy_cp_vars_check
subroutine, public atmos_phy_cp_vars_fillhalo
HALO Communication.
integer, public ks
start point of inner domain: z, local
subroutine, public file_cartesc_create(basename, title, datatype, fid, date, subsec, haszcoord, append, aggregate, single)
Create/open a netCDF file.
logical, public statistics_checktotal
calc&report variable totals to logfile?
subroutine, public file_cartesc_flush(fid)
Flush all pending requests to a netCDF file (PnetCDF only)
subroutine, public time_gettimelabel(timelabel)
generate time label
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:,:), allocatable, public atmos_phy_cp_dens_t
logical function, public file_get_aggregate(fid)
subroutine, public file_cartesc_open(basename, fid, single, aggregate)
open a netCDF file for read
subroutine, public atmos_phy_cp_vars_finalize
Setup.
real(rp), public atmos_grid_cartesc_real_totvol
total volume (zxy, local) [m3]
real(rp), public const_undef
module Atmosphere / Physics Cumulus
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public atmos_phy_cp_kf_nca
integer, public je
end point of inner domain: y, local
integer, parameter, public n_hyd
subroutine, public atmos_phy_cp_vars_restart_def_var
Write restart.
subroutine, public atmos_phy_cp_vars_restart_read
Read restart.