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, &
134  prc_nprocs, &
135  prc_myrank, &
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_get_fname(), 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 582 of file scale_prc_icoA.F90.

582  use scale_prc, only: &
583  prc_abort
584  implicit none
585 
586  integer, intent(in) :: rlevel
587  integer, intent(in) :: ndmd
588  integer, intent(in) :: pall
589  integer, intent(in) :: rall
590  integer, intent(in) :: lall
591  integer, intent(out) :: edge_tab(2,4,rall)
592  integer, intent(out) :: lp2r(lall,0:pall-1)
593 
594  integer :: dmd_data(4,ndmd)
595  integer :: rall_1d, rall_1dmd
596 
597  integer :: d_nb, i_nb, j_nb, rgnid_nb, direction
598  integer :: d, i, j, rgnid
599  integer :: l, p
600  !---------------------------------------------------------------------------
601 
602  log_info("PRC_ICOA_RGN_generate",*) 'generate region management information file'
603 
604  if ( ndmd == 10 ) then
605  log_info_cont(*) 'Topology: icosahedral'
606  dmd_data(:, 1) = (/ 6, 5, 2,10 /)
607  dmd_data(:, 2) = (/ 10, 1, 3, 9 /)
608  dmd_data(:, 3) = (/ 9, 2, 4, 8 /)
609  dmd_data(:, 4) = (/ 8, 3, 5, 7 /)
610  dmd_data(:, 5) = (/ 7, 4, 1, 6 /)
611  dmd_data(:, 6) = (/ 7, 5, 1,10 /)
612  dmd_data(:, 7) = (/ 8, 4, 5, 6 /)
613  dmd_data(:, 8) = (/ 9, 3, 4, 7 /)
614  dmd_data(:, 9) = (/ 10, 2, 3, 8 /)
615  dmd_data(:,10) = (/ 6, 1, 2, 9 /)
616  elseif( ndmd == 12 ) then
617  log_info_cont(*) 'Topology: icosatetrahedral'
618  dmd_data(:, 1) = (/ 7, 6, 2,12 /)
619  dmd_data(:, 2) = (/ 12, 1, 3,11 /)
620  dmd_data(:, 3) = (/ 11, 2, 4,10 /)
621  dmd_data(:, 4) = (/ 10, 3, 5, 9 /)
622  dmd_data(:, 5) = (/ 9, 4, 6, 8 /)
623  dmd_data(:, 6) = (/ 8, 5, 1, 7 /)
624  dmd_data(:, 7) = (/ 8, 6, 1,12 /)
625  dmd_data(:, 8) = (/ 9, 5, 6, 7 /)
626  dmd_data(:, 9) = (/ 10, 4, 5, 8 /)
627  dmd_data(:,10) = (/ 11, 3, 4, 9 /)
628  dmd_data(:,11) = (/ 12, 2, 3,10 /)
629  dmd_data(:,12) = (/ 7, 1, 2,11 /)
630  endif
631 
632  rall_1d = 2**rlevel
633  rall_1dmd = rall_1d*rall_1d
634 
635  !--- make region link table
636  do d = 1, ndmd
637  do i = 1, rall_1d
638  do j = 1, rall_1d
639  rgnid = (d-1)*rall_1dmd + (j-1)*rall_1d + i
640 
641  !--- I_SW
642  if ( j == 1 ) then
643  if ( d <= ndmd / 2 ) then
644  i_nb = i
645  j_nb = rall_1d
646  d_nb = dmd_data(i_sw,d)
647  direction = i_ne
648  else
649  i_nb = rall_1d
650  j_nb = rall_1d+1-i
651  d_nb = dmd_data(i_sw,d)
652  direction = i_se
653  endif
654  else
655  i_nb = i
656  j_nb = j-1
657  d_nb = d
658  direction = i_ne
659  endif
660  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
661 
662  edge_tab(i_rgnid,i_sw,rgnid) = rgnid_nb
663  edge_tab(i_dir, i_sw,rgnid) = direction
664 
665  !--- I_NW
666  if ( i == 1 ) then
667  if ( d <= ndmd / 2 ) then
668  i_nb = rall_1d+1-j
669  j_nb = rall_1d
670  d_nb = dmd_data(i_nw,d)
671  direction = i_ne
672  else
673  i_nb = rall_1d
674  j_nb = j
675  d_nb = dmd_data(i_nw,d)
676  direction = i_se
677  endif
678  else
679  i_nb = i-1
680  j_nb = j
681  d_nb = d
682  direction = i_se
683  endif
684  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
685 
686  edge_tab(i_rgnid,i_nw,rgnid) = rgnid_nb
687  edge_tab(i_dir, i_nw,rgnid) = direction
688 
689  !--- I_NE
690  if ( j == rall_1d ) then
691  if ( d <= ndmd / 2 ) then
692  i_nb = 1
693  j_nb = rall_1d+1-i
694  d_nb = dmd_data(i_ne,d)
695  direction = i_nw
696  else
697  i_nb = i
698  j_nb = 1
699  d_nb = dmd_data(i_ne,d)
700  direction = i_sw
701  endif
702  else
703  i_nb = i
704  j_nb = j+1
705  d_nb = d
706  direction = i_sw
707  endif
708  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
709 
710  edge_tab(i_rgnid,i_ne,rgnid) = rgnid_nb
711  edge_tab(i_dir, i_ne,rgnid) = direction
712 
713  !--- I_SE
714  if ( i == rall_1d ) then
715  if ( d <= ndmd / 2 ) then
716  i_nb = 1
717  j_nb = j
718  d_nb = dmd_data(i_se,d)
719  direction = i_nw
720  else
721  i_nb = rall_1d+1-j
722  j_nb = 1
723  d_nb = dmd_data(i_se,d)
724  direction = i_sw
725  endif
726  else
727  i_nb = i+1
728  j_nb = j
729  d_nb = d
730  direction = i_nw
731  endif
732  rgnid_nb = (d_nb-1)*rall_1dmd + (j_nb-1)*rall_1d + i_nb
733 
734  edge_tab(i_rgnid,i_se,rgnid) = rgnid_nb
735  edge_tab(i_dir, i_se,rgnid) = direction
736  enddo
737  enddo
738  enddo
739 
740  !--- make region-pe relationship
741  lp2r(:,:) = -1
742 
743  rgnid = 0
744  do p = 0, pall-1
745  do l = 1, lall
746  rgnid = rgnid + 1
747 
748  lp2r(l,p) = rgnid
749  enddo
750  enddo
751 
752  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 scale_comm_icoa::comm_setup(), 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_universal_ismaster
logical, public prc_universal_ismaster
master process in universal communicator?
Definition: scale_prc.F90:75
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_prc::prc_local_comm_world
integer, public prc_local_comm_world
local communicator
Definition: scale_prc.F90:89
scale_prc::prc_myrank
integer, public prc_myrank
process num in local communicator
Definition: scale_prc.F90:91
scale_prc::prc_universal_myrank
integer, public prc_universal_myrank
myrank in universal communicator
Definition: scale_prc.F90:73
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_prc::prc_global_ismaster
logical, public prc_global_ismaster
master process in global communicator?
Definition: scale_prc.F90:83
scale_prc_icoa::prc_rgn_lp2r
integer, dimension(:,:), allocatable, public prc_rgn_lp2r
l,prc => rgn
Definition: scale_prc_icoA.F90:84
scale_prc::prc_global_myrank
integer, public prc_global_myrank
myrank in global communicator
Definition: scale_prc.F90:81
scale_prc::prc_universal_comm_world
integer, public prc_universal_comm_world
original communicator
Definition: scale_prc.F90:72
scale_prc::prc_abort_comm_world
integer, public prc_abort_comm_world
communicator for aborting
Definition: scale_prc.F90:102
scale_atmos_phy_rd_common::i_sw
integer, parameter, public i_sw
Definition: scale_atmos_phy_rd_common.F90:38
scale_prc::prc_nprocs
integer, public prc_nprocs
myrank in local communicator
Definition: scale_prc.F90:90
scale_prc::prc_global_comm_world
integer, public prc_global_comm_world
global communicator
Definition: scale_prc.F90:80
scale_prc::prc_universal_nprocs
integer, public prc_universal_nprocs
process num in universal communicator
Definition: scale_prc.F90:74
scale_prc::prc_global_nprocs
integer, public prc_global_nprocs
process num in global communicator
Definition: scale_prc.F90:82
scale_prc::prc_ismaster
logical, public prc_ismaster
master process in local communicator?
Definition: scale_prc.F90:92