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