FIXME : Add documentation
subroutine do_smoothing
implicit none
real :: var
integer :: ifail
if (is_zero(smoothknob)) then
bmagsm = bmagin
else
var = smoothknob
ifail = 0
call smooth (nthetain+1,thetain,bmagin,var,bmagsm,ifail)
if (ifail /= 0) then
print *, "smooth failed: ",ifail
select case (ifail)
case (129)
print *, "IC IS LESS THAN N-1."
case (130)
print *, "N IS lESS THAN 3."
case (131)
print *, "INPUT ABSCISSAE ARE NOT ORDERED SO THAT X(I).LT.X(I+1)."
case (132)
print *, "DF(I) IS NOT POSITIVE FOR SOME I."
case (133)
print *, "JOB IS NOT 0 OR 1."
case default
end select
stop
end if
end if
end subroutine do_smoothing