Search Site | Contact Details | FAQ

ADAS Subroutine e5spln


      SUBROUTINE E5SPLN( NTRDIM , NTDDIM ,
     &                   ITRA   , ITDA   , ITVAL   ,
     &                   AMSRA  , AMSDA  , RMASS   , DMASS  ,
     &                   TFRA   , TFDA   , TREVA   , TDEVA  ,
     &                   QFTCXA ,          QTCXA   ,
     &                                     LTRRNG  , LTDRNG
     &                 )
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: E5SPLN *********************
C
C  PURPOSE:
C          PERFORMS CUBIC SPLINE ON LOG(TEMP.) VERSUS LOG(RATE-COEFT)
C          INPUT DATA FOR A GIVEN DONOR/RECEIVER DATA-BLOCK.
C
C          USING TWO-WAY SPLINES IT CALCULATES THE RATE-COEFFICIENTS
C          FOR 'ITVAL' PAIRS OF RECEIVER/DONOR TEMPERATURES FROM THE
C          TWO-DIMENSIONAL TABLE OF RECEIVER/DONOR TEMPERATURES READ
C          IN FROM THE INPUT FILE. IF A VALUE CANNOT BE INTERPOLATED
C          USING SPLINES IT IS EXPLICITLY EXTRAPOLATED.
C
C  CALLING PROGRAM: ADAS505/SQTCX
C
C
C  SUBROUTINE:
C
C  INPUT : (I*4)  NTRDIM  = MAX NUMBER OF RECEIVER TEMPERATURES ALLOWED
C  INPUT : (I*4)  NTDDIM  = MAX NUMBER OF DONOR    TEMPERATURES ALLOWED
C
C  INPUT : (I*4)  ITRA    = INPUT DATA FILE: NUMBER OF RECEIVER TEMPERA-
C                           TURES READ FOR THE DATA-BLOCK BEING ASSESSED
C  INPUT : (I*4)  ITDA    = INPUT DATA FILE: NUMBER OF DONOR    TEMPERA-
C                           TURES READ FOR THE DATA-BLOCK BEING ASSESSED
C  INPUT : (I*4)  ITVAL   = NUMBER OF ISPF ENTERED RECEIVER/DONOR  TEMP-
C                           ERATURE PAIRS  FOR  WHICH  RATE-COEFFICIENTS
C                           ARE REQUIRED FOR TABULAR/GRAPHICAL OUTPUT.
C
C  INPUT : (R*8)  AMSRA   = INPUT DATA FILE: RECEIVER ATOMIC MASS FOR
C                           THE DATA-BLOCK BEING ASSESSED.
C  INPUT : (R*8)  AMSDA   = INPUT DATA FILE: DONOR    ATOMIC MASS FOR
C                           THE DATA-BLOCK BEING ASSESSED.
C  INPUT : (R*8)  RMASS   = USER ENTERED: RECEIVER ISOTOPIC ATOMIC MASS
C  INPUT : (R*8)  DMASS   = USER ENTERED: DONOR    ISOTOPIC ATOMIC MASS
C
C  INPUT : (R*8)  TFRA()  = INPUT DATA FILE: RECEIVER TEMPERATURES (EV)
C                           FOR THE DATA-BLOCK BEING ASSESSED.
C                           DIMENSION: RECEIVER TEMPERATURE INDEX
C  INPUT : (R*8)  TFDA()  = INPUT DATA FILE: DONOR    TEMPERATURES (EV)
C                           FOR THE DATA-BLOCK BEING ASSESSED.
C                           DIMENSION: DONOR    TEMPERATURE INDEX
C  INPUT : (R*8)  TREVA() = USER ENTERED: RECEIVER TEMPERATURES (EV)
C                           DIMENSION: RECEIVER/DONOR TEMP. PAIR INDEX
C  INPUT : (R*8)  TDEVA() = USER ENTERED: DONOR    TEMPERATURES (EV)
C                           DIMENSION: RECEIVER/DONOR TEMP. PAIR INDEX
C
C
C  INPUT : (R*8)  QFTCXA(,)=INPUT DATA FILE: FULL SET OF RATE-COEFFTS.
C                           (UNITS: CM**3/SEC) FOR THE DATA-BLOCK BEING
C                           ANALYSED.
C                           1ST DIMENSION: DONOR    TEMPERATURE INDEX
C                           2ND DIMENSION: RECEIVER TEMPERATURE INDEX
C  OUTPUT: (R*8)  QTCXA() = SPLINE INTERPOLATED OR  EXTRAPOLATED  RATE-
C                           COEFFICIENTS FOR THE USER ENTERED RECEIVER/
C                           DONOR TEMPERATURE PAIRS (UNITS: CM**3/SEC)
C                           DIMENSION: RECEIVER/DONOR TEMP. PAIR INDEX
C
C  OUTPUT: (L*4)  LTRRNG()= .TRUE.  => OUTPUT 'QTCXA()' VALUE WAS INTER-
C                                      POLATED  FOR  THE  USER  ENTERED
C                                      RECEIVER TEMPERATURE 'TREVA()'.
C                           .FALSE. => OUTPUT 'QTCXA()' VALUE WAS EXTRA-
C                                      POLATED  FOR  THE  USER  ENTERED
C                                      RECEIVER TEMPERATURE 'TREVA()'.
C                           DIMENSION: RECEIVER/DONOR TEMP. PAIR INDEX
C
C  OUTPUT: (L*4)  LTDRNG()= .TRUE.  => OUTPUT 'QTCXA()' VALUE WAS INTER-
C                                      POLATED  FOR  THE  USER  ENTERED
C                                      DONOR TEMPERATURE 'TDEVA()'.
C                           .FALSE. => OUTPUT 'QTCXA()' VALUE WAS EXTRA-
C                                      POLATED  FOR  THE  USER  ENTERED
C                                      DONOR TEMPERATURE 'TDEVA()'.
C
C          (I*4)  NIN     = PARAMETER = MAX. NO. OF INPUT  TEMPERATURE
C                                       VALUES. MUST BE >= 'ITRA'&'ITDA'
C          (I*4)  NOUT    = PARAMETER = MAX. NO. OF OUTPUT TEMPERATURE
C                                       PAIRS.  MUST BE >= 'ITVAL'
C          (I*4)  L1      = PARAMETER = 1
C
C          (I*4)  ITD     = ARRAY SUBSCRIPT USED INPUT  FILE  DONOR
C                           TEMPERATURES.
C          (I*4)  ITR     = ARRAY SUBSCRIPT USED INPUT  FILE  RECEIVER
C                           TEMPERATURES.
C          (I*4)  IT      = ARRAY  SUBSCRIPT  USED  FOR  USER  ENTERED
C                           TEMPERATURE PAIRS .
C          (I*4)  IOPT    = DEFINES THE BOUNDARY DERIVATIVES FOR THE
C                           SPLINE ROUTINE 'XXSPLE', SEE 'XXSPLE'.
C                           (VALID VALUES = <0, 0, 1, 2, 3, 4)
C
C          (L*4)  LSETX   = .TRUE.  => SET UP SPLINE PARAMETERS RELATING
C                                      TO 'XIN' AXIS.
C                           .FALSE. => DO NOT SET UP SPLINE PARAMETERS
C                                      RELATING 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)  R8FUN1  = FUNCTION - (SEE ROUTINES SECTION BELOW)
C          (R*8)  LOGSFR  = LOG( SCALING FACTOR FOR DATA FILE RECEIVER
C                                TEMPERATURES )
C          (R*8)  LOGSFD  = LOG( SCALING FACTOR FOR DATA FILE DONOR
C                                TEMPERATURES )
C          (R*8)  RMR     = RECIPROCAL OF 'RMASS' - USED IN EXTRAPOLATN.
C          (R*8)  DMD     = RECIPROCAL OF 'DMASS' - USED IN EXTRAPOLATN.
C          (R*8)  AMR     = RECIPROCAL OF 'AMSRA' - USED IN EXTRAPOLATN.
C          (R*8)  AMD     = RECIPROCAL OF 'AMSDA' - USED IN EXTRAPOLATN.
C          (R*8)  RDMIN   = FACTOR USED IN  EXTRAPOLATION  OF  DONOR
C                           TEMPERATURES BELOW THE MINIMUM DATA VALUE.
C          (R*8)  RDMAX   = FACTOR USED IN  EXTRAPOLATION  OF  DONOR
C                           TEMPERATURES ABOVE THE MAXIMUM DATA VALUE.
C          (R*8)  RRMIN   = FACTOR USED IN  EXTRAPOLATION  OF  RECEIVER
C                           TEMPERATURES BELOW THE MINIMUM DATA VALUE.
C          (R*8)  RRMAX   = FACTOR USED IN  EXTRAPOLATION  OF  RECEIVER
C                           TEMPERATURES ABOVE THE MAXIMUM DATA VALUE.
C          (R*8)  VAL1    = VALUE USED IN EXTRAPOLATION.
C          (R*8)  VAL2    = VALUE USED IN EXTRAPOLATION.
C          (R*8)  COEF1   = COEFFICIENT USED TO CALC. EXTRAPOLTED VALUE
C          (R*8)  COEF2   = COEFFICIENT USED TO CALC. EXTRAPOLTED VALUE
C
C          (R*8)  XIN()   = 1) LOG( DATA FILE DONOR    TEMPERATURES )
C                           2) LOG( DATA FILE RECEIVER TEMPERATURES )
C          (R*8)  YIN()   = LOG( DATA FILE RATE-COEFFICIENTS )
C          (R*8)  XOUT()  = 1) LOG( SCALED USER ENTERED DONOR    TEMPS.)
C                           2) LOG( SCALED USER ENTERED RECEIVER TEMPS.)
C          (R*8)  YOUT()  = LOG( OUTPUT GENERATED RATE COEFFICIENTS )
C          (R*8)  YPASS(,)= LOG( RATE COEFFICIENTS ) INTERMEDIATE ARRAY
C                           WHICH STORES INTERPOLATED/EXTRAPOLATED RATE
C                           COEFFICIENT VALUES BEWTEEN THE  TWO  SPLINE
C                           SECTIONS.
C          (R*8)  DF()    = SPLINE INTERPOLATED DERIVATIVES
C
C
C NOTE:
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          ------------------------------------------------------------
C          XXSPLE     ADAS      SPLINE SUBROUTINE (EXTENDED DIAGNOSTICS)
C          R8FUN1     ADAS      REAL*8 FUNCTION: ( X -> X )
C
C AUTHOR:  PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC)
C          K1/0/81
C          JET EXT. 4569
C
C DATE:    21/02/91
C
C UNIX-IDL PORT:
C
C AUTHOR:  WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C
C DATE:    22TH MARCH 1996
C
C VERSION: 1.1			DATE: 22-03-96
C MODIFIED: WILLIAM OSBORN
C	    - FIRST VERSION
C 
C VERSION: 1.2			DATE: 02-03-96
C MODIFIED: WILLIAM OSBORN
C	    PROPER HEADER INFORMATION ADDED
C
C VERSION: 1.3			DATE: 7-11-97
C MODIFIED: Martin O'Mullane
C	    increased NOUT to 24
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
      INTEGER             ITDA,        ITRA,        ITVAL,       NTDDIM
      INTEGER             NTRDIM
      LOGICAL             LTDRNG(ITVAL),            LTRRNG(ITVAL)
      REAL*8              AMSDA,       AMSRA,       DMASS
      REAL*8              QFTCXA(NTDDIM,NTRDIM),    QTCXA(ITVAL)
      REAL*8              RMASS,       TDEVA(ITVAL)
      REAL*8              TFDA(ITDA),  TFRA(ITRA),  TREVA(ITVAL)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk