Go to the documentation of this file.
32 integer,
public,
parameter ::
zdir = 1
33 integer,
public,
parameter ::
xdir = 2
34 integer,
public,
parameter ::
ydir = 3
36 integer,
public ::
kmax = -1
37 integer,
public ::
imax = -1
38 integer,
public ::
jmax = -1
43 integer,
public,
parameter ::
khalo = 2
64 integer,
public ::
isb
65 integer,
public ::
ieb
66 integer,
public ::
jsb
67 integer,
public ::
jeb
68 integer,
public ::
ieh
69 integer,
public ::
jeh
74 integer,
public ::
iag
75 integer,
public ::
jag
99 integer,
public ::
i_xy = 1
116 KHALO, IHALO, JHALO, &
121 integer,
intent(in),
optional ::
kmax
123 integer,
intent(in),
optional ::
imax,
jmax
154 IMAXG_in, JMAXG_in, &
156 KHALO_in, IHALO_in, JHALO_in, &
157 IBLOCK_in, JBLOCK_in )
173 integer,
intent(in),
optional :: KMAX_in
174 integer,
intent(in),
optional :: IMAXG_in, JMAXG_in
175 integer,
intent(in),
optional :: IMAX_in, JMAX_in
176 integer,
intent(in),
optional :: KHALO_in, IHALO_in, JHALO_in
177 integer,
intent(in),
optional :: IBLOCK_in, JBLOCK_in
179 namelist / param_atmos_grid_cartesc_index / &
199 if (
present(kmax_in) )
kmax = kmax_in
200 if (
present(imaxg_in) )
imaxg = imaxg_in
201 if (
present(jmaxg_in) )
jmaxg = jmaxg_in
202 if (
present(imax_in) )
imax = imax_in
203 if (
present(jmax_in) )
jmax = jmax_in
205 if (
present(ihalo_in) )
ihalo = ihalo_in
206 if (
present(jhalo_in) )
jhalo = jhalo_in
207 if (
present(iblock_in) )
iblock = iblock_in
208 if (
present(jblock_in) )
jblock = jblock_in
211 log_info(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Setup'
215 read(
io_fid_conf,nml=param_atmos_grid_cartesc_index,iostat=ierr)
217 log_info(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Not found namelist. Default used.'
218 elseif( ierr > 0 )
then
219 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Not appropriate names in namelist PARAM_ATMOS_GRID_CARTESC_INDEX. Check!'
222 log_nml(param_atmos_grid_cartesc_index)
225 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'KMAX must be >= 2! ',
kmax
231 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Both IMAXG and JMAXG must set! ',
imaxg,
jmaxg
235 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Both IMAX and JMAX must set! ',
imax,
jmax
247 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of IMAXG should be divisible by PRC_NUM_X'
258 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of JMAXG should be divisible by PRC_NUM_Y'
268 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'IMAXG&JMAXG or IMAX&JMAX must set!'
274 if (
imaxg == 1 )
then
283 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of grid size IMAX must >= IHALO! ',
imax,
ihalo
287 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of grid size JMAX must >= JHALO! ',
jmax,
jhalo
311 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of grid size IMAX must be divisible by IBLOCK! ',
imax,
iblock
314 log_error(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'number of grid size JMAX must be divisible by JBLOCK! ',
jmax,
jblock
414 log_info(
"ATMOS_GRID_CARTESC_index_setup_main",*)
'Atmosphere grid index information '
417 log_info_cont(
'(1x,3(A,I6))')
'No. of Computational Grid (global) :', &
419 log_info_cont(
'(1x,2(A,I6))')
'Global index of local grid (X) :', &
421 log_info_cont(
'(1x,2(A,I6))')
'Global index of local grid (Y) :', &
426 log_info_cont(
'(1x,3(A,I6))')
'No. of Computational Grid (local) :', &
428 log_info_cont(
'(1x,3(A,I6))')
'No. of Grid (including HALO, local) :', &
430 log_info_cont(
'(1x,2(A,I6))')
'Local index of inner grid (X) :', &
432 log_info_cont(
'(1x,2(A,I6))')
'Local index of inner grid (Y) :', &
integer, public ke
end point of inner domain: z, local
subroutine, public prc_abort
Abort Process.
integer, public iega
end point of the full domain: cx, global
logical, public prc_has_s
logical, public prc_periodic_y
periodic condition or not (Y)?
integer, public isga
start point of the full domain: cx, global
integer, public isgb
start point of the inner domain: x, global
integer, public jblock
block size for cache blocking: y
integer, public iegb
end point of the inner domain: x, global
integer, public iblock
block size for cache blocking: x
integer, public prc_myrank
process num in local communicator
integer, public jega
end point of the full domain: cy, global
integer, public jeh
end point of inner domain: y, local (half level)
integer, parameter, public khalo
integer, public je_ing
end point of the inner domain: cy, global
integer, public jsgb
start point of the inner domain: y, global
logical, public prc_has_n
logical, public prc_has_e
integer, public jegb
end point of the inner domain: y, global
integer, public ie
end point of inner domain: x, local
logical, public prc_periodic_x
periodic condition or not (X)?
integer, public js_ing
start point of the inner domain: cy, global
module atmosphere / grid / cartesC index
integer, public ie_ing
end point of the inner domain: cx, global
integer, dimension(:,:), allocatable, public prc_2drank
node index in 2D topology
integer, parameter, public zdir
integer, public is_ing
start point of the inner domain: cx, global
integer, public ieh
end point of inner domain: x, local (half level)
integer, public is
start point of inner domain: x, local
integer, parameter, public xdir
subroutine, public atmos_grid_cartesc_index_setup(KMAX, IMAXG, JMAXG, IMAX, JMAX, KHALO, IHALO, JHALO, IBLOCK, JBLOCK)
setup index
integer, public ks
start point of inner domain: z, local
integer, public js
start point of inner domain: y, local
integer, public prc_num_y
y length of 2D processor topology
integer, parameter, public ydir
integer, public prc_num_x
x length of 2D processor topology
subroutine atmos_grid_cartesc_index_setup_main(KMAX_in, IMAXG_in, JMAXG_in, IMAX_in, JMAX_in, KHALO_in, IHALO_in, JHALO_in, IBLOCK_in, JBLOCK_in)
logical, public prc_has_w
integer, public io_fid_conf
Config file ID.
integer, public je
end point of inner domain: y, local
logical, public prc_twod
2D experiment
integer, public jsga
start point of the full domain: cy, global