summaryrefslogtreecommitdiff
path: root/Donjon/src/DETSPL2.f
diff options
context:
space:
mode:
Diffstat (limited to 'Donjon/src/DETSPL2.f')
-rw-r--r--Donjon/src/DETSPL2.f65
1 files changed, 65 insertions, 0 deletions
diff --git a/Donjon/src/DETSPL2.f b/Donjon/src/DETSPL2.f
new file mode 100644
index 0000000..f5aa08d
--- /dev/null
+++ b/Donjon/src/DETSPL2.f
@@ -0,0 +1,65 @@
+*DECK DETSPL2
+ SUBROUTINE DETSPL2(XCNTR ,YCNTR ,NXMAX ,NYMAX ,FXY,
+ > FP1 ,FP2 ,F2X ,F2Y ,FDUMMY,
+ > XINT ,YINT ,FYINT ,FXYINT)
+*
+*-----------------------------------------------------------------------
+*
+*Purpose:
+* Perform spline interpolation.
+*
+*Copyright:
+* Copyright (C) 2010 Ecole Polytechnique de Montreal.
+*
+*Author(s):
+* E. Varin
+*
+*Parameters:
+* XCNTR
+* YCNTR
+* NXMAX
+* NYMAX
+* FXY
+* FP1
+* FP2
+* F2X
+* F2Y
+* FDUMMY
+* XINT
+* YINT
+* FYINT
+* FXYINT
+*
+*-----------------------------------------------------------------------
+*
+ REAL*4 XCNTR(NXMAX),YCNTR(NYMAX),FXY(NXMAX,NYMAX),
+ > XINT ,YINT ,FXYINT,
+ > F2X(NXMAX) ,F2Y(NYMAX) ,FYINT(NYMAX),
+ > FDUMMY(NXMAX)
+*----
+* CALCULATE THE SECOND DERIVATIVES ALONG XCNTR FOR EACH Y
+*----
+ DO 10 I=1,NYMAX
+
+ DO 20 J=1,NXMAX
+ FDUMMY(J) = FXY(J,I)
+ 20 CONTINUE
+
+ CALL DETSPLI(XCNTR,FDUMMY,NXMAX,FP1,FP2,F2X)
+*----
+* INTERPOLATE ALONG THE X COORDINATE FOR EACH Y
+*----
+ CALL DETSPLI2(XCNTR,FDUMMY,F2X,NXMAX,XINT,FYINT(I))
+
+ 10 CONTINUE
+*----
+* CALCULATE SECOND DERIVATIVE ALONG Y FOR XINT
+*----
+ CALL DETSPLI(YCNTR,FYINT,NYMAX,FP1,FP2,F2Y)
+*----
+* INTERPOLATE ALONG Y FOR XINT
+*----
+ CALL DETSPLI2(YCNTR,FYINT,F2Y,NYMAX,YINT,FXYINT)
+
+ RETURN
+ END