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, 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_dmd = 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...
 
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
    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 121 of file scale_prc_icoA.F90.

References i_dir, i_l, i_n, 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_dmd, 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_r2lp, prc_rgn_r2p_pl, prc_rgn_rgn4pl, prc_rgn_total, prc_rgn_total_pl, prc_rgn_vert_num, 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.

121  use scale_prc, only: &
122  prc_abort, &
133  prc_nprocs, &
134  prc_myrank, &
136  implicit none
137 
138  namelist / param_prc_icoa / &
139  prc_rgn_level, &
140  debug
141 
142  integer :: l, rgnid
143 
144  integer :: ierr
145  !---------------------------------------------------------------------------
146 
147  log_newline
148  log_info("PRC_ICOA_setup",*) 'Setup'
149 
150  if ( io_l ) then
151  log_newline
152  log_progress(*) 'start MPI'
153  log_newline
154  log_info("PRC_ICOA_setup",*) 'Process information '
155  log_info_cont('(1x,A,I12)') 'UNIVERSAL_COMM_WORLD : ', prc_universal_comm_world
156  log_info_cont('(1x,A,I12)') 'total process [UNIVERSAL] : ', prc_universal_nprocs
157  log_info_cont('(1x,A,I12)') 'my process ID [UNIVERSAL] : ', prc_universal_myrank
158  log_info_cont('(1x,A,L12)') 'master rank? [UNIVERSAL] : ', prc_universal_ismaster
159  log_info_cont('(1x,A,I12)') 'GLOBAL_COMM_WORLD : ', prc_global_comm_world
160  log_info_cont('(1x,A,I12)') 'total process [GLOBAL] : ', prc_global_nprocs
161  log_info_cont('(1x,A,I12)') 'my process ID [GLOBAL] : ', prc_global_myrank
162  log_info_cont('(1x,A,L12)') 'master rank? [GLOBAL] : ', prc_global_ismaster
163  log_info_cont('(1x,A,I12)') 'LOCAL_COMM_WORLD : ', prc_local_comm_world
164  log_info_cont('(1x,A,I12)') 'total process [LOCAL] : ', prc_nprocs
165  log_info_cont('(1x,A,I12)') 'my process ID [LOCAL] : ', prc_myrank
166  log_info_cont('(1x,A,L12)') 'master rank? [LOCAL] : ', prc_ismaster
167  log_info_cont('(1x,A,I12)') 'ABORT_COMM_WORLD : ', prc_abort_comm_world
168  log_info_cont('(1x,A,I12)') 'master rank ID [each world] : ', prc_masterrank
169  endif
170 
171  !--- read namelist
172  rewind(io_fid_conf)
173  read(io_fid_conf,nml=param_prc_icoa,iostat=ierr)
174  if( ierr < 0 ) then !--- missing
175  log_info("PRC_ICOA_setup",*) 'Not found namelist. Default used.'
176  elseif( ierr > 0 ) then !--- fatal error
177  log_error("PRC_ICOA_setup",*) 'Not appropriate names in namelist PARAM_PRC_ICOA. Check!'
178  call prc_abort
179  endif
180  if( io_nml ) write(io_fid_nml,nml=param_prc_icoa)
181 
182  if ( prc_rgn_level < 0 ) then
183  log_error("PRC_ICOA_setup",*) 'PRC_RGN_level is not appropriate :', prc_rgn_level
184  call prc_abort
185  endif
186 
187  prc_rgn_total = 2**prc_rgn_level * 2**prc_rgn_level * prc_rgn_dmd
188  prc_rgn_local = prc_rgn_total / prc_nprocs
189 
190  if ( mod(prc_rgn_total,prc_nprocs) /= 0 ) then
191  log_error("PRC_ICOA_setup",*) 'Number of total region must be divisible by the number of process', prc_rgn_total, prc_nprocs
192  call prc_abort
193  endif
194 
195  if ( prc_rgn_local > prc_rgn_local_lim ) then
196  log_error("PRC_ICOA_setup",*) 'limit exceed! local region: ', prc_rgn_local, prc_rgn_local_lim
197  call prc_abort
198  endif
199 
200  call prc_icoa_rgn_setup
201 
202  ! pole region management flag
203  if ( prc_myrank == prc_rank_pl ) then
204  prc_have_pl = .true.
205  else
206  prc_have_pl = .false.
207  endif
208 
209  ! singlar point management flag
210  allocate( prc_rgn_have_sgp(prc_rgn_local) )
211  prc_rgn_have_sgp(:) = .false.
212 
213  do l = 1, prc_rgn_local
214  rgnid = prc_rgn_lp2r(l,prc_myrank)
215  if ( prc_rgn_vert_num(i_w,rgnid) == 3 ) then
216  prc_rgn_have_sgp(l) = .true.
217  endif
218  enddo
219 
220  call output_info
221 
222  return
integer, public prc_universal_nprocs
process num in universal communicator
Definition: scale_prc.F90:72
logical, public prc_global_ismaster
master process in global communicator?
Definition: scale_prc.F90:81
integer, public io_fid_nml
Log file ID (only for output namelist)
Definition: scale_io.F90:57
integer, public prc_global_myrank
myrank in global communicator
Definition: scale_prc.F90:79
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:55
integer, public prc_universal_comm_world
original communicator
Definition: scale_prc.F90:70
integer, public prc_nprocs
myrank in local communicator
Definition: scale_prc.F90:88
integer, public prc_universal_myrank
myrank in universal communicator
Definition: scale_prc.F90:71
logical, public io_l
output log or not? (this process)
Definition: scale_io.F90:61
module PROCESS
Definition: scale_prc.F90:11
integer, public prc_global_nprocs
process num in global communicator
Definition: scale_prc.F90:80
integer, public prc_myrank
process num in local communicator
Definition: scale_prc.F90:89
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
logical, public prc_ismaster
master process in local communicator?
Definition: scale_prc.F90:90
integer, public prc_global_comm_world
global communicator
Definition: scale_prc.F90:78
integer, dimension(:,:), allocatable, public prc_rgn_lp2r
l,prc => rgn
logical, public prc_universal_ismaster
master process in universal communicator?
Definition: scale_prc.F90:73
integer, public prc_local_comm_world
local communicator
Definition: scale_prc.F90:87
integer, public prc_abort_comm_world
communicator for aborting
Definition: scale_prc.F90:95
logical, public io_nml
output log or not? (for namelist, this process)
Definition: scale_io.F90:62
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)  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]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 564 of file scale_prc_icoA.F90.

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_dmd, prc_rgn_edge_tab, prc_rgn_l2r, prc_rgn_level, prc_rgn_local, prc_rgn_lp2r, 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().

564  use scale_prc, only: &
565  prc_abort
566  implicit none
567 
568  integer, intent(in) :: rlevel
569  integer, intent(in) :: pall
570  integer, intent(in) :: rall
571  integer, intent(in) :: lall
572  integer, intent(out) :: edge_tab(2,4,rall)
573  integer, intent(out) :: lp2r(lall,0:pall-1)
574 
575  integer, parameter :: nmax_dmd = 10
576  integer :: dmd_data(4,nmax_dmd)
577  integer :: rall_1d, rall_1dmd
578 
579  integer :: d_nb, i_nb, j_nb, rgnid_nb, direction
580  integer :: d, i, j, rgnid
581  integer :: l, p
582  !---------------------------------------------------------------------------
583 
584  log_info("PRC_ICOA_RGN_generate",*) 'generate region management information file'
585  log_info_cont(*) 'Topology: icosahedral'
586 
587  dmd_data(:, 1) = (/ 6, 5, 2,10 /)
588  dmd_data(:, 2) = (/ 10, 1, 3, 9 /)
589  dmd_data(:, 3) = (/ 9, 2, 4, 8 /)
590  dmd_data(:, 4) = (/ 8, 3, 5, 7 /)
591  dmd_data(:, 5) = (/ 7, 4, 1, 6 /)
592  dmd_data(:, 6) = (/ 7, 5, 1,10 /)
593  dmd_data(:, 7) = (/ 8, 4, 5, 6 /)
594  dmd_data(:, 8) = (/ 9, 3, 4, 7 /)
595  dmd_data(:, 9) = (/ 10, 2, 3, 8 /)
596  dmd_data(:,10) = (/ 6, 1, 2, 9 /)
597 
598  rall_1d = 2**rlevel
599  rall_1dmd = rall_1d*rall_1d
600 
601  !--- make region link table
602  do d = 1, nmax_dmd
603  do i = 1, rall_1d
604  do j = 1, rall_1d
605  rgnid = (d-1)*rall_1dmd + (j-1)*rall_1d + i
606 
607  !--- I_SW
608  if ( j == 1 ) then
609  if ( d <= 5 ) then
610  i_nb = i
611  j_nb = rall_1d
612  d_nb = dmd_data(i_sw,d)
613  direction = i_ne
614  else
615  i_nb = rall_1d
616  j_nb = rall_1d+1-i
617  d_nb = dmd_data(i_sw,d)
618  direction = i_se
619  endif
620  else
621  i_nb = i
622  j_nb = j-1
623  d_nb = d
624  direction = i_ne
625  endif
626  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
627 
628  edge_tab(i_rgnid,i_sw,rgnid) = rgnid_nb
629  edge_tab(i_dir, i_sw,rgnid) = direction
630 
631  !--- I_NW
632  if ( i == 1 ) then
633  if ( d <= 5 ) then
634  i_nb = rall_1d+1-j
635  j_nb = rall_1d
636  d_nb = dmd_data(i_nw,d)
637  direction = i_ne
638  else
639  i_nb = rall_1d
640  j_nb = j
641  d_nb = dmd_data(i_nw,d)
642  direction = i_se
643  endif
644  else
645  i_nb = i-1
646  j_nb = j
647  d_nb = d
648  direction = i_se
649  endif
650  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
651 
652  edge_tab(i_rgnid,i_nw,rgnid) = rgnid_nb
653  edge_tab(i_dir, i_nw,rgnid) = direction
654 
655  !--- I_NE
656  if ( j == rall_1d ) then
657  if ( d <= 5 ) then
658  i_nb = 1
659  j_nb = rall_1d+1-i
660  d_nb = dmd_data(i_ne,d)
661  direction = i_nw
662  else
663  i_nb = i
664  j_nb = 1
665  d_nb = dmd_data(i_ne,d)
666  direction = i_sw
667  endif
668  else
669  i_nb = i
670  j_nb = j+1
671  d_nb = d
672  direction = i_sw
673  endif
674  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
675 
676  edge_tab(i_rgnid,i_ne,rgnid) = rgnid_nb
677  edge_tab(i_dir, i_ne,rgnid) = direction
678 
679  !--- I_SE
680  if ( i == rall_1d ) then
681  if ( d <= 5 ) then
682  i_nb = 1
683  j_nb = j
684  d_nb = dmd_data(i_se,d)
685  direction = i_nw
686  else
687  i_nb = rall_1d+1-j
688  j_nb = 1
689  d_nb = dmd_data(i_se,d)
690  direction = i_sw
691  endif
692  else
693  i_nb = i+1
694  j_nb = j
695  d_nb = d
696  direction = i_nw
697  endif
698  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
699 
700  edge_tab(i_rgnid,i_se,rgnid) = rgnid_nb
701  edge_tab(i_dir, i_se,rgnid) = direction
702  enddo
703  enddo
704  enddo
705 
706  !--- make region-pe relationship
707  lp2r(:,:) = -1
708 
709  rgnid = 0
710  do p = 0, pall-1
711  do l = 1, lall
712  rgnid = rgnid + 1
713 
714  lp2r(l,p) = rgnid
715  enddo
716  enddo
717 
718  return
integer, parameter, public i_sw
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:338
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.

Referenced by prc_icoa_setup().

38  integer, public, parameter :: prc_rank_pl = prc_masterrank

◆ 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.

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

39  logical, public :: prc_have_pl

◆ i_l

integer, parameter, public scale_prc_icoa::i_l = 1

local region

Definition at line 43 of file scale_prc_icoA.F90.

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

43  integer, public, parameter :: i_l = 1

◆ i_prc

integer, parameter, public scale_prc_icoa::i_prc = 2

process

Definition at line 44 of file scale_prc_icoA.F90.

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

44  integer, public, parameter :: i_prc = 2

◆ i_rgnid

integer, parameter, public scale_prc_icoa::i_rgnid = 1

region id

Definition at line 46 of file scale_prc_icoA.F90.

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

46  integer, public, parameter :: i_rgnid = 1

◆ i_dir

integer, parameter, public scale_prc_icoa::i_dir = 2

direction

Definition at line 47 of file scale_prc_icoA.F90.

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

47  integer, public, parameter :: i_dir = 2

◆ i_sw

integer, parameter, public scale_prc_icoa::i_sw = 1

south west

Definition at line 50 of file scale_prc_icoA.F90.

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

50  integer, public, parameter :: i_sw = 1
integer, parameter, public i_sw

◆ i_nw

integer, parameter, public scale_prc_icoa::i_nw = 2

north west

Definition at line 51 of file scale_prc_icoA.F90.

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

51  integer, public, parameter :: i_nw = 2

◆ i_ne

integer, parameter, public scale_prc_icoa::i_ne = 3

north east

Definition at line 52 of file scale_prc_icoA.F90.

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

52  integer, public, parameter :: i_ne = 3

◆ i_se

integer, parameter, public scale_prc_icoa::i_se = 4

south east

Definition at line 53 of file scale_prc_icoA.F90.

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

53  integer, public, parameter :: i_se = 4

◆ i_w

integer, parameter, public scale_prc_icoa::i_w = 1

west

Definition at line 56 of file scale_prc_icoA.F90.

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

56  integer, public, parameter :: i_w = 1

◆ i_n

integer, parameter, public scale_prc_icoa::i_n = 2

north

Definition at line 57 of file scale_prc_icoA.F90.

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

57  integer, public, parameter :: i_n = 2

◆ i_e

integer, parameter, public scale_prc_icoa::i_e = 3

east

Definition at line 58 of file scale_prc_icoA.F90.

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

58  integer, public, parameter :: i_e = 3

◆ i_s

integer, parameter, public scale_prc_icoa::i_s = 4

south

Definition at line 59 of file scale_prc_icoA.F90.

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

59  integer, public, parameter :: i_s = 4

◆ i_npl

integer, parameter, public scale_prc_icoa::i_npl = 1

north pole

Definition at line 62 of file scale_prc_icoA.F90.

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().

62  integer, public, parameter :: i_npl = 1
integer, parameter, public i_npl
north pole

◆ i_spl

integer, parameter, public scale_prc_icoa::i_spl = 2

south pole

Definition at line 63 of file scale_prc_icoA.F90.

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().

63  integer, public, parameter :: i_spl = 2
integer, parameter, public i_spl
south pole

◆ 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.

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

66  integer, public :: prc_rgn_level = -1

◆ prc_rgn_dmd

integer, public scale_prc_icoa::prc_rgn_dmd = 10

number of diamonds

Definition at line 67 of file scale_prc_icoA.F90.

Referenced by prc_icoa_rgn_generate(), and prc_icoa_setup().

67  integer, public :: prc_rgn_dmd = 10

◆ 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.

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

68  integer, public :: prc_rgn_vlink = 5

◆ 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.

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

71  integer, public :: prc_rgn_total

◆ 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.

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().

72  integer, public :: prc_rgn_local

◆ 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.

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

73  integer, public, parameter :: prc_rgn_total_pl = 2
integer, parameter, public prc_rgn_total_pl
number of pole region

◆ 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.

Referenced by prc_icoa_setup().

75  integer, public, parameter :: prc_rgn_local_lim = 2560

◆ 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.

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

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

◆ 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.

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

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

◆ prc_rgn_vert_tab

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

region link information (for 4 vertexes)

Definition at line 80 of file scale_prc_icoA.F90.

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

80  integer, public, allocatable :: prc_rgn_vert_tab (:,:,:,:)

◆ 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 81 of file scale_prc_icoA.F90.

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

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

◆ prc_rgn_lp2r

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

l,prc => rgn

Definition at line 83 of file scale_prc_icoA.F90.

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().

83  integer, public, allocatable :: prc_rgn_lp2r(:,:)
integer, dimension(:,:), allocatable, public prc_rgn_lp2r
l,prc => rgn

◆ prc_rgn_r2lp

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

rgn => l,prc

Definition at line 84 of file scale_prc_icoA.F90.

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

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

◆ prc_rgn_l2r

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

l,prc_me => rgn

Definition at line 85 of file scale_prc_icoA.F90.

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

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

◆ 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 87 of file scale_prc_icoA.F90.

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

87  integer, public :: prc_rgn_r2p_pl(prc_rgn_total_pl)
integer, parameter, public prc_rgn_total_pl
number of pole region

◆ 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 88 of file scale_prc_icoA.F90.

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

88  integer, public :: prc_rgn_rgn4pl(prc_rgn_total_pl)
integer, dimension(prc_rgn_total_pl), public prc_rgn_rgn4pl
region, having pole data in the halo
integer, parameter, public prc_rgn_total_pl
number of pole region

◆ prc_rgn_have_sgp

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

region have singlar point?

Definition at line 92 of file scale_prc_icoA.F90.

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

92  logical, public, allocatable :: prc_rgn_have_sgp(:)