29 SUBROUTINE partition(CYC_XLL, CYC_YLL, CYC_ZLL)
36 LOGICAL :: CYC_XLL, CYC_YLL, CYC_ZLL
40 INTEGER,
dimension(0:nodesi-1) :: isize1_all
41 INTEGER,
dimension(0:nodesj-1) :: jsize1_all
42 INTEGER,
dimension(0:nodesk-1) :: ksize1_all
44 INTEGER :: ip, iproc, isize, iremain
45 INTEGER :: jp, jproc, jsize, jremain
46 INTEGER :: kp, kproc, ksize, kremain
73 ksize1_all = ksize_all
77 isize1_all(0:
nodesi-1) = isize
79 IF (iremain.ge.1) isize1_all( 0:(iremain-1) ) = isize + 1
83 jsize1_all(0:
nodesj-1) = jsize
85 IF (jremain.ge.1) jsize1_all( 0:(jremain-1) ) = jsize + 1
89 ksize1_all(0:
nodesk-1) = ksize
91 IF (kremain.ge.1) ksize1_all( 0:(kremain-1) ) = ksize + 1
98 INQUIRE(file=
'gridmap.dat',exist=present)
101 WRITE(*,*)
'Reading gridmap from grimap.dat...' 102 OPEN(convert=
'BIG_ENDIAN',unit=777, file=
'gridmap.dat', status=
'OLD')
106 READ(777,*) jproc,isize1_all(iproc)
109 READ(777,*) jproc,jsize1_all(iproc)
112 READ(777,*) jproc,ksize1_all(iproc)
117 CALL bcast(isize1_all)
118 CALL bcast(jsize1_all)
119 CALL bcast(ksize1_all)
122 allocate( ksize_all(0:
nodesk-1))
125 ksize_all = ksize1_all
139 istart1_all(ijkproc) = ip + sum(isize1_all(0:iproc-1))
142 jstart1_all(ijkproc) = jp + sum(jsize1_all(0:jproc-1))
145 kstart1_all(ijkproc) = kp + sum(ksize1_all(0:kproc-1))
158 1000
FORMAT(
'WARNING 1000: The preconditioner for the linear solver',/&
159 'MIGHT NOT be very efficient with DMP partitions in the y-', &
179 integer :: iproc, ii, jj, kk
181 LOGICAL :: CYC_XL, CYC_YL, CYC_ZL
187 CHARACTER(len=32) :: AMDAHL_SPEEDUP
479 if (cyc_zl.and.
nodesk.eq.1)
then 488 if (cyc_yl.and.
nodesj.eq.1)
then 497 if (cyc_xl.and.
nodesi.eq.1)
then 539 IF(imbalance == 0)
THEN 540 amdahl_speedup=
'+Inf' 543 WRITE(amdahl_speedup,*)1.0/dble(imbalance)
571 if(
allocated(funijk_map_c))
deallocate(funijk_map_c)
602 comm = mpi_comm_world
609 1000
FORMAT(
'Parallel load balancing statistics:',2/,13
x,
'Comp. cells',&
610 4
x,
'Processor',/3
x,
'maximum ',i11,4
x,i9,/3
x,
'minimum ',i11,&
611 4
x,i9,/3
x,
'average ',i11,6
x,
'-N/A-',2/,3
x,
'Maximum speedup ',&
612 '(Amdahls Law) = ',a)
integer, dimension(:), allocatable istart1_all
integer, dimension(:), allocatable imap
character(len=16) coordinates
integer, dimension(:), allocatable jmap_c
integer, dimension(:), allocatable kstart1_all
integer, dimension(:,:,:), allocatable ijk_array_of
integer, dimension(:), allocatable kmap_c
integer, dimension(:), allocatable jstart4_all
integer, dimension(:), allocatable kend4_all
logical function compare(V1, V2)
integer, dimension(:), allocatable kend1_all
integer, dimension(:), allocatable istart2_all
logical short_gridmap_init
integer, dimension(:), allocatable kstart2_all
logical ncpp_uniform_backed_up
integer, dimension(:), allocatable iend3_all
integer, dimension(:), allocatable istart4_all
integer, dimension(:), allocatable ijksize4_all
integer, dimension(:), allocatable istart_all
logical increment_arrays_allocated
subroutine init_err_msg(CALLER)
integer, dimension(:), allocatable ijkstart4_all
integer, dimension(:), allocatable kstart4_all
integer, dimension(:), allocatable jend_all
integer, dimension(:), allocatable kstart3_all
integer, dimension(:), allocatable istart3_all
logical, dimension(:,:,:), allocatable dead_cell_at
integer, dimension(:), allocatable jend2_all
integer, dimension(:), allocatable ijkend3_all
integer, dimension(:), allocatable jend4_all
subroutine sendrecv_init(comm, cyclic_i, cyclic_j, cyclic_k, idebug)
integer, dimension(:), allocatable iend2_all
integer, dimension(:), allocatable jstart3_all
integer, dimension(:), allocatable jstart_all
integer, dimension(:), allocatable kend2_all
integer, dimension(:), allocatable imap_c
integer, dimension(:), allocatable jsize_all
integer, dimension(:), allocatable jstart1_all
integer, dimension(:), allocatable kend3_all
integer, dimension(:), allocatable isize_all
logical domain_size_adjusted
integer, dimension(:), allocatable jend3_all
integer, dimension(:), allocatable jend1_all
character(len=line_length), dimension(line_count) err_msg
integer, dimension(:), allocatable iend_all
integer, dimension(:), allocatable jmap
integer, dimension(:), allocatable ijkend4_all
integer, dimension(:), allocatable iend4_all
integer, dimension(:), allocatable displs
integer, dimension(:), allocatable kstart_all
integer, dimension(:), allocatable ijksize3_all
integer, dimension(:), allocatable jstart2_all
subroutine partition(CYC_XLL, CYC_YLL, CYC_ZLL)
integer, dimension(:), allocatable ijkstart3_all
integer, dimension(:), allocatable kend_all
integer, dimension(:), allocatable ncpp_uniform
integer, dimension(:), allocatable kmap
integer, dimension(:), allocatable iend1_all
double precision, dimension(:), allocatable x
subroutine flush_err_msg(DEBUG, HEADER, FOOTER, ABORT, LOG, CALL_TREE)