SUBROUTINE splint(n,xa,ya,y2a,x,y) USE Numeric_Kinds_Module USE CommonInfo_Module IMPLICIT NONE LOGICAL found INTEGER,INTENT(IN):: n INTEGER klo,khi,ipt REAL(KIND=dp) x,y,a,b,h REAL(KIND=dp) xa(n),ya(n),y2a(n) klo=1 khi=n found=.false. DO ipt=1,n IF (x.lt.xa(ipt)) THEN IF (.not.found) THEN found=.true. khi=ipt klo=ipt-1 ENDIF ENDIF ENDDO h=xa(khi)-xa(klo) IF (h.eq.0.d0) THEN PRINT*,'bad xa input in splint' STOP 'splint' ENDIF a=(xa(khi)-x)/h b=(x-xa(klo))/h y=a*ya(klo)+b*ya(khi)+((a**3-a)*y2a(klo)+(b**3-b)*y2a(khi))*(h**2)/6.d0 ! y is the output END SUBROUTINE splint