blob: 8e669bab2dc1e79d6add08b793b7055e19f49b24 [file] [log] [blame]
Module radin_mod
INTEGER, PARAMETER :: DP = selected_real_kind(14,200)
Contains
Subroutine SPLIFT (X,Y,YP,YPP,N,IERR,ISX,A1,B1,AN,BN)
Integer, Intent(in) :: N,ISX
Real(dp), Intent(in) :: X(N),Y(N),A1,B1,AN,BN
Real(dp), Intent(out) :: YP(N),YPP(N)
Real(dp), Allocatable, Dimension(:,:) :: W
NM1 = N-1
NM2 = N-2
If (ISX.Gt.0) GO TO 40
Do I=2,N
If (X(I)-X(I-1) .Le. 0) Then
IERR = 3
Return
Endif
End Do
Allocate(W(N,3))
40 YPP(1) = 4*B1
DOLD = (Y(2)-Y(1))/W(2,2)
Do I=2,NM2
DNEW = (Y(I+1) - Y(I))/W(I+1,2)
YPP(I) = 6*(DNEW - DOLD)
YP(I) = DOLD
DOLD = DNEW
End Do
Return
End Subroutine SPLIFT
End Module radin_mod