Possible typo in grid interpolation
bendudson opened this issue · 1 comments
There is a suspicious line in this polintp
poloidal interpolation function:
https://github.com/LLNL/UEDGE/blob/master/bbb/griddubl.m#L1169
do 30 ixo = ixos, ixof
if(xo(ixo,iy).gt.xn(ix,iy) .or. ixo.eq.ixof) goto 25
ixl = ixo
20 continue
25 continue
The 30
label is shared with an outer loop, and the 20
label is not used in this function.
The corresponding lines in the radintp
radial interpolation function
https://github.com/LLNL/UEDGE/blob/master/bbb/griddubl.m#L1108
are:
do 20 iyo = iyos, iyof
if(yo(ix,iyo).gt.yn(ix,iy) .or. iyo.eq.iyof) goto 25
iyl = iyo
20 continue
25 continue
I suspect that the radintp
version is correct, and the polintp
do loop should use 20
rather than 30
or be rewritten as
do ixo = ixos, ixof
if(xo(ixo,iy).gt.xn(ix,iy) .or. ixo.eq.ixof) exit
ixl = ixo
end do
Note: I think this bug, if it is a bug, causes extra work to be done but doesn't affect the result: The interpolation is performed for every value of ixo (rather than just one), but the last result computed has the correct value of ixl.