SCALE-RM
Functions/Subroutines | Variables
scale_prc_icoa Module Reference

module process / icoA More...

Functions/Subroutines

subroutine, public prc_icoa_setup
 Setup Processor topology. More...
 
subroutine, public prc_icoa_rgn_generate (rlevel, ndmd, pall, rall, lall, edge_tab, lp2r)
 Generate region management info. More...
 

Variables

integer, parameter, public prc_rank_pl = PRC_masterrank
 process ID which manages the pole regions More...
 
logical, public prc_have_pl
 this ID manages pole region? More...
 
integer, parameter, public i_l = 1
 local region More...
 
integer, parameter, public i_prc = 2
 process More...
 
integer, parameter, public i_rgnid = 1
 region id More...
 
integer, parameter, public i_dir = 2
 direction More...
 
integer, parameter, public i_sw = 1
 south west More...
 
integer, parameter, public i_nw = 2
 north west More...
 
integer, parameter, public i_ne = 3
 north east More...
 
integer, parameter, public i_se = 4
 south east More...
 
integer, parameter, public i_w = 1
 west More...
 
integer, parameter, public i_n = 2
 north More...
 
integer, parameter, public i_e = 3
 east More...
 
integer, parameter, public i_s = 4
 south More...
 
integer, parameter, public i_npl = 1
 north pole More...
 
integer, parameter, public i_spl = 2
 south pole More...
 
integer, public prc_rgn_level = -1
 region division level More...
 
integer, public prc_rgn_ndiamond = 10
 number of diamonds More...
 
integer, public prc_rgn_vlink = 5
 maximum number of vertex linkage, ICO:5 More...
 
integer, public prc_rgn_total
 number of regular region (global total) More...
 
integer, public prc_rgn_local
 number of regular region (local) More...
 
integer, parameter, public prc_rgn_total_pl = 2
 number of pole region More...
 
integer, parameter, public prc_rgn_local_lim = 2560
 maximum number of regular region (local) More...
 
integer, dimension(:,:,:), allocatable, public prc_rgn_edge_tab
 region link information (for 4 edges) More...
 
integer, dimension(:,:), allocatable, public prc_rgn_vert_num
 number of region around the vertex (4 vertexes) More...
 
logical, dimension(:,:), allocatable, public prc_rgn_vert_pl
 the northern/southern vertex is around the pole point? More...
 
integer, dimension(:,:,:,:), allocatable, public prc_rgn_vert_tab
 region link information (for 4 vertexes) More...
 
integer, dimension(:,:,:), allocatable, public prc_rgn_vert_tab_pl
 region link information (for 4 vertexes) More...
 
integer, dimension(:,:), allocatable, public prc_rgn_lp2r
 l,prc => rgn More...
 
integer, dimension(:,:), allocatable, public prc_rgn_r2lp
 rgn => l,prc More...
 
integer, dimension(:), allocatable, public prc_rgn_l2r
 l,prc_me => rgn More...
 
integer, dimension(prc_rgn_total_pl), public prc_rgn_r2p_pl
 process ID which have the pole regions More...
 
integer, dimension(prc_rgn_total_pl), public prc_rgn_rgn4pl
 region, having pole data in the halo More...
 
logical, dimension(:), allocatable, public prc_rgn_have_sgp
 region have singlar point? More...
 

Detailed Description

module process / icoA

Description
MPI process management module for Icosahedral-A grid
Author
Team SCALE
NAMELIST
  • PARAM_PRC_ICOA
    nametypedefault valuecomment
    PRC_RGN_LEVEL integer -1 region division level
    PRC_RGN_NDIAMOND integer 10 number of diamonds
    DEBUG logical .false. debug option

  • PARAM_PRC_ICOA_RGN
    nametypedefault valuecomment
    PRC_ICOA_RGN_IN_FNAME character(len=H_LONG) '' input file name for region management file
    PRC_ICOA_RGN_OUT_FNAME character(len=H_LONG) '' output file name for region management file
    DEBUG logical .false. debug option

  • rgn_info
    nametypedefault valuecomment
    NUM_OF_RGN integer number of region

  • proc_info
    nametypedefault valuecomment
    NUM_OF_PROC integer number of processes

  • rgn_mng_info
    nametypedefault valuecomment
    PEID integer process ID
    NUM_OF_MNG integer number of regions be managed
    MNG_RGNID integer, dimension(PRC_RGN_LOCAL_LIM) managed region ID

History Output
No history output

Function/Subroutine Documentation

◆ prc_icoa_setup()

subroutine, public scale_prc_icoa::prc_icoa_setup

Setup Processor topology.

Definition at line 122 of file scale_prc_icoA.F90.

122  use scale_prc, only: &
123  prc_abort, &
124  prc_abort_comm_world, &
125  prc_universal_comm_world, &
126  prc_universal_nprocs, &
127  prc_universal_myrank, &
128  prc_universal_ismaster, &
129  prc_global_comm_world, &
130  prc_global_nprocs, &
131  prc_global_myrank, &
132  prc_global_ismaster, &
133  prc_local_comm_world, &
134  prc_nprocs, &
135  prc_myrank, &
136  prc_ismaster
137  implicit none
138 
139  namelist / param_prc_icoa / &
140  prc_rgn_level, &
141  prc_rgn_ndiamond, &
142  debug
143 
144  integer :: l, rgnid
145 
146  integer :: ierr
147  !---------------------------------------------------------------------------
148 
149  log_newline
150  log_info("PRC_ICOA_setup",*) 'Setup'
151 
152  if ( io_l ) then
153  log_newline
154  log_progress(*) 'start MPI'
155  log_newline
156  log_info("PRC_ICOA_setup",*) 'Process information '
157  log_info_cont('(1x,A,I12)') 'UNIVERSAL_COMM_WORLD : ', prc_universal_comm_world
158  log_info_cont('(1x,A,I12)') 'total process [UNIVERSAL] : ', prc_universal_nprocs
159  log_info_cont('(1x,A,I12)') 'my process ID [UNIVERSAL] : ', prc_universal_myrank
160  log_info_cont('(1x,A,L12)') 'master rank? [UNIVERSAL] : ', prc_universal_ismaster
161  log_info_cont('(1x,A,I12)') 'GLOBAL_COMM_WORLD : ', prc_global_comm_world
162  log_info_cont('(1x,A,I12)') 'total process [GLOBAL] : ', prc_global_nprocs
163  log_info_cont('(1x,A,I12)') 'my process ID [GLOBAL] : ', prc_global_myrank
164  log_info_cont('(1x,A,L12)') 'master rank? [GLOBAL] : ', prc_global_ismaster
165  log_info_cont('(1x,A,I12)') 'LOCAL_COMM_WORLD : ', prc_local_comm_world
166  log_info_cont('(1x,A,I12)') 'total process [LOCAL] : ', prc_nprocs
167  log_info_cont('(1x,A,I12)') 'my process ID [LOCAL] : ', prc_myrank
168  log_info_cont('(1x,A,L12)') 'master rank? [LOCAL] : ', prc_ismaster
169  log_info_cont('(1x,A,I12)') 'ABORT_COMM_WORLD : ', prc_abort_comm_world
170  log_info_cont('(1x,A,I12)') 'master rank ID [each world] : ', prc_masterrank
171  endif
172 
173  !--- read namelist
174  rewind(io_fid_conf)
175  read(io_fid_conf,nml=param_prc_icoa,iostat=ierr)
176  if( ierr < 0 ) then !--- missing
177  log_info("PRC_ICOA_setup",*) 'Not found namelist. Default used.'
178  elseif( ierr > 0 ) then !--- fatal error
179  log_error("PRC_ICOA_setup",*) 'Not appropriate names in namelist PARAM_PRC_ICOA. Check!'
180  call prc_abort
181  endif
182  if( io_nml ) write(io_fid_nml,nml=param_prc_icoa)
183 
184  if ( prc_rgn_level < 0 ) then
185  log_error("PRC_ICOA_setup",*) 'PRC_RGN_level is not appropriate :', prc_rgn_level
186  call prc_abort
187  endif
188 
189  if ( prc_rgn_ndiamond == 10 &
190  .OR. prc_rgn_ndiamond == 12 ) then
191  prc_rgn_vlink = prc_rgn_ndiamond / 2
192  else
193  log_error("PRC_ICOA_setup",*) 'PRC_RGN_ndiamond is not appropriate :', prc_rgn_ndiamond
194  call prc_abort
195  endif
196 
197  prc_rgn_total = 2**prc_rgn_level * 2**prc_rgn_level * prc_rgn_ndiamond
198  prc_rgn_local = prc_rgn_total / prc_nprocs
199 
200  if ( mod(prc_rgn_total,prc_nprocs) /= 0 ) then
201  log_error("PRC_ICOA_setup",*) 'Number of total region must be divisible by the number of process', prc_rgn_total, prc_nprocs
202  call prc_abort
203  endif
204 
205  if ( prc_rgn_local > prc_rgn_local_lim ) then
206  log_error("PRC_ICOA_setup",*) 'limit exceed! local region: ', prc_rgn_local, prc_rgn_local_lim
207  call prc_abort
208  endif
209 
210  call prc_icoa_rgn_setup
211 
212  ! pole region management flag
213  if ( prc_myrank == prc_rank_pl ) then
214  prc_have_pl = .true.
215  else
216  prc_have_pl = .false.
217  endif
218 
219  ! singlar point management flag
220  allocate( prc_rgn_have_sgp(prc_rgn_local) )
221  prc_rgn_have_sgp(:) = .false.
222 
223  do l = 1, prc_rgn_local
224  rgnid = prc_rgn_lp2r(l,prc_myrank)
225  if ( prc_rgn_vert_num(i_w,rgnid) == 3 ) then
226  prc_rgn_have_sgp(l) = .true.
227  endif
228  enddo
229 
230  call output_info
231 
232  return

References i_dir, i_l, i_ne, i_npl, i_nw, i_prc, i_rgnid, i_s, i_se, i_spl, i_sw, i_w, scale_io::io_fid_conf, scale_io::io_fid_nml, scale_io::io_get_available_fid(), scale_io::io_l, scale_io::io_nml, scale_prc::prc_abort(), scale_prc::prc_abort_comm_world, scale_prc::prc_global_comm_world, scale_prc::prc_global_ismaster, scale_prc::prc_global_myrank, scale_prc::prc_global_nprocs, prc_have_pl, prc_icoa_rgn_generate(), scale_prc::prc_ismaster, scale_prc::prc_local_comm_world, scale_prc::prc_myrank, scale_prc::prc_nprocs, prc_rank_pl, prc_rgn_edge_tab, prc_rgn_have_sgp, prc_rgn_l2r, prc_rgn_level, prc_rgn_local, prc_rgn_local_lim, prc_rgn_lp2r, prc_rgn_ndiamond, prc_rgn_r2lp, prc_rgn_r2p_pl, prc_rgn_rgn4pl, prc_rgn_total, prc_rgn_total_pl, prc_rgn_vert_num, prc_rgn_vert_pl, prc_rgn_vert_tab, prc_rgn_vert_tab_pl, prc_rgn_vlink, scale_prc::prc_universal_comm_world, scale_prc::prc_universal_ismaster, scale_prc::prc_universal_myrank, and scale_prc::prc_universal_nprocs.

Here is the call graph for this function:

◆ prc_icoa_rgn_generate()

subroutine, public scale_prc_icoa::prc_icoa_rgn_generate ( integer, intent(in)  rlevel,
integer, intent(in)  ndmd,
integer, intent(in)  pall,
integer, intent(in)  rall,
integer, intent(in)  lall,
integer, dimension(2,4,rall), intent(out)  edge_tab,
integer, dimension(lall,0:pall-1), intent(out)  lp2r 
)

Generate region management info.

Parameters
[in]rlevelregion division level
[in]ndmdnumber of diamonds
[in]pallnumber of process (global total)
[in]rallnumber of regular region (global total)
[in]lallnumber of regular region (local)
[out]edge_tabregion link information (for 4 edges)
[out]lp2rl,prc => region

Definition at line 578 of file scale_prc_icoA.F90.

578  use scale_prc, only: &
579  prc_abort
580  implicit none
581 
582  integer, intent(in) :: rlevel
583  integer, intent(in) :: ndmd
584  integer, intent(in) :: pall
585  integer, intent(in) :: rall
586  integer, intent(in) :: lall
587  integer, intent(out) :: edge_tab(2,4,rall)
588  integer, intent(out) :: lp2r(lall,0:pall-1)
589 
590  integer :: dmd_data(4,ndmd)
591  integer :: rall_1d, rall_1dmd
592 
593  integer :: d_nb, i_nb, j_nb, rgnid_nb, direction
594  integer :: d, i, j, rgnid
595  integer :: l, p
596  !---------------------------------------------------------------------------
597 
598  log_info("PRC_ICOA_RGN_generate",*) 'generate region management information file'
599 
600  if ( ndmd == 10 ) then
601  log_info_cont(*) 'Topology: icosahedral'
602  dmd_data(:, 1) = (/ 6, 5, 2,10 /)
603  dmd_data(:, 2) = (/ 10, 1, 3, 9 /)
604  dmd_data(:, 3) = (/ 9, 2, 4, 8 /)
605  dmd_data(:, 4) = (/ 8, 3, 5, 7 /)
606  dmd_data(:, 5) = (/ 7, 4, 1, 6 /)
607  dmd_data(:, 6) = (/ 7, 5, 1,10 /)
608  dmd_data(:, 7) = (/ 8, 4, 5, 6 /)
609  dmd_data(:, 8) = (/ 9, 3, 4, 7 /)
610  dmd_data(:, 9) = (/ 10, 2, 3, 8 /)
611  dmd_data(:,10) = (/ 6, 1, 2, 9 /)
612  elseif( ndmd == 12 ) then
613  log_info_cont(*) 'Topology: icosatetrahedral'
614  dmd_data(:, 1) = (/ 7, 6, 2,12 /)
615  dmd_data(:, 2) = (/ 12, 1, 3,11 /)
616  dmd_data(:, 3) = (/ 11, 2, 4,10 /)
617  dmd_data(:, 4) = (/ 10, 3, 5, 9 /)
618  dmd_data(:, 5) = (/ 9, 4, 6, 8 /)
619  dmd_data(:, 6) = (/ 8, 5, 1, 7 /)
620  dmd_data(:, 7) = (/ 8, 6, 1,12 /)
621  dmd_data(:, 8) = (/ 9, 5, 6, 7 /)
622  dmd_data(:, 9) = (/ 10, 4, 5, 8 /)
623  dmd_data(:,10) = (/ 11, 3, 4, 9 /)
624  dmd_data(:,11) = (/ 12, 2, 3,10 /)
625  dmd_data(:,12) = (/ 7, 1, 2,11 /)
626  endif
627 
628  rall_1d = 2**rlevel
629  rall_1dmd = rall_1d*rall_1d
630 
631  !--- make region link table
632  do d = 1, ndmd
633  do i = 1, rall_1d
634  do j = 1, rall_1d
635  rgnid = (d-1)*rall_1dmd + (j-1)*rall_1d + i
636 
637  !--- I_SW
638  if ( j == 1 ) then
639  if ( d <= ndmd / 2 ) then
640  i_nb = i
641  j_nb = rall_1d
642  d_nb = dmd_data(i_sw,d)
643  direction = i_ne
644  else
645  i_nb = rall_1d
646  j_nb = rall_1d+1-i
647  d_nb = dmd_data(i_sw,d)
648  direction = i_se
649  endif
650  else
651  i_nb = i
652  j_nb = j-1
653  d_nb = d
654  direction = i_ne
655  endif
656  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
657 
658  edge_tab(i_rgnid,i_sw,rgnid) = rgnid_nb
659  edge_tab(i_dir, i_sw,rgnid) = direction
660 
661  !--- I_NW
662  if ( i == 1 ) then
663  if ( d <= ndmd / 2 ) then
664  i_nb = rall_1d+1-j
665  j_nb = rall_1d
666  d_nb = dmd_data(i_nw,d)
667  direction = i_ne
668  else
669  i_nb = rall_1d
670  j_nb = j
671  d_nb = dmd_data(i_nw,d)
672  direction = i_se
673  endif
674  else
675  i_nb = i-1
676  j_nb = j
677  d_nb = d
678  direction = i_se
679  endif
680  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
681 
682  edge_tab(i_rgnid,i_nw,rgnid) = rgnid_nb
683  edge_tab(i_dir, i_nw,rgnid) = direction
684 
685  !--- I_NE
686  if ( j == rall_1d ) then
687  if ( d <= ndmd / 2 ) then
688  i_nb = 1
689  j_nb = rall_1d+1-i
690  d_nb = dmd_data(i_ne,d)
691  direction = i_nw
692  else
693  i_nb = i
694  j_nb = 1
695  d_nb = dmd_data(i_ne,d)
696  direction = i_sw
697  endif
698  else
699  i_nb = i
700  j_nb = j+1
701  d_nb = d
702  direction = i_sw
703  endif
704  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
705 
706  edge_tab(i_rgnid,i_ne,rgnid) = rgnid_nb
707  edge_tab(i_dir, i_ne,rgnid) = direction
708 
709  !--- I_SE
710  if ( i == rall_1d ) then
711  if ( d <= ndmd / 2 ) then
712  i_nb = 1
713  j_nb = j
714  d_nb = dmd_data(i_se,d)
715  direction = i_nw
716  else
717  i_nb = rall_1d+1-j
718  j_nb = 1
719  d_nb = dmd_data(i_se,d)
720  direction = i_sw
721  endif
722  else
723  i_nb = i+1
724  j_nb = j
725  d_nb = d
726  direction = i_nw
727  endif
728  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
729 
730  edge_tab(i_rgnid,i_se,rgnid) = rgnid_nb
731  edge_tab(i_dir, i_se,rgnid) = direction
732  enddo
733  enddo
734  enddo
735 
736  !--- make region-pe relationship
737  lp2r(:,:) = -1
738 
739  rgnid = 0
740  do p = 0, pall-1
741  do l = 1, lall
742  rgnid = rgnid + 1
743 
744  lp2r(l,p) = rgnid
745  enddo
746  enddo
747 
748  return

References i_dir, i_e, i_n, i_ne, i_npl, i_nw, i_rgnid, i_s, i_se, i_spl, i_sw, i_w, scale_prc::prc_abort(), scale_prc::prc_myrank, prc_rgn_edge_tab, prc_rgn_l2r, prc_rgn_level, prc_rgn_local, prc_rgn_lp2r, prc_rgn_ndiamond, prc_rgn_r2p_pl, prc_rgn_rgn4pl, prc_rgn_total, prc_rgn_vert_num, prc_rgn_vert_tab, prc_rgn_vert_tab_pl, and prc_rgn_vlink.

Referenced by prc_icoa_setup().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ prc_rank_pl

integer, parameter, public scale_prc_icoa::prc_rank_pl = PRC_masterrank

process ID which manages the pole regions

Definition at line 38 of file scale_prc_icoA.F90.

38  integer, public, parameter :: PRC_rank_pl = prc_masterrank

Referenced by prc_icoa_setup().

◆ prc_have_pl

logical, public scale_prc_icoa::prc_have_pl

this ID manages pole region?

Definition at line 39 of file scale_prc_icoA.F90.

39  logical, public :: PRC_have_pl

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

◆ i_l

integer, parameter, public scale_prc_icoa::i_l = 1

local region

Definition at line 43 of file scale_prc_icoA.F90.

43  integer, public, parameter :: I_l = 1

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

◆ i_prc

integer, parameter, public scale_prc_icoa::i_prc = 2

process

Definition at line 44 of file scale_prc_icoA.F90.

44  integer, public, parameter :: I_prc = 2

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

◆ i_rgnid

integer, parameter, public scale_prc_icoa::i_rgnid = 1

region id

Definition at line 46 of file scale_prc_icoA.F90.

46  integer, public, parameter :: I_RGNID = 1

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_dir

integer, parameter, public scale_prc_icoa::i_dir = 2

direction

Definition at line 47 of file scale_prc_icoA.F90.

47  integer, public, parameter :: I_DIR = 2

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_sw

integer, parameter, public scale_prc_icoa::i_sw = 1

south west

Definition at line 50 of file scale_prc_icoA.F90.

50  integer, public, parameter :: I_SW = 1

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_nw

integer, parameter, public scale_prc_icoa::i_nw = 2

north west

Definition at line 51 of file scale_prc_icoA.F90.

51  integer, public, parameter :: I_NW = 2

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_ne

integer, parameter, public scale_prc_icoa::i_ne = 3

north east

Definition at line 52 of file scale_prc_icoA.F90.

52  integer, public, parameter :: I_NE = 3

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_se

integer, parameter, public scale_prc_icoa::i_se = 4

south east

Definition at line 53 of file scale_prc_icoA.F90.

53  integer, public, parameter :: I_SE = 4

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_w

integer, parameter, public scale_prc_icoa::i_w = 1

west

Definition at line 56 of file scale_prc_icoA.F90.

56  integer, public, parameter :: I_W = 1

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ i_n

integer, parameter, public scale_prc_icoa::i_n = 2

north

Definition at line 57 of file scale_prc_icoA.F90.

57  integer, public, parameter :: I_N = 2

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

◆ i_e

integer, parameter, public scale_prc_icoa::i_e = 3

east

Definition at line 58 of file scale_prc_icoA.F90.

58  integer, public, parameter :: I_E = 3

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

◆ i_s

integer, parameter, public scale_prc_icoa::i_s = 4

south

Definition at line 59 of file scale_prc_icoA.F90.

59  integer, public, parameter :: I_S = 4

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), prc_icoa_setup(), and scale_comm_icoa::suf().

◆ i_npl

integer, parameter, public scale_prc_icoa::i_npl = 1

north pole

Definition at line 62 of file scale_prc_icoA.F90.

62  integer, public, parameter :: I_NPL = 1

Referenced by scale_comm_icoa::comm_setup(), scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), prc_icoa_rgn_generate(), prc_icoa_setup(), and scale_comm_icoa::suf().

◆ i_spl

integer, parameter, public scale_prc_icoa::i_spl = 2

south pole

Definition at line 63 of file scale_prc_icoA.F90.

63  integer, public, parameter :: I_SPL = 2

Referenced by scale_comm_icoa::comm_setup(), scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), prc_icoa_rgn_generate(), prc_icoa_setup(), and scale_comm_icoa::suf().

◆ prc_rgn_level

integer, public scale_prc_icoa::prc_rgn_level = -1

region division level

Definition at line 66 of file scale_prc_icoA.F90.

66  integer, public :: PRC_RGN_level = -1

Referenced by scale_atmos_grid_icoa_index::atmos_grid_icoa_index_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_ndiamond

integer, public scale_prc_icoa::prc_rgn_ndiamond = 10

number of diamonds

Definition at line 67 of file scale_prc_icoA.F90.

67  integer, public :: PRC_RGN_ndiamond = 10

Referenced by prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_vlink

integer, public scale_prc_icoa::prc_rgn_vlink = 5

maximum number of vertex linkage, ICO:5

Definition at line 68 of file scale_prc_icoA.F90.

68  integer, public :: PRC_RGN_vlink = 5

Referenced by scale_atmos_grid_icoa_index::atmos_grid_icoa_index_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_total

integer, public scale_prc_icoa::prc_rgn_total

number of regular region (global total)

Definition at line 71 of file scale_prc_icoA.F90.

71  integer, public :: PRC_RGN_total

Referenced by scale_atmos_grid_icoa_index::atmos_grid_icoa_index_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_local

integer, public scale_prc_icoa::prc_rgn_local

number of regular region (local)

Definition at line 72 of file scale_prc_icoA.F90.

72  integer, public :: PRC_RGN_local

Referenced by scale_atmos_grid_icoa_index::atmos_grid_icoa_index_setup(), scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_total_pl

integer, parameter, public scale_prc_icoa::prc_rgn_total_pl = 2

number of pole region

Definition at line 73 of file scale_prc_icoA.F90.

73  integer, public, parameter :: PRC_RGN_total_pl = 2

Referenced by scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), and prc_icoa_setup().

◆ prc_rgn_local_lim

integer, parameter, public scale_prc_icoa::prc_rgn_local_lim = 2560

maximum number of regular region (local)

Definition at line 75 of file scale_prc_icoA.F90.

75  integer, public, parameter :: PRC_RGN_local_lim = 2560

Referenced by prc_icoa_setup().

◆ prc_rgn_edge_tab

integer, dimension (:,:,:), allocatable, public scale_prc_icoa::prc_rgn_edge_tab

region link information (for 4 edges)

Definition at line 77 of file scale_prc_icoA.F90.

77  integer, public, allocatable :: PRC_RGN_edge_tab (:,:,:)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_vert_num

integer, dimension (:,:), allocatable, public scale_prc_icoa::prc_rgn_vert_num

number of region around the vertex (4 vertexes)

Definition at line 79 of file scale_prc_icoA.F90.

79  integer, public, allocatable :: PRC_RGN_vert_num (:,:)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_vert_pl

logical, dimension (:,:), allocatable, public scale_prc_icoa::prc_rgn_vert_pl

the northern/southern vertex is around the pole point?

Definition at line 80 of file scale_prc_icoA.F90.

80  logical, public, allocatable :: PRC_RGN_vert_pl (:,:)

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

◆ prc_rgn_vert_tab

integer, dimension (:,:,:,:), allocatable, public scale_prc_icoa::prc_rgn_vert_tab

region link information (for 4 vertexes)

Definition at line 81 of file scale_prc_icoA.F90.

81  integer, public, allocatable :: PRC_RGN_vert_tab (:,:,:,:)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_vert_tab_pl

integer, dimension(:,:,:), allocatable, public scale_prc_icoa::prc_rgn_vert_tab_pl

region link information (for 4 vertexes)

Definition at line 82 of file scale_prc_icoA.F90.

82  integer, public, allocatable :: PRC_RGN_vert_tab_pl(:,:,:)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_lp2r

integer, dimension(:,:), allocatable, public scale_prc_icoa::prc_rgn_lp2r

l,prc => rgn

Definition at line 84 of file scale_prc_icoA.F90.

84  integer, public, allocatable :: PRC_RGN_lp2r(:,:)

Referenced by scale_comm_icoa::comm_setup(), scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_r2lp

integer, dimension(:,:), allocatable, public scale_prc_icoa::prc_rgn_r2lp

rgn => l,prc

Definition at line 85 of file scale_prc_icoA.F90.

85  integer, public, allocatable :: PRC_RGN_r2lp(:,:)

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

◆ prc_rgn_l2r

integer, dimension (:), allocatable, public scale_prc_icoa::prc_rgn_l2r

l,prc_me => rgn

Definition at line 86 of file scale_prc_icoA.F90.

86  integer, public, allocatable :: PRC_RGN_l2r (:)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), prc_icoa_setup(), and scale_comm_icoa::suf().

◆ prc_rgn_r2p_pl

integer, dimension(prc_rgn_total_pl), public scale_prc_icoa::prc_rgn_r2p_pl

process ID which have the pole regions

Definition at line 88 of file scale_prc_icoA.F90.

88  integer, public :: PRC_RGN_r2p_pl(PRC_RGN_total_pl)

Referenced by scale_comm_icoa::comm_setup(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_rgn4pl

integer, dimension(prc_rgn_total_pl), public scale_prc_icoa::prc_rgn_rgn4pl

region, having pole data in the halo

Definition at line 89 of file scale_prc_icoA.F90.

89  integer, public :: PRC_RGN_rgn4pl(PRC_RGN_total_pl)

Referenced by scale_comm_icoa::comm_var_dp(), scale_comm_icoa::comm_var_sp(), prc_icoa_rgn_generate(), and prc_icoa_setup().

◆ prc_rgn_have_sgp

logical, dimension(:), allocatable, public scale_prc_icoa::prc_rgn_have_sgp

region have singlar point?

Definition at line 93 of file scale_prc_icoA.F90.

93  logical, public, allocatable :: PRC_RGN_have_sgp(:)

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

scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_prc_icoa::prc_rgn_lp2r
integer, dimension(:,:), allocatable, public prc_rgn_lp2r
l,prc => rgn
Definition: scale_prc_icoA.F90:84