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