Go to the documentation of this file.
98 private :: atmos_grid_cartesc_real_calc_latlon
125 character(len=H_LONG) :: domain_catalogue_fname =
'latlon_domain_catalogue.txt'
126 logical :: domain_catalogue_output = .false.
128 namelist / param_domain_catalogue / &
129 domain_catalogue_fname, &
130 domain_catalogue_output
136 log_info(
"ATMOS_GRID_CARTESC_REAL_setup",*)
'Setup'
140 read(
io_fid_conf,nml=param_domain_catalogue,iostat=ierr)
142 log_info(
"ATMOS_GRID_CARTESC_REAL_setup",*)
'Not found namelist. Default used.'
143 elseif( ierr > 0 )
then
144 log_error(
"ATMOS_GRID_CARTESC_REAL_setup",*)
'Not appropriate names in namelist PARAM_DOMAIN_CATALOGUE. Check!'
147 log_nml(param_domain_catalogue)
198 call atmos_grid_cartesc_real_calc_latlon( domain_catalogue_fname, domain_catalogue_output )
215 subroutine atmos_grid_cartesc_real_calc_latlon( &
236 mapprojection_xy2lonlat
239 character(len=*),
intent(in) :: catalogue_fname
240 logical,
intent(in) :: catalogue_output
242 integer,
parameter :: i_min = 1
243 integer,
parameter :: i_max = 2
244 integer,
parameter :: i_lon = 1
245 integer,
parameter :: i_lat = 2
247 real(
rp) :: mine (2,2)
258 log_info(
"ATMOS_GRID_CARTESC_REAL_calc_latlon",*)
'Base position in the global domain (lat,lon)'
305 log_error(
"ATMOS_GRID_CARTESC_REAL_calc_latlon",*)
'Invalid grid distance in lat-lon! i,j=', i,j
314 log_info(
"ATMOS_GRID_CARTESC_REAL_calc_latlon",*)
'Position on the earth (Local)'
315 log_info_cont(
'(1x,A,F10.5,A,F9.5,A,A,F10.5,A,F9.5,A)') &
319 log_info_cont(
'(1x,A)')
' | |'
320 log_info_cont(
'(1x,A,F10.5,A,F9.5,A,A,F10.5,A,F9.5,A)') &
329 call comm_gather( whole(:,:,:), mine(:,:), 2, 2 )
332 if ( catalogue_output )
then
336 file = trim(catalogue_fname), &
337 form =
'formatted', &
338 status =
'replace', &
341 if ( ierr /= 0 )
then
342 log_error(
"ATMOS_GRID_CARTESC_REAL_calc_latlon",*)
'cannot create latlon-catalogue file!'
347 write(fid,
'(I8,8F32.24)',iostat=ierr) i, whole(i_min,i_lon,i), whole(i_max,i_lon,i), &
348 whole(i_min,i_lat,i), whole(i_max,i_lat,i)
349 if ( ierr /= 0 )
exit
367 end subroutine atmos_grid_cartesc_real_calc_latlon
411 zs = ( zsfc(i,j) + zsfc(i+1,j) ) * 0.5_rp
428 zs = ( zsfc(i,j) + zsfc(i,j+1) ) * 0.5_rp
444 zs = ( zsfc(i,j) + zsfc(i+1,j) + zsfc(i,j+1) + zsfc(i+1,j+1) ) * 0.25_rp
452 zs = ( zsfc(
ia,j) + zsfc(
ia,j+1) ) * 0.5_rp
458 zs = ( zsfc(i,
ja) + zsfc(i+1,
ja) ) * 0.5_rp
482 zs = ( zsfc(i,j) + zsfc(i+1,j) ) * 0.5_rp
499 zs = ( zsfc(i,j) + zsfc(i,j+1) ) * 0.5_rp
516 zs = ( zsfc(i,j) + zsfc(i+1,j) + zsfc(i,j+1) + zsfc(i+1,j+1) ) * 0.25_rp
524 zs = ( zsfc(
ia,j) + zsfc(
ia,j+1) ) * 0.5_rp
531 zs = ( zsfc(i,
ja) + zsfc(i+1,
ja) ) * 0.5_rp
583 log_info(
"ATMOS_GRID_CARTESC_REAL_calc_Z",*)
'Minimum & maximum lowermost CZ'
585 log_info(
"ATMOS_GRID_CARTESC_REAL_calc_Z",*)
'Minimum & maximum aspect ratio'
619 real(
rp),
intent(in) :: mapf(
ia,
ja,2,4)
683 call comm_vars8( areauv(:,:), 4 )
732 call comm_wait( areauv(:,:), 4 )
real(rp), public const_grav
standard acceleration of gravity [m/s2]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxy_y
virtical area (zxy, normal y) [m2]
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzuy
geopotential height [m] (wuy)
subroutine, public prc_abort
Abort Process.
real(rp), public atmos_grid_cartesc_real_totvolzxv
total volume (zxv, local) [m3]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_cz
geopotential height [m] (zxy)
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volwxy
control volume (wxy) [m3]
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_z1
Height of the lowermost grid from surface (cell center) [m].
real(rp), public atmos_grid_cartesc_real_aspect_min
minimum aspect ratio of the grid cell
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonxv
longitude at staggered point (xv) [rad,0-2pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areawuy_x
virtical area (wuy, normal x) [m2]
real(rp), public atmos_grid_cartesc_real_totarea
total area (xy, local) [m2]
real(rp), public atmos_grid_cartesc_real_totvolwxy
total volume (wxy, local) [m3]
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdy
y-length of control volume [m]
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fx
face coordinate [m]: x, local
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_dlon
delta longitude
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdy
y-length of grid(j+1) to grid(j) [m]
integer function, public io_get_available_fid()
search & get available file ID
subroutine, public atmos_grid_cartesc_real_calc_areavol(MAPF)
Calc control area/volume.
module Atmosphere GRID CartesC Real(real space)
real(rp), public atmos_grid_cartesc_real_basepoint_lat
position of base point in real world [rad,-pi,pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czxv
geopotential height [m] (zxv)
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lon
longitude [rad,0-2pi]
real(rp), public atmos_grid_cartesc_real_basepoint_lon
position of base point in real world [rad,0-2pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzuy
control volume (zuy) [m3]
real(rp), public atmos_grid_cartesc_domain_center_y
center position of global domain [m]: y
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_domain_catalogue
domain latlon catalogue [rad]
real(rp), public const_pi
pi
real(rp), public mapprojection_basepoint_lat
integer, parameter, public rp
real(rp), public atmos_grid_cartesc_real_aspect_max
maximum aspect ratio of the grid cell
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzxv
geopotential height [m] (wxv)
real(rp), public atmos_grid_cartesc_domain_center_x
center position of global domain [m]: x
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_volzxv
control volume (zxv) [m3]
module atmosphere / grid / cartesC index
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
control volume (zxy) [m3]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czuv
geopotential height [m] (zuv)
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latuv
latitude at staggered point (uv) [rad,-pi,pi]
real(rp), dimension(:,:), allocatable, public landuse_frac_land
land fraction
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areawxv_y
virtical area (wxv, normal y) [m2]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuy_x
virtical area (zuy, normal x) [m2]
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fy
face coordinate [m]: y, local
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latuy
latitude at staggered point (uy) [rad,-pi,pi]
subroutine, public mapprojection_setup(DOMAIN_CENTER_X, DOMAIN_CENTER_Y)
Setup.
subroutine, public atmos_grid_cartesc_real_setup
Setup.
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_area
horizontal area ( xy, normal z) [m2]
logical, public topography_exist
topography exists?
integer, public is
start point of inner domain: x, local
integer, parameter, public dp
real(rp), public mapprojection_basepoint_lon
real(rp), public atmos_grid_cartesc_real_totareauy
total area (uy, local) [m2]
real(rp), public atmos_grid_cartesc_real_totvolzuy
total volume (zuy, local) [m3]
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fdx
x-length of grid(i+1) to grid(i) [m]
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_areauy
horizontal area ( uy, normal z) [m2]
subroutine, public file_cartesc_set_coordinates_atmos(CZ, FZ, LON, LONUY, LONXV, LONUV, LAT, LATUY, LATXV, LATUV, TOPO, LSMASK)
set latlon and z for atmosphere
subroutine, public file_cartesc_set_areavol_atmos(AREA, AREAZUY_X, AREAZXV_Y, AREAWUY_X, AREAWXV_Y, AREAUY, AREAZXY_X, AREAZUV_Y, AREAXV, AREAZUV_X, AREAZXY_Y, VOL, VOLWXY, VOLZUY, VOLZXV)
set area and volume
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuv_x
virtical area (zuv, normal x) [m2]
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_dlat
delta latitude
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_latxv
latitude at staggered point (xv) [rad,-pi,pi]
integer, public ks
start point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazuv_y
virtical area (zuv, normal y) [m2]
real(rp), dimension(:,:,:,:), allocatable, public atmos_grid_cartesc_real_f2h
coefficient for interpolation from full to half levels
real(rp), dimension(:,:), allocatable, public topography_zsfc
absolute ground height [m]
integer, public prc_nprocs
myrank in local communicator
subroutine, public interp_vert_setcoef(KA, KS, KE, IA, IS, IE, JA, JS, JE, TOPO_exist, Xi, Xih, Z, Zh)
Setup.
subroutine, public atmos_grid_cartesc_real_calc_z
Convert Xi to Z coordinate.
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_fz
face coordinate [m]: z, local
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonuv
longitude at staggered point (uv) [rad,0-2pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxy_x
virtical area (zxy, normal x) [m2]
integer, public js
start point of inner domain: y, local
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cy
center coordinate [m]: y, local
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_real_totareazuy_x
total area (zuy, normal x) [m2]
real(rp), public atmos_grid_cartesc_real_totareaxv
total area (xv, local) [m2]
real(rp), public const_d2r
degree to radian
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_phi
geopotential [m2/s2] (cell center)
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_areaxv
horizontal area ( xv, normal z) [m2]
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cdx
x-length of control volume [m]
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lat
latitude [rad,-pi,pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fz
geopotential height [m] (wxy)
real(rp), public atmos_grid_cartesc_real_totvol
total volume (zxy, local) [m3]
module atmosphere / grid / cartesC
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cz
center coordinate [m]: z, local
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_areazxv_y
virtical area (zxv, normal y) [m2]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fzuv
geopotential height [m] (wuv)
module INTERPOLATION vertical
integer, public io_fid_conf
Config file ID.
integer, public je
end point of inner domain: y, local
logical, public prc_twod
2D experiment
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_cx
center coordinate [m]: x, local
logical, public prc_ismaster
master process in local communicator?
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_lonuy
longitude at staggered point (uy) [rad,0-2pi]
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_czuy
geopotential height [m] (zuy)
real(rp), dimension(:), allocatable, public atmos_grid_cartesc_real_totareazxv_y
total area (zxv, normal y) [m2]