Add Lagrange interpolation subroutine and update calls in prolongrestrict modules

This commit is contained in:
2026-02-27 12:46:39 +08:00
parent 94d236385d
commit c001939461
3 changed files with 30 additions and 8 deletions

View File

@@ -217,7 +217,6 @@
real*8,dimension(2*ghost_width) :: X,Y,Z
real*8, dimension(2*ghost_width,2*ghost_width) :: tmp2
real*8, dimension(2*ghost_width) :: tmp1
real*8 :: ddy
real*8,dimension(3) :: ccp
#if (ghost_width == 2)
@@ -580,7 +579,7 @@
tmp1(ghost_width-cxI(1)+cxB(1) :ghost_width-cxI(1)+cxT(1) ) = funf(cxB(1):cxT(1),j,k)
endif
call polint(X,tmp1,0.d0,funf(i,j,k),ddy,2*ghost_width)
call polint0(X,tmp1,funf(i,j,k),2*ghost_width)
! for y direction
elseif(sum(fg).eq.2.and.fg(2) .eq. 0.and. &
@@ -690,7 +689,7 @@
tmp1(ghost_width-cxI(2)+cxB(2) :ghost_width-cxI(2)+cxT(2) ) = funf(i,cxB(2):cxT(2),k)
endif
call polint(Y,tmp1,0.d0,funf(i,j,k),ddy,2*ghost_width)
call polint0(Y,tmp1,funf(i,j,k),2*ghost_width)
! for z direction
elseif(sum(fg).eq.2.and.fg(3) .eq. 0.and. &
@@ -802,7 +801,7 @@
tmp1(ghost_width-cxI(3)+cxB(3) :ghost_width-cxI(3)+cxT(3) ) = funf(i,j,cxB(3):cxT(3))
endif
call polint(Z,tmp1,0.d0,funf(i,j,k),ddy,2*ghost_width)
call polint0(Z,tmp1,funf(i,j,k),2*ghost_width)
#else