SCALE-RM
Functions/Subroutines | Variables
scale_atmos_grid_icoa_index Module Reference

module atmosphere / grid / icosahedralA / index More...

Functions/Subroutines

subroutine, public atmos_grid_icoa_index_setup
 setup index More...
 

Variables

integer, parameter, public adm_ti = 1
 
integer, parameter, public adm_tj = 2
 
integer, parameter, public adm_ai = 1
 
integer, parameter, public adm_aij = 2
 
integer, parameter, public adm_aj = 3
 
integer, parameter, public adm_knone = 1
 
integer, parameter, public adm_nxyz = 3
 
integer, parameter, public khalo = 1
 

of halo cells: z

More...
 
integer, public ihalo = 1
 

of halo cells: x

More...
 
integer, public jhalo = 1
 

of halo cells: y

More...
 
integer, public adm_glevel
 
integer, public adm_vlayer
 
integer, public adm_lall
 
integer, parameter, public adm_lall_pl = 2
 
integer, public adm_gall
 
integer, public adm_gall_in
 
integer, public adm_gall_1d
 
integer, public adm_gmin
 
integer, public adm_gmax
 
integer, public adm_iall
 
integer, public adm_imin
 
integer, public adm_imax
 
integer, public adm_jall
 
integer, public adm_jmin
 
integer, public adm_jmax
 
integer, public adm_vlink = -1
 
integer, public adm_gall_pl
 
integer, parameter, public adm_gslf_pl = 1
 
integer, parameter, public adm_gmin_pl = 2
 
integer, public adm_gmax_pl
 
integer, public adm_kall
 
integer, public adm_kmin
 
integer, public adm_kmax
 
integer, public ks
 
integer, public ke
 
integer, public ka
 
integer, public imax = -1
 
integer, parameter, public is = 1
 
integer, public ie
 
integer, public ia
 
integer, public jmax = -1
 
integer, parameter, public js = 1
 
integer, public je
 
integer, public ja
 

Detailed Description

module atmosphere / grid / icosahedralA / index

Description
Atmospheric grid Index module for the icosaphdralA grid
Author
Team SCALE
NAMELIST
  • PARAM_ATMOS_GRID_ICOA_INDEX
    nametypedefault valuecomment
    GRID_LEVEL integer -1 > grid division level
    KMAX integer -1 # of computational cells: z, local

History Output
No history output

Function/Subroutine Documentation

◆ atmos_grid_icoa_index_setup()

subroutine, public scale_atmos_grid_icoa_index::atmos_grid_icoa_index_setup ( )

setup index

Definition at line 112 of file scale_atmos_grid_icoA_index.F90.

References adm_gall, adm_gall_1d, adm_gall_in, adm_gall_pl, adm_glevel, adm_gmax, adm_gmax_pl, adm_gmin, adm_iall, adm_imax, adm_imin, adm_jall, adm_jmax, adm_jmin, adm_kall, adm_kmax, adm_kmin, adm_lall, adm_vlayer, adm_vlink, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::imax, scale_io::io_fid_conf, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jmax, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, scale_prc::prc_abort(), scale_prc_icoa::prc_rgn_level, scale_prc_icoa::prc_rgn_local, scale_prc_icoa::prc_rgn_total, and scale_prc_icoa::prc_rgn_vlink.

112  use scale_prc, only: &
113  prc_abort
114  use scale_prc_icoa, only: &
115  prc_rgn_level, &
116  prc_rgn_total, &
117  prc_rgn_local, &
119  implicit none
120 
121  integer :: grid_level = -1
122  integer :: kmax = -1
123 
124  namelist / param_atmos_grid_icoa_index / &
125  grid_level, &
126  kmax
127 
128  integer :: nmax
129 
130  integer :: ierr
131  !---------------------------------------------------------------------------
132 
133  log_newline
134  log_info("ATMOS_GRID_ICOA_INDEX_setup",*) 'Setup'
135 
136  !--- read namelist
137  rewind(io_fid_conf)
138  read(io_fid_conf,nml=param_atmos_grid_icoa_index,iostat=ierr)
139  if( ierr < 0 ) then !--- missing
140  log_info("ATMOS_GRID_ICOA_INDEX_setup",*) 'Not found namelist. Default used.'
141  elseif( ierr > 0 ) then !--- fatal error
142  log_error("ATMOS_GRID_ICOA_INDEX_setup",*) 'Not appropriate names in namelist PARAM_ATMOS_GRID_ICOA_INDEX. Check!'
143  call prc_abort
144  endif
145  log_nml(param_atmos_grid_icoa_index)
146 
147  ! Error if glevel & rlevel are not defined
148  if ( grid_level < 1 ) then
149  log_error("ATMOS_GRID_ICOA_INDEX_setup",*) 'GRID_LEVEL must be >= 1! ', grid_level
150  call prc_abort
151  endif
152 
153  if ( kmax < 1 ) then
154  log_error("ATMOS_GRID_ICOA_INDEX_setup",*) 'KMAX must be >= 1! ', kmax
155  call prc_abort
156  end if
157 
158  adm_glevel = grid_level
159  adm_vlayer = kmax
160 
161  adm_lall = prc_rgn_local
162 
163  nmax = 2**(grid_level-prc_rgn_level)
164  adm_gall_1d = 1 + nmax + 1
165  adm_gmin = 1 + 1
166  adm_gmax = 1 + nmax
167 
168  adm_gall = ( 1+nmax+1 ) * ( 1+nmax+1 )
169  adm_gall_in = ( nmax+1 ) * ( nmax+1 )
170 
171  adm_imin = 1 + 1
172  adm_imax = 1 + nmax
173  adm_iall = 1 + nmax + 1
174  adm_jmin = 1 + 1
175  adm_jmax = 1 + nmax
176  adm_jall = 1 + nmax + 1
177 
178  adm_vlink = prc_rgn_vlink
179  adm_gall_pl = prc_rgn_vlink + 1
180  adm_gmax_pl = prc_rgn_vlink + 1
181 
182  if ( adm_vlayer == 1 ) then
183  adm_kall = 1
184  adm_kmin = 1
185  adm_kmax = 1
186  else
187  adm_kall = 1 + kmax + 1
188  adm_kmin = 1 + 1
189  adm_kmax = 1 + kmax
190  endif
191 
192  ! for physics grid
193  ks = adm_kmin
194  ke = adm_kmax
195  ka = adm_kall
196 
197  imax = nmax
198  ! IS = 1
199  ie = nmax + 1
200  ia = ie
201 
202  jmax = nmax
203  ! JS = 1
204  je = nmax + 1
205  ja = je
206 
207  log_newline
208  log_info("ATMOS_GRID_ICOA_INDEX_setup",'(1x,A)') 'Grid management information'
209  log_info_cont('(1x,A,I4)' ) 'Grid divisiona level (GL) : ', grid_level
210  log_info_cont('(1x,A,I7,2(A,I4),A,I7,A)') 'Total number of grid (horizontal) : ', &
211  4**(grid_level-prc_rgn_level)*prc_rgn_total, &
212  ' (', 2**(grid_level-prc_rgn_level), &
213  ' x', 2**(grid_level-prc_rgn_level), &
214  ' x', prc_rgn_total, ' ) + 2 (pole)'
215  log_info_cont('(1x,A,I7)') 'Number of vertical layer : ', adm_kmax-adm_kmin+1
216 
217  return
integer, public jmax
of computational cells: y, local
integer, public imax
of computational cells: x, local
integer, public ia
of whole cells: x, local, with HALO
integer, public ja
of whole cells: y, local, with HALO
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
integer, public ie
end point of inner domain: x, local
integer, public ke
end point of inner domain: z, local
module PROCESS
Definition: scale_prc.F90:11
integer, public je
end point of inner domain: y, local
integer, public prc_rgn_level
region division level
integer, public ks
start point of inner domain: z, local
integer, public prc_rgn_total
number of regular region (global total)
integer, public kmax
of computational cells: z, local
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
integer, public prc_rgn_local
number of regular region (local)
integer, public ka
of whole cells: z, local, with HALO
integer, public prc_rgn_vlink
maximum number of vertex linkage, ICO:5
module process / icoA
Here is the call graph for this function:

Variable Documentation

◆ adm_ti

integer, parameter, public scale_atmos_grid_icoa_index::adm_ti = 1

Definition at line 34 of file scale_atmos_grid_icoA_index.F90.

34  integer, public, parameter :: adm_ti = 1

◆ adm_tj

integer, parameter, public scale_atmos_grid_icoa_index::adm_tj = 2

Definition at line 35 of file scale_atmos_grid_icoA_index.F90.

35  integer, public, parameter :: adm_tj = 2

◆ adm_ai

integer, parameter, public scale_atmos_grid_icoa_index::adm_ai = 1

Definition at line 38 of file scale_atmos_grid_icoA_index.F90.

38  integer, public, parameter :: adm_ai = 1

◆ adm_aij

integer, parameter, public scale_atmos_grid_icoa_index::adm_aij = 2

Definition at line 39 of file scale_atmos_grid_icoA_index.F90.

39  integer, public, parameter :: adm_aij = 2

◆ adm_aj

integer, parameter, public scale_atmos_grid_icoa_index::adm_aj = 3

Definition at line 40 of file scale_atmos_grid_icoA_index.F90.

40  integer, public, parameter :: adm_aj = 3

◆ adm_knone

integer, parameter, public scale_atmos_grid_icoa_index::adm_knone = 1

Definition at line 43 of file scale_atmos_grid_icoA_index.F90.

43  integer, public, parameter :: adm_knone = 1

◆ adm_nxyz

integer, parameter, public scale_atmos_grid_icoa_index::adm_nxyz = 3

Definition at line 46 of file scale_atmos_grid_icoA_index.F90.

46  integer, public, parameter :: adm_nxyz = 3

◆ khalo

integer, parameter, public scale_atmos_grid_icoa_index::khalo = 1

of halo cells: z

Definition at line 49 of file scale_atmos_grid_icoA_index.F90.

49  integer, public, parameter :: khalo = 1
integer, parameter, public khalo
of halo cells: z

◆ ihalo

integer, public scale_atmos_grid_icoa_index::ihalo = 1

of halo cells: x

Definition at line 50 of file scale_atmos_grid_icoA_index.F90.

50  integer, public :: ihalo = 1

◆ jhalo

integer, public scale_atmos_grid_icoa_index::jhalo = 1

of halo cells: y

Definition at line 51 of file scale_atmos_grid_icoA_index.F90.

51  integer, public :: jhalo = 1

◆ adm_glevel

integer, public scale_atmos_grid_icoa_index::adm_glevel

Definition at line 54 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

54  integer, public :: adm_glevel ! grid division level

◆ adm_vlayer

integer, public scale_atmos_grid_icoa_index::adm_vlayer

Definition at line 55 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

55  integer, public :: adm_vlayer ! number of vertical layer

◆ adm_lall

integer, public scale_atmos_grid_icoa_index::adm_lall

Definition at line 58 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), and scale_comm_icoa::suf().

58  integer, public :: adm_lall ! number of regular region per process

◆ adm_lall_pl

integer, parameter, public scale_atmos_grid_icoa_index::adm_lall_pl = 2

Definition at line 59 of file scale_atmos_grid_icoA_index.F90.

Referenced by scale_comm_icoa::suf().

59  integer, public, parameter :: adm_lall_pl = 2 ! number of pole region per process

◆ adm_gall

integer, public scale_atmos_grid_icoa_index::adm_gall

Definition at line 62 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), and scale_comm_icoa::comm_setup().

62  integer, public :: adm_gall ! number of horizontal grid per regular region

◆ adm_gall_in

integer, public scale_atmos_grid_icoa_index::adm_gall_in

Definition at line 63 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

63  integer, public :: adm_gall_in ! number of horizontal grid (inner part)

◆ adm_gall_1d

integer, public scale_atmos_grid_icoa_index::adm_gall_1d

Definition at line 64 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), and scale_comm_icoa::suf().

64  integer, public :: adm_gall_1d ! number of horizontal grid (1D)

◆ adm_gmin

integer, public scale_atmos_grid_icoa_index::adm_gmin

Definition at line 65 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), and scale_comm_icoa::suf().

65  integer, public :: adm_gmin ! start index of 1D horizontal grid

◆ adm_gmax

integer, public scale_atmos_grid_icoa_index::adm_gmax

Definition at line 66 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), and scale_comm_icoa::suf().

66  integer, public :: adm_gmax ! end index of 1D horizontal grid

◆ adm_iall

integer, public scale_atmos_grid_icoa_index::adm_iall

Definition at line 68 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

68  integer, public :: adm_iall ! number of horizontal grid per regular region (i-axis)

◆ adm_imin

integer, public scale_atmos_grid_icoa_index::adm_imin

Definition at line 69 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

69  integer, public :: adm_imin ! start index of 1D horizontal grid

◆ adm_imax

integer, public scale_atmos_grid_icoa_index::adm_imax

Definition at line 70 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

70  integer, public :: adm_imax ! end index of 1D horizontal grid

◆ adm_jall

integer, public scale_atmos_grid_icoa_index::adm_jall

Definition at line 71 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

71  integer, public :: adm_jall ! number of horizontal grid per regular region (j-axis)

◆ adm_jmin

integer, public scale_atmos_grid_icoa_index::adm_jmin

Definition at line 72 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

72  integer, public :: adm_jmin ! start index of 1D horizontal grid

◆ adm_jmax

integer, public scale_atmos_grid_icoa_index::adm_jmax

Definition at line 73 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup().

73  integer, public :: adm_jmax ! end index of 1D horizontal grid

◆ adm_vlink

integer, public scale_atmos_grid_icoa_index::adm_vlink = -1

Definition at line 75 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), and scale_comm_icoa::suf().

75  integer, public :: adm_vlink = -1 ! maximum number of vertex linkage, ICO:5, PSP:6, LCP, MLCP:k

◆ adm_gall_pl

integer, public scale_atmos_grid_icoa_index::adm_gall_pl

Definition at line 76 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), and scale_comm_icoa::suf().

76  integer, public :: adm_gall_pl ! number of horizontal grid for pole region

◆ adm_gslf_pl

integer, parameter, public scale_atmos_grid_icoa_index::adm_gslf_pl = 1

Definition at line 77 of file scale_atmos_grid_icoA_index.F90.

Referenced by scale_comm_icoa::comm_setup().

77  integer, public, parameter :: adm_gslf_pl = 1 ! index for pole point

◆ adm_gmin_pl

integer, parameter, public scale_atmos_grid_icoa_index::adm_gmin_pl = 2

Definition at line 78 of file scale_atmos_grid_icoA_index.F90.

Referenced by scale_comm_icoa::comm_setup().

78  integer, public, parameter :: adm_gmin_pl = 2 ! start index of grid around the pole point

◆ adm_gmax_pl

integer, public scale_atmos_grid_icoa_index::adm_gmax_pl

Definition at line 79 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), and scale_comm_icoa::comm_setup().

79  integer, public :: adm_gmax_pl ! end index of grid around the pole point

◆ adm_kall

integer, public scale_atmos_grid_icoa_index::adm_kall

◆ adm_kmin

integer, public scale_atmos_grid_icoa_index::adm_kmin

Definition at line 83 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), and scale_comm_icoa::suf().

83  integer, public :: adm_kmin ! start index of vertical grid

◆ adm_kmax

integer, public scale_atmos_grid_icoa_index::adm_kmax

Definition at line 84 of file scale_atmos_grid_icoA_index.F90.

Referenced by atmos_grid_icoa_index_setup(), and scale_comm_icoa::suf().

84  integer, public :: adm_kmax ! end index of vertical grid

◆ ks

integer, public scale_atmos_grid_icoa_index::ks

Definition at line 87 of file scale_atmos_grid_icoA_index.F90.

87  integer, public :: ks
integer, public ks
start point of inner domain: z, local

◆ ke

integer, public scale_atmos_grid_icoa_index::ke

Definition at line 88 of file scale_atmos_grid_icoA_index.F90.

88  integer, public :: ke
integer, public ke
end point of inner domain: z, local

◆ ka

integer, public scale_atmos_grid_icoa_index::ka

Definition at line 89 of file scale_atmos_grid_icoA_index.F90.

89  integer, public :: ka
integer, public ka
of whole cells: z, local, with HALO

◆ imax

integer, public scale_atmos_grid_icoa_index::imax = -1

◆ is

integer, parameter, public scale_atmos_grid_icoa_index::is = 1

◆ ie

integer, public scale_atmos_grid_icoa_index::ie

◆ ia

integer, public scale_atmos_grid_icoa_index::ia

◆ jmax

integer, public scale_atmos_grid_icoa_index::jmax = -1

◆ js

integer, parameter, public scale_atmos_grid_icoa_index::js = 1

◆ je

integer, public scale_atmos_grid_icoa_index::je

◆ ja

integer, public scale_atmos_grid_icoa_index::ja