SCALE-RM
scale_atmos_grid_cartesC_index.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
10 !-------------------------------------------------------------------------------
11 #include "scalelib.h"
13  !-----------------------------------------------------------------------------
14  !
15  !++ used modules
16  !
17  use scale_precision
18  use scale_io
19  !-----------------------------------------------------------------------------
20  implicit none
21  private
22  !-----------------------------------------------------------------------------
23  !
24  !++ Public procedure
25  !
27  !-----------------------------------------------------------------------------
28  !
29  !++ Public parameters & variables
30  !
31 
32  integer, public, parameter :: zdir = 1
33  integer, public, parameter :: xdir = 2
34  integer, public, parameter :: ydir = 3
35 
36  integer, public :: kmax = -1
37  integer, public :: imax = -1
38  integer, public :: jmax = -1
39 
40  integer, public :: iblock = -1
41  integer, public :: jblock = -1
42 
43  integer, public, parameter :: khalo = 2
44  integer, public :: ihalo = 2
45  integer, public :: jhalo = 2
46 
47  integer, public :: ka
48  integer, public :: ia
49  integer, public :: ja
50 
51  integer, public :: ks
52  integer, public :: ke
53  integer, public :: is
54  integer, public :: ie
55  integer, public :: js
56  integer, public :: je
57 
58  integer, public :: kijmax = -1
59 
60  ! indices considering boundary
61  integer, public :: imaxb
62  integer, public :: jmaxb
63  integer, public :: isb
64  integer, public :: ieb
65  integer, public :: jsb
66  integer, public :: jeb
67  integer, public :: ieh
68  integer, public :: jeh
69 
70  ! global size and offset
71  integer, public :: imaxg = -1
72  integer, public :: jmaxg = -1
73  integer, public :: iag
74  integer, public :: jag
75  integer, public :: iagb
76  integer, public :: jagb
77  integer, public :: is_ing
78  integer, public :: ie_ing
79  integer, public :: js_ing
80  integer, public :: je_ing
81  integer, public :: isga
82  integer, public :: iega
83  integer, public :: jsga
84  integer, public :: jega
85  integer, public :: isgb
86  integer, public :: iegb
87  integer, public :: jsgb
88  integer, public :: jegb
89 
90  integer, public :: i_xyz = 1 ! at (x,y,z)
91  integer, public :: i_xyw = 2 ! at (x,y,w)
92  integer, public :: i_uyw = 3 ! at (u,y,w)
93  integer, public :: i_xvw = 4 ! at (x,v,w)
94  integer, public :: i_uyz = 5 ! at (u,y,z)
95  integer, public :: i_xvz = 6 ! at (x,v,z)
96  integer, public :: i_uvz = 7 ! at (u,v,z)
97 
98  integer, public :: i_xy = 1 ! at (x,y)
99  integer, public :: i_uy = 2 ! at (u,y)
100  integer, public :: i_xv = 3 ! at (x,v)
101  integer, public :: i_uv = 4 ! at (u,v)
102 
103  integer, public :: i_fyz = 1 ! y-z face limiting x-flux
104  integer, public :: i_fxz = 2 ! x-z face limiting y-flux
105  integer, public :: i_fxy = 3 ! x-y face limiting z-flux
106 
107 contains
108 
109  !-----------------------------------------------------------------------------
111  subroutine atmos_grid_cartesc_index_setup( &
112  KMAX, &
113  IMAXG, JMAXG, &
114  IMAX, JMAX, &
115  KHALO, IHALO, JHALO, &
116  IBLOCK, JBLOCK )
117  use scale_prc_cartesc, only: &
118  prc_twod
119  implicit none
120  integer, intent(in), optional :: kmax
121  integer, intent(in), optional :: imaxg, jmaxg
122  integer, intent(in), optional :: imax, jmax
123  integer, intent(in), optional :: khalo, ihalo, jhalo
124  integer, intent(in), optional :: iblock, jblock
125 
127  kmax, &
128  imaxg, jmaxg, &
129  imax, jmax, &
130  khalo, ihalo, jhalo, &
131  iblock, jblock )
132 
133  if ( prc_twod ) then
134  i_xyz = 1
135  i_xyw = 2
136  i_xvw = 3
137  i_xvz = 4
138  i_uyw = i_xyw
139  i_uyz = i_xyz
140  i_uvz = i_xvz
141 
142  i_xy = 1
143  i_xv = 2
144  i_uy = i_xy
145  i_uv = i_xv
146  end if
147 
148  return
149  end subroutine atmos_grid_cartesc_index_setup
150 
152  KMAX_in, &
153  IMAXG_in, JMAXG_in, &
154  IMAX_in, JMAX_in, &
155  KHALO_in, IHALO_in, JHALO_in, &
156  IBLOCK_in, JBLOCK_in )
157  use scale_prc, only: &
158  prc_abort, &
159  prc_myrank
160  use scale_prc_cartesc, only: &
161  prc_periodic_x, &
162  prc_periodic_y, &
163  prc_twod, &
164  prc_2drank, &
165  prc_num_x, &
166  prc_num_y, &
167  prc_has_w, &
168  prc_has_e, &
169  prc_has_s, &
170  prc_has_n
171  implicit none
172  integer, intent(in), optional :: KMAX_in
173  integer, intent(in), optional :: IMAXG_in, JMAXG_in
174  integer, intent(in), optional :: IMAX_in, JMAX_in
175  integer, intent(in), optional :: KHALO_in, IHALO_in, JHALO_in
176  integer, intent(in), optional :: IBLOCK_in, JBLOCK_in
177 
178  namelist / param_atmos_grid_cartesc_index / &
179  kmax, &
180  imaxg, &
181  jmaxg, &
182  imax, &
183  jmax, &
184  ihalo, &
185  jhalo, &
186  iblock, &
187  jblock
188 
189  integer :: ierr
190  !---------------------------------------------------------------------------
191 
192  if ( present(kmax_in) ) kmax = kmax_in
193  if ( present(imaxg_in) ) imaxg = imaxg_in
194  if ( present(jmaxg_in) ) jmaxg = jmaxg_in
195  if ( present(imax_in) ) imax = imax_in
196  if ( present(jmax_in) ) jmax = jmax_in
197 ! if ( present(KHALO_in) ) KHALO = KHALO_in
198  if ( present(ihalo_in) ) ihalo = ihalo_in
199  if ( present(jhalo_in) ) jhalo = jhalo_in
200  if ( present(iblock_in) ) iblock = iblock_in
201  if ( present(jblock_in) ) jblock = jblock_in
202 
203  log_newline
204  log_info("ATMOS_GRID_CARTESC_index_setup_main",*) 'Setup'
205 
206  !--- read namelist
207  rewind(io_fid_conf)
208  read(io_fid_conf,nml=param_atmos_grid_cartesc_index,iostat=ierr)
209  if( ierr < 0 ) then !--- missing
210  log_info("ATMOS_GRID_CARTESC_index_setup_main",*) 'Not found namelist. Default used.'
211  elseif( ierr > 0 ) then !--- fatal error
212  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'Not appropriate names in namelist PARAM_ATMOS_GRID_CARTESC_INDEX. Check!'
213  call prc_abort
214  endif
215  log_nml(param_atmos_grid_cartesc_index)
216 
217  if ( kmax < 2 ) then
218  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'KMAX must be >= 2! ', kmax
219  call prc_abort
220  end if
221 
222 
223  if ( imaxg * jmaxg < 0 ) then
224  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'Both IMAXG and JMAXG must set! ', imaxg, jmaxg
225  call prc_abort
226  endif
227  if ( imax * jmax < 0 ) then
228  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'Both IMAX and JMAX must set! ', imax, jmax
229  call prc_abort
230  endif
231 
232  if ( imax > 0 .AND. jmax > 0 ) then
233  imaxg = imax * prc_num_x
234  jmaxg = jmax * prc_num_y
235  elseif( imaxg > 0 .AND. jmaxg > 0 ) then
236  imax = (imaxg-1) / prc_num_x + 1
237  jmax = (jmaxg-1) / prc_num_y + 1
238 
239  if ( mod(imaxg,prc_num_x) > 0 ) then
240  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of IMAXG should be divisible by PRC_NUM_X'
241  call prc_abort
242 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of IMAXG should be divisible by PRC_NUM_X'
243 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'Small IMAX is used in ranks(X,*)=', PRC_NUM_X-1
244 ! if ( PRC_2Drank(PRC_myrank,1) == PRC_NUM_X-1 ) then
245 ! IMAX = IMAXG - IMAX * (PRC_NUM_X-1)
246 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'Small IMAX is used in this rank. IMAX=', IMAX
247 ! endif
248  endif
249 
250  if ( mod(jmaxg,prc_num_y) > 0 ) then
251  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of JMAXG should be divisible by PRC_NUM_Y'
252  call prc_abort
253 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of JMAXG should be divisible by PRC_NUM_Y'
254 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'Small JMAX is used in ranks(*,Y)=', PRC_NUM_Y-1
255 ! if ( PRC_2Drank(PRC_myrank,2) == PRC_NUM_Y-1 ) then
256 ! JMAX = JMAXG - JMAX * (PRC_NUM_Y-1)
257 ! LOG_INFO("ATMOS_GRID_CARTESC_index_setup_main",*) 'Small JMAX is used in this rank. JMAX=', JMAX
258 ! endif
259  endif
260  else
261  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'IMAXG&JMAXG or IMAX&JMAX must set!'
262  call prc_abort
263  endif
264 
265 
266  ! check if this is 2D experiment
267  if ( imaxg == 1 ) then
268  prc_twod = .true.
269  ihalo = 0
270  else
271  prc_twod = .false.
272  end if
273 
274 
275  if ( imax < ihalo ) then
276  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of grid size IMAX must >= IHALO! ', imax, ihalo
277  call prc_abort
278  endif
279  if ( jmax < jhalo ) then
280  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of grid size JMAX must >= JHALO! ', jmax, jhalo
281  call prc_abort
282  endif
283 
284  ka = kmax + khalo * 2
285  ia = imax + ihalo * 2
286  ja = jmax + jhalo * 2
287 
288  ks = 1 + khalo
289  ke = kmax + khalo
290  is = 1 + ihalo
291  ie = imax + ihalo
292  js = 1 + jhalo
293  je = jmax + jhalo
294 
295  if( iblock == -1 ) iblock = imax
296  if( jblock == -1 ) jblock = jmax
297 
298  kijmax = kmax * imax * jmax
299 
300 
301  !-- Block size must be divisible
302  if ( mod(imax,iblock) > 0 ) then
303  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of grid size IMAX must be divisible by IBLOCK! ', imax, iblock
304  call prc_abort
305  elseif( mod(jmax,jblock) > 0 ) then
306  log_error("ATMOS_GRID_CARTESC_index_setup_main",*) 'number of grid size JMAX must be divisible by JBLOCK! ', jmax, jblock
307  call prc_abort
308  endif
309 
310  ! array size (global domain)
311  iag = imaxg + ihalo * 2
312  jag = jmaxg + jhalo * 2
313 
314  ! horizontal index (global domain)
315  is_ing = ihalo + 1 + prc_2drank(prc_myrank,1) * imax
317  js_ing = jhalo + 1 + prc_2drank(prc_myrank,2) * jmax
319 
320  if ( prc_2drank(prc_myrank,1) == 0 ) then
321  isga = 1
322  else
323  isga = is_ing
324  end if
325  if ( prc_2drank(prc_myrank,1) == prc_num_x - 1 ) then
326  iega = iag
327  else
328  iega = ie_ing
329  end if
330  if ( prc_2drank(prc_myrank,2) == 0 ) then
331  jsga = 1
332  else
333  jsga = js_ing
334  end if
335  if ( prc_2drank(prc_myrank,2) == prc_num_y - 1 ) then
336  jega = jag
337  else
338  jega = je_ing
339  end if
340 
341  if ( prc_periodic_x .or. prc_twod ) then
342  iagb = imaxg
343  isgb = is_ing - ihalo
344  iegb = ie_ing - ihalo
345  else
346  iagb = iag
347  if ( prc_has_w ) then
348  isgb = is_ing
349  else ! western boundary
350  isgb = is_ing - ihalo ! ISGB = 1
351  end if
352  if ( prc_has_e ) then
353  iegb = ie_ing
354  else ! eastern boundary
355  iegb = ie_ing + ihalo
356  end if
357  end if
358  if ( prc_periodic_y ) then
359  jagb = jmaxg
360  jsgb = js_ing - jhalo
361  jegb = je_ing - jhalo
362  else
363  jagb = jag
364  if ( prc_has_s ) then
365  jsgb = js_ing
366  else ! southern boundary
367  jsgb = js_ing - jhalo ! JSGY = 1
368  end if
369  if ( prc_has_n ) then
370  jegb = je_ing
371  else ! northern boundary
372  jegb = je_ing + jhalo
373  end if
374  end if
375 
376  ! index considering boundary region
377  imaxb = imax
378  jmaxb = jmax
379  isb = is
380  ieb = ie
381  jsb = js
382  jeb = je
383  ieh = ie
384  jeh = je
385 
386  if ( .NOT. prc_has_w ) then
387  imaxb = imaxb + ihalo
388  isb = 1
389  endif
390  if ( .NOT. prc_has_e ) then
391  imaxb = imaxb + ihalo
392  ieb = ia
393  ieh = ie - 1
394  endif
395  if ( .NOT. prc_has_s ) then
396  jmaxb = jmaxb + jhalo
397  jsb = 1
398  endif
399  if ( .NOT. prc_has_n ) then
400  jmaxb = jmaxb + jhalo
401  jeb = ja
402  jeh = je - 1
403  endif
404 
405  log_newline
406  log_info("ATMOS_GRID_CARTESC_index_setup_main",*) 'Atmosphere grid index information '
407 
408  ! global
409  log_info_cont('(1x,3(A,I6))') 'No. of Computational Grid (global) :', &
410  kmax,' x ',imaxg,' x ',jmaxg
411  log_info_cont('(1x,2(A,I6))') 'Global index of local grid (X) :', &
412  is_ing," - ",ie_ing
413  log_info_cont('(1x,2(A,I6))') 'Global index of local grid (Y) :', &
414  js_ing," - ",je_ing
415 
416  ! local
417  log_newline
418  log_info_cont('(1x,3(A,I6))') 'No. of Computational Grid (local) :', &
419  kmax,' x ',imax,' x ',jmax
420  log_info_cont('(1x,3(A,I6))') 'No. of Grid (including HALO, local) :', &
421  ka," x ",ia," x ",ja
422  log_info_cont('(1x,2(A,I6))') 'Local index of inner grid (X) :', &
423  isb," - ",ieb
424  log_info_cont('(1x,2(A,I6))') 'Local index of inner grid (Y) :', &
425  jsb," - ",jeb
426 
427  return
429 
scale_atmos_grid_cartesc_index::isb
integer, public isb
Definition: scale_atmos_grid_cartesC_index.F90:63
scale_atmos_grid_cartesc_index::jagb
integer, public jagb
Definition: scale_atmos_grid_cartesC_index.F90:76
scale_atmos_grid_cartesc_index::i_uy
integer, public i_uy
Definition: scale_atmos_grid_cartesC_index.F90:99
scale_atmos_grid_cartesc_index::ke
integer, public ke
end point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:52
scale_atmos_grid_cartesc_index::i_xv
integer, public i_xv
Definition: scale_atmos_grid_cartesC_index.F90:100
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_atmos_grid_cartesc_index::iega
integer, public iega
end point of the full domain: cx, global
Definition: scale_atmos_grid_cartesC_index.F90:82
scale_atmos_grid_cartesc_index::ihalo
integer, public ihalo
Definition: scale_atmos_grid_cartesC_index.F90:44
scale_atmos_grid_cartesc_index::jmaxb
integer, public jmaxb
Definition: scale_atmos_grid_cartesC_index.F90:62
scale_prc_cartesc::prc_has_s
logical, public prc_has_s
Definition: scale_prc_cartesC.F90:50
scale_atmos_grid_cartesc_index::i_fxy
integer, public i_fxy
Definition: scale_atmos_grid_cartesC_index.F90:105
scale_prc_cartesc::prc_periodic_y
logical, public prc_periodic_y
periodic condition or not (Y)?
Definition: scale_prc_cartesC.F90:53
scale_precision
module PRECISION
Definition: scale_precision.F90:14
scale_atmos_grid_cartesc_index::ka
integer, public ka
Definition: scale_atmos_grid_cartesC_index.F90:47
scale_atmos_grid_cartesc_index::isga
integer, public isga
start point of the full domain: cx, global
Definition: scale_atmos_grid_cartesC_index.F90:81
scale_atmos_grid_cartesc_index::isgb
integer, public isgb
start point of the inner domain: x, global
Definition: scale_atmos_grid_cartesC_index.F90:85
scale_atmos_grid_cartesc_index::i_fyz
integer, public i_fyz
Definition: scale_atmos_grid_cartesC_index.F90:103
scale_atmos_grid_cartesc_index::jblock
integer, public jblock
block size for cache blocking: y
Definition: scale_atmos_grid_cartesC_index.F90:41
scale_atmos_grid_cartesc_index::i_uv
integer, public i_uv
Definition: scale_atmos_grid_cartesC_index.F90:101
scale_atmos_grid_cartesc_index::iegb
integer, public iegb
end point of the inner domain: x, global
Definition: scale_atmos_grid_cartesC_index.F90:86
scale_atmos_grid_cartesc_index::iblock
integer, public iblock
block size for cache blocking: x
Definition: scale_atmos_grid_cartesC_index.F90:40
scale_prc::prc_myrank
integer, public prc_myrank
process num in local communicator
Definition: scale_prc.F90:90
scale_atmos_grid_cartesc_index::jega
integer, public jega
end point of the full domain: cy, global
Definition: scale_atmos_grid_cartesC_index.F90:84
scale_atmos_grid_cartesc_index::jeh
integer, public jeh
end point of inner domain: y, local (half level)
Definition: scale_atmos_grid_cartesC_index.F90:68
scale_atmos_grid_cartesc_index::khalo
integer, parameter, public khalo
Definition: scale_atmos_grid_cartesC_index.F90:43
scale_atmos_grid_cartesc_index::i_fxz
integer, public i_fxz
Definition: scale_atmos_grid_cartesC_index.F90:104
scale_atmos_grid_cartesc_index::imaxg
integer, public imaxg
Definition: scale_atmos_grid_cartesC_index.F90:71
scale_atmos_grid_cartesc_index::je_ing
integer, public je_ing
end point of the inner domain: cy, global
Definition: scale_atmos_grid_cartesC_index.F90:80
scale_atmos_grid_cartesc_index::jsgb
integer, public jsgb
start point of the inner domain: y, global
Definition: scale_atmos_grid_cartesC_index.F90:87
scale_atmos_grid_cartesc_index::imax
integer, public imax
Definition: scale_atmos_grid_cartesC_index.F90:37
scale_atmos_grid_cartesc_index::jmaxg
integer, public jmaxg
Definition: scale_atmos_grid_cartesC_index.F90:72
scale_prc_cartesc::prc_has_n
logical, public prc_has_n
Definition: scale_prc_cartesC.F90:48
scale_atmos_grid_cartesc_index::jeb
integer, public jeb
Definition: scale_atmos_grid_cartesC_index.F90:66
scale_atmos_grid_cartesc_index::i_xyz
integer, public i_xyz
Definition: scale_atmos_grid_cartesC_index.F90:90
scale_prc_cartesc::prc_has_e
logical, public prc_has_e
Definition: scale_prc_cartesC.F90:49
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_atmos_grid_cartesc_index::jegb
integer, public jegb
end point of the inner domain: y, global
Definition: scale_atmos_grid_cartesC_index.F90:88
scale_atmos_grid_cartesc_index::i_xy
integer, public i_xy
Definition: scale_atmos_grid_cartesC_index.F90:98
scale_atmos_grid_cartesc_index::ie
integer, public ie
end point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:54
scale_atmos_grid_cartesc_index::i_uyz
integer, public i_uyz
Definition: scale_atmos_grid_cartesC_index.F90:94
scale_io
module STDIO
Definition: scale_io.F90:10
scale_atmos_grid_cartesc_index::jag
integer, public jag
Definition: scale_atmos_grid_cartesC_index.F90:74
scale_atmos_grid_cartesc_index::iag
integer, public iag
Definition: scale_atmos_grid_cartesC_index.F90:73
scale_prc_cartesc::prc_periodic_x
logical, public prc_periodic_x
periodic condition or not (X)?
Definition: scale_prc_cartesC.F90:52
scale_atmos_grid_cartesc_index::js_ing
integer, public js_ing
start point of the inner domain: cy, global
Definition: scale_atmos_grid_cartesC_index.F90:79
scale_atmos_grid_cartesc_index::i_xvw
integer, public i_xvw
Definition: scale_atmos_grid_cartesC_index.F90:93
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_atmos_grid_cartesc_index::ia
integer, public ia
Definition: scale_atmos_grid_cartesC_index.F90:48
scale_atmos_grid_cartesc_index::ie_ing
integer, public ie_ing
end point of the inner domain: cx, global
Definition: scale_atmos_grid_cartesC_index.F90:78
scale_prc_cartesc::prc_2drank
integer, dimension(:,:), allocatable, public prc_2drank
node index in 2D topology
Definition: scale_prc_cartesC.F90:44
scale_atmos_grid_cartesc_index::kmax
integer, public kmax
Definition: scale_atmos_grid_cartesC_index.F90:36
scale_atmos_grid_cartesc_index::zdir
integer, parameter, public zdir
Definition: scale_atmos_grid_cartesC_index.F90:32
scale_atmos_grid_cartesc_index::is_ing
integer, public is_ing
start point of the inner domain: cx, global
Definition: scale_atmos_grid_cartesC_index.F90:77
scale_atmos_grid_cartesc_index::i_xvz
integer, public i_xvz
Definition: scale_atmos_grid_cartesC_index.F90:95
scale_prc_cartesc
module process / cartesC
Definition: scale_prc_cartesC.F90:11
scale_atmos_grid_cartesc_index::ieh
integer, public ieh
end point of inner domain: x, local (half level)
Definition: scale_atmos_grid_cartesC_index.F90:67
scale_atmos_grid_cartesc_index::i_uyw
integer, public i_uyw
Definition: scale_atmos_grid_cartesC_index.F90:92
scale_atmos_grid_cartesc_index::is
integer, public is
start point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:53
scale_atmos_grid_cartesc_index::jhalo
integer, public jhalo
Definition: scale_atmos_grid_cartesC_index.F90:45
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_atmos_grid_cartesc_index::xdir
integer, parameter, public xdir
Definition: scale_atmos_grid_cartesC_index.F90:33
scale_atmos_grid_cartesc_index::atmos_grid_cartesc_index_setup
subroutine, public atmos_grid_cartesc_index_setup(KMAX, IMAXG, JMAXG, IMAX, JMAX, KHALO, IHALO, JHALO, IBLOCK, JBLOCK)
setup index
Definition: scale_atmos_grid_cartesC_index.F90:117
scale_atmos_grid_cartesc_index::ks
integer, public ks
start point of inner domain: z, local
Definition: scale_atmos_grid_cartesC_index.F90:51
scale_atmos_grid_cartesc_index::imaxb
integer, public imaxb
Definition: scale_atmos_grid_cartesC_index.F90:61
scale_atmos_grid_cartesc_index::iagb
integer, public iagb
Definition: scale_atmos_grid_cartesC_index.F90:75
scale_atmos_grid_cartesc_index::jmax
integer, public jmax
Definition: scale_atmos_grid_cartesC_index.F90:38
scale_atmos_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
scale_prc_cartesc::prc_num_y
integer, public prc_num_y
y length of 2D processor topology
Definition: scale_prc_cartesC.F90:42
scale_atmos_grid_cartesc_index::ydir
integer, parameter, public ydir
Definition: scale_atmos_grid_cartesC_index.F90:34
scale_atmos_grid_cartesc_index::ieb
integer, public ieb
Definition: scale_atmos_grid_cartesC_index.F90:64
scale_prc_cartesc::prc_num_x
integer, public prc_num_x
x length of 2D processor topology
Definition: scale_prc_cartesC.F90:41
scale_atmos_grid_cartesc_index::atmos_grid_cartesc_index_setup_main
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)
Definition: scale_atmos_grid_cartesC_index.F90:157
scale_atmos_grid_cartesc_index::i_uvz
integer, public i_uvz
Definition: scale_atmos_grid_cartesC_index.F90:96
scale_atmos_grid_cartesc_index::jsb
integer, public jsb
Definition: scale_atmos_grid_cartesC_index.F90:65
scale_prc_cartesc::prc_has_w
logical, public prc_has_w
Definition: scale_prc_cartesC.F90:47
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:56
scale_atmos_grid_cartesc_index::kijmax
integer, public kijmax
Definition: scale_atmos_grid_cartesC_index.F90:58
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56
scale_prc_cartesc::prc_twod
logical, public prc_twod
2D experiment
Definition: scale_prc_cartesC.F90:55
scale_atmos_grid_cartesc_index::jsga
integer, public jsga
start point of the full domain: cy, global
Definition: scale_atmos_grid_cartesC_index.F90:83
scale_atmos_grid_cartesc_index::i_xyw
integer, public i_xyw
Definition: scale_atmos_grid_cartesC_index.F90:91