40 real(RP),
public,
allocatable ::
real_cz (:,:,:)
41 real(RP),
public,
allocatable ::
real_fz (:,:,:)
55 real(RP),
public,
allocatable ::
real_z1 (:,:)
59 real(RP),
public,
allocatable ::
real_phi (:,:,:)
62 real(RP),
public,
allocatable ::
real_vol (:,:,:)
73 private :: real_calc_latlon
74 private :: real_calc_z
127 call real_calc_latlon
166 subroutine real_calc_latlon
189 real(RP),
allocatable :: mine(:,:)
190 real(RP),
allocatable :: whole(:,:)
192 real(RP) :: CX, CY, FX, FY
194 integer,
parameter :: I_LON = 1
195 integer,
parameter :: I_LAT = 2
196 integer,
parameter :: I_NW = 1
197 integer,
parameter :: I_NE = 2
198 integer,
parameter :: I_SW = 3
199 integer,
parameter :: I_SE = 4
201 character(len=H_LONG) :: DOMAIN_CATALOGUE_FNAME =
'latlon_domain_catalogue.txt' 202 logical :: DOMAIN_CATALOGUE_OUTPUT = .false.
204 namelist / param_domain_catalogue / &
205 domain_catalogue_fname, &
206 domain_catalogue_output
214 read(
io_fid_conf,nml=param_domain_catalogue,iostat=ierr)
216 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 217 elseif( ierr > 0 )
then 218 write(*,*)
'xxx Not appropriate names in namelist PARAM_DOMAIN_CATALOGUE. Check!' 227 if(
io_l )
write(
io_fid_log,*)
'*** Base position in the global domain' 255 if(
io_l )
write(
io_fid_log,*)
'*** Position on the earth (Local)' 256 if(
io_l )
write(
io_fid_log,
'(1x,A,F10.5,A,F9.5,A,A,F10.5,A,F9.5,A)') &
261 if(
io_l )
write(
io_fid_log,
'(1x,A,F10.5,A,F9.5,A,A,F10.5,A,F9.5,A)') &
266 allocate( mine(4, 2 ) )
278 call comm_gather( whole, mine, 4, 2 )
281 if( domain_catalogue_output )
then 284 file = trim(domain_catalogue_fname), &
285 form =
'formatted', &
286 status =
'replace', &
289 if ( ierr /= 0 )
then 290 if(
io_l )
write(*,*)
'xxx cannot create latlon-catalogue file!' 295 write(fid,
'(i8,8f32.24)',iostat=ierr) i, whole(i_nw,i_lon+2*(i-1)), whole(i_ne,i_lon+2*(i-1)), &
296 whole(i_sw,i_lon+2*(i-1)), whole(i_se,i_lon+2*(i-1)), &
297 whole(i_nw,i_lat+2*(i-1)), whole(i_ne,i_lat+2*(i-1)), &
298 whole(i_sw,i_lat+2*(i-1)), whole(i_se,i_lat+2*(i-1))
299 if ( ierr /= 0 )
exit 319 end subroutine real_calc_latlon
323 subroutine real_calc_z
346 real_cz(k,i,j) = ( htop - zsfc(i,j) ) / htop *
grid_cz(k) + zsfc(i,j)
354 real_fz(k,i,j) = ( htop - zsfc(i,j) ) / htop *
grid_fz(k) + zsfc(i,j)
376 if(
io_l )
write(
io_fid_log,*)
'*** Minimum & maximum aspect ratio' 380 end subroutine real_calc_z
393 real(RP),
intent(in) :: MAPF(
ia,
ja,2)
integer, public is
start point of inner domain: x, local
real(rp), public grid_domain_center_x
center position of global domain [m]: x
integer, public je
end point of inner domain: y, local
logical, public prc_ismaster
master process in local communicator?
real(rp), public dy
length in the main region [m]: y
subroutine, public prc_mpistop
Abort MPI.
real(rp), public real_basepoint_lat
position of base point in real world [rad,-pi,pi]
real(rp), public mprj_basepoint_lat
real(rp), public dx
length in the main region [m]: x
logical, public io_l
output log or not? (this process)
real(rp), dimension(:), allocatable, public grid_cz
center coordinate [m]: z, local=global
subroutine, public mprj_xy2lonlat(x, y, lon, lat)
(x,y) -> (lon,lat)
real(rp), public const_radius
radius of the planet [m]
integer, public ke
end point of inner domain: z, local
real(rp), dimension(:,:,:), allocatable, public real_fz
geopotential height [m] (cell face )
real(rp), public real_aspect_max
maximum aspect ratio of the grid cell
real(rp), dimension(:,:,:), allocatable, public real_cz
geopotential height [m] (cell center)
real(rp), public const_d2r
degree to radian
real(rp), public mprj_basepoint_lon
real(rp), public dz
length in the main region [m]: z
real(rp), dimension(:), allocatable, public grid_fx
face coordinate [m]: x, local
subroutine, public real_setup
Setup.
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:), allocatable, public real_latx
latitude at staggered point (uy) [rad,-pi,pi]
integer function, public io_get_available_fid()
search & get available file ID
real(rp), dimension(:,:), allocatable, public real_z1
Height of the lowermost grid from surface (cell center) [m].
real(rp), dimension(:,:), allocatable, public real_dlon
delta longitude
integer, public ka
of z whole cells (local, with HALO)
real(rp), dimension(:,:), allocatable, public real_area
horizontal area [m2]
real(rp), dimension(:), allocatable, public grid_fz
face coordinate [m]: z, local=global
real(rp), dimension(:,:), allocatable, public real_lonxy
longitude at staggered point (uv) [rad,0-2pi]
real(rp), public real_aspect_min
minimum aspect ratio of the grid cell
real(rp), public const_grav
standard acceleration of gravity [m/s2]
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public real_dlat
delta latitude
real(rp), dimension(:,:,:), allocatable, public real_vol
control volume [m3]
real(rp), public real_totvol
total volume (local) [m3]
integer, public ks
start point of inner domain: z, local
real(rp), dimension(:), allocatable, public grid_cx
center coordinate [m]: x, local
real(rp), dimension(:,:,:), allocatable, public real_domain_catalogue
domain latlon catalogue [rad]
subroutine, public real_update_z
Re-setup with updated topography.
real(rp), public grid_domain_center_y
center position of global domain [m]: y
integer, public ie
end point of inner domain: x, local
subroutine, public real_calc_areavol(MAPF)
Calc control area/volume.
real(rp), dimension(:,:,:), allocatable, public real_phi
geopotential [m2/s2] (cell center)
logical, public io_lnml
output log or not? (for namelist, this process)
real(rp), public real_totarea
total area (local) [m2]
real(rp), dimension(:,:), allocatable, public real_lon
longitude [rad,0-2pi]
real(rp), dimension(:,:), allocatable, public topo_zsfc
absolute ground height [m]
real(rp), dimension(:), allocatable, public grid_cdy
y-length of control volume [m]
subroutine, public fileio_set_coordinates(LON, LONX, LONY, LONXY, LAT, LATX, LATY, LATXY, CZ, FZ)
set latlon and z
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public real_lat
latitude [rad,-pi,pi]
real(rp), dimension(:,:), allocatable, public real_lony
longitude at staggered point (xv) [rad,0-2pi]
integer, public io_fid_log
Log file ID.
subroutine, public mprj_setup(DOMAIN_CENTER_X, DOMAIN_CENTER_Y)
Setup.
integer, public prc_nprocs
myrank in local communicator
real(rp), dimension(:,:), allocatable, public real_latxy
latitude at staggered point (uv) [rad,-pi,pi]
real(rp), dimension(:,:), allocatable, public real_lonx
longitude at staggered point (uy) [rad,0-2pi]
real(rp), dimension(:), allocatable, public grid_cdx
x-length of control volume [m]
real(rp), dimension(:), allocatable, public grid_cy
center coordinate [m]: y, local
real(rp), public real_basepoint_lon
position of base point in real world [rad,0-2pi]
real(rp), dimension(:,:), allocatable, public real_laty
latitude at staggered point (xv) [rad,-pi,pi]
integer, public ja
of y whole cells (local, with HALO)
real(rp), dimension(:), allocatable, public grid_fy
face coordinate [m]: y, local