blob: 538d1e7aa6daeb6c46d4b58d8c61f600cb7283aa [file] [log] [blame]
c---------------------------------------------------------------
subroutine move
c---------------------------------------------------------------
c move element to proper location in morton space filling curve
c---------------------------------------------------------------
include 'header.h'
integer i,iside,jface,iel,ntemp,ii1,ii2,n1,n2,cb
n2=2*6*nelt
n1=n2*2
call nr_init(sje_new,n1,0)
call nr_init(ijel_new,n2,0)
do iel=1,nelt
i=mt_to_id(iel)
treenew(iel)=tree(i)
call copy(xc_new(1,iel),xc(1,i),8)
call copy(yc_new(1,iel),yc(1,i),8)
call copy(zc_new(1,iel),zc(1,i),8)
do iside=1,nsides
jface = jjface(iside)
cb=cbc(iside,i)
xc_new(iside,iel)=xc(iside,i)
yc_new(iside,iel)=yc(iside,i)
zc_new(iside,iel)=zc(iside,i)
cbc_new(iside,iel)=cb
if(cb.eq.2)then
ntemp=sje(1,1,iside,i)
ijel_new(1,iside,iel)=1
ijel_new(2,iside,iel)=1
sje_new(1,1,iside,iel)=id_to_mt(ntemp)
else if(cb.eq.1) then
ntemp=sje(1,1,iside,i)
ijel_new(1,iside,iel)=ijel(1,iside,i)
ijel_new(2,iside,iel)=ijel(2,iside,i)
sje_new(1,1,iside,iel)=id_to_mt(ntemp)
else if(cb.eq.3) then
do ii2=1,2
do ii1=1,2
ntemp=sje(ii1,ii2,iside,i)
ijel_new(1,iside,iel)=1
ijel_new(2,iside,iel)=1
sje_new(ii1,ii2,iside,iel)=id_to_mt(ntemp)
end do
end do
else if(cb.eq.0)then
sje_new(1,1,iside,iel)=0
sje_new(1,2,iside,iel)=0
sje_new(2,1,iside,iel)=0
sje_new(2,2,iside,iel)=0
end if
end do
call copy(ta2(1,1,1,iel),ta1(1,1,1,i),nxyz)
end do
call copy(xc,xc_new,8*nelt)
call copy(yc,yc_new,8*nelt)
call copy(zc,zc_new,8*nelt)
call ncopy(sje,sje_new,4*6*nelt)
call ncopy(ijel,ijel_new,2*6*nelt)
call ncopy(cbc,cbc_new,6*nelt)
call ncopy(tree,treenew,nelt)
call copy(ta1,ta2,nxyz*nelt)
do iel=1,nelt
mt_to_id(iel)=iel
id_to_mt(iel)=iel
end do
return
end