ADAS Subroutine daspln
SUBROUTINE DASPLN( NTDIM , NDTIN ,
& ITA , ITVAL ,
& TFILE , TEVA ,
& QDRIN , QDROUT ,
& LTRNG
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTFILEE: B1SPLN *********************
C
C PURPOSE:
C 1) PERFORMS CUBIC SPLINE ON LOG(TEMPERATURE) VERSUS LOG(QDRIN)
C INPUT DATA. ('TFILE' VERSUS 'QDRIN' , ITA DATA PAIRS)
C
C 2) INTERPOLATES 'ITVAL' QDRIN VALUES USING ABOVE SPLINES AT
C TEMPERATURES READ IN FROM ISPF PANELS FOR TABULAR OUTPUT.
C (ANY TEMPERATURE VALUES WHICH REQUIRED EXTRAPOLATION TO
C TAKE PLACE ARE SET TO ZERO).
C - THIS STEP ONLY TAKES PLACE IF 'LOSEL=.TRUE.' -
C
C 3) INTERPOLATES 'ITVAL' QDRIN VALUES USING ABOVE SPLINES AT
C TEMPERATURES EQUI-DISTANCE ON RANGE OF LOG(TEMPERATURES)
C STORED IN INPUT 'TFILE' ARRAY.
C
C CALLING PROGRAM: ADAS201
C
C
C SUBROUTFILEE:
C
C INPUT : (I*4) NTDIM = MAX. NO. OF TEMPERATURES ALLOWED IN
C DATA SET
C INPUT : (I*4) NDTIN = MAX. NO. OF USER TEMPERATURES ALLOWED
C INPUT : (I*4) ITA = INPUT DATA FILE: NUMBER OF DR/TEMPERATURE
C PAIRS READ FOR THE TRANSITION BEING ASSESSED
C INPUT : (I*4) ITVAL = NUMBER OF SPLINE INTERPOLATED QDRIN/TEMP.
C REQUIRED FOR GRAPHICAL DISPLAY.
C
C INPUT : (I*4) TFILE() = INPUT DATA FILE: TEMPERATURES
C INPUT : (I*4) TEVA() = ISPF PANEL ENTERED TEMPERATURES
C
C INPUT : (R*8) QDRIN() = INPUT DATA FILE: SELECTED TRANSITION -
C QDRIN VALUES AT 'TFILE()'.
C OUTPUT: (I*4) QDROUT()= SPLINE INTERPOLATED QDRIN VALUES AT 'TEVA()'
C (EXTRAPOLATED VALUES = 0.0).
C
C OUTPUT: (L*4) LTRNG() = .TRUE. => OUTPUT SPLINE VALUE WAS
C INTERPOLATED FOR 'DLOG(TEVA()'.
C .FALSE. => OUTPUT SPLINE VALUE WAS
C EXTRAPOLATED FOR 'DLOG(TEVA()'.
C (NOTE: 'YOUT()=0' AS 'IOPT < 0').
C
C (I*4) NIN = PARAMETER = MAX. NO. OF INPUT TEMP/QDRIN
C PAIRS MUST BE >= 'ITA'
C (I*4) NOUT = PARAMETER = MAX. NO. OF 'OUTPUT TEMP/QDRIN
C PAIRS MUST BE >= 'ITVAL' & 'ITVAL'
C
C (I*4) IARR = ARRAY SUBSCRIPT USED FOR TEMP/QDRIN PAIRS
C (I*4) IOPT = DEFINES THE BOUNDARY DERIVATIVES FOR THE
C SPLINE ROUTFILEE 'XXSPLE', SEE 'XXSPLE'.
C (VALID VALUES = <0, 0, 1, 2, 3, 4)
C
C (L*4) LSETX = .TRUE. => SET UP SPLINE PARAMETERS RELATFILEG
C TO 'XIN' AXIS.
C .FALSE. => DO NOT SET UP SPLINE PARAMETERS
C RELATFILEG TO 'XIN' AXIS.
C (I.E. THEY WERE SET IN A PREVIOUS
C CALL )
C (VALUE SET TO .FALSE. BY 'XXSPLE')
C
C (R*8) XIN() = LOG( 'TFILE()' )
C (R*8) YIN() = LOG( 'QDRIN()' )
C (R*8) XOUT() = LOG(TEMPERATURES AT WHICH SPLINES REQUIRED)
C (R*8) YOUT() = LOG(OUTPUT SPLINE INTERPOLATED QDRIN VALUES)
C (R*8) DF() = SPLINE INTERPOLATED DERIVATIVES
C
C (L*4) LDUMP() = .TRUE. => OUTPUT SPLINE VALUE INTRPOLATED
C FOR 'YOUT()'.
C .FALSE. => OUTPUT SPLINE VALUE EXTRAPOLATED
C FOR 'YOUT()'.
C (NOTE: USED AS A DUMMY ARGUMENT.
C ALL VALUES WILL BE TRUE.)
C
C NOTE:
C
C ROUTFILEES:
C ROUTFILEE SOURCE BRIEF DESCRIPTION
C ------------------------------------------------------------
C XXSPLE ADAS SPLINE SUBROUTFILEE (EXTENDED DIAGNOSTICS)
C R8FUN1 ADAS REAL*8 FUNCTION: ( X -> X )
C
C AUTHOR: Martin O'Mullane (based on b1spln.for)
C K1/1/43
C JET EXT. 5313
C
C
C MODIFIED:
C VERSION:
C
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER ITA, ITVAL, NDTIN, NTDIM
LOGICAL LTRNG(NDTIN)
REAL*8 QDRIN(NTDIM), QDROUT(NDTIN)
REAL*8 TEVA(NDTIN), TFILE(NTDIM)