Optimize prolong3: hoist bounds check out of inner loop
This commit is contained in:
@@ -1949,11 +1949,12 @@
|
||||
real*8, dimension(6,2), parameter :: WC = reshape((/&
|
||||
C1,C2,C3,C4,C5,C6,&
|
||||
C6,C5,C4,C3,C2,C1/), (/6,2/))
|
||||
|
||||
integer::imini,imaxi,jmini,jmaxi,kmini,kmaxi
|
||||
integer::imino,imaxo,jmino,jmaxo,kmino,kmaxo
|
||||
|
||||
real*8,dimension(3) :: CD,FD
|
||||
|
||||
integer::imini,imaxi,jmini,jmaxi,kmini,kmaxi
|
||||
integer::imino,imaxo,jmino,jmaxo,kmino,kmaxo
|
||||
integer::maxcx,maxcy,maxcz
|
||||
|
||||
real*8,dimension(3) :: CD,FD
|
||||
|
||||
if(wei.ne.3)then
|
||||
write(*,*)"prolongrestrict.f90::prolong3: this routine only surport 3 dimension"
|
||||
@@ -2057,6 +2058,14 @@
|
||||
endif
|
||||
enddo
|
||||
|
||||
maxcx = maxval(cix(imino:imaxo))
|
||||
maxcy = maxval(ciy(jmino:jmaxo))
|
||||
maxcz = maxval(ciz(kmino:kmaxo))
|
||||
if(maxcx+3 > extc(1) .or. maxcy+3 > extc(2) .or. maxcz+3 > extc(3))then
|
||||
write(*,*)"error in prolong"
|
||||
return
|
||||
endif
|
||||
|
||||
call symmetry_bd(3,extc,func,funcc,SoA)
|
||||
|
||||
!~~~~~~> prolongation start...
|
||||
@@ -2069,8 +2078,6 @@
|
||||
px = pix(i)
|
||||
py = piy(j)
|
||||
pz = piz(k)
|
||||
|
||||
if(any(cxI+3 > extc)) write(*,*)"error in prolong"
|
||||
#if 0
|
||||
if(ii/2*2==ii)then
|
||||
if(jj/2*2==jj)then
|
||||
|
||||
Reference in New Issue
Block a user