Search Site | Contact Details | FAQ

ADAS Subroutine sigcx

C
      SUBROUTINE SIGCX ( LSETX    , LPASS    , ILTYP    , IOPT     ,
     &                   NENIN    , ENIN     , SGIN     ,
     &                   LTHETA   , VREL     , XSEC
     &                 )
C-----------------------------------------------------------------------
C
C  ********************** FORTRAN77 SUBROUTINE: SIGCX ******************
C
C  VERSION: 1.0 (ADAS91)
C
C  PURPOSE:  INTERPOLATES CROSS-SECTION DATA FROM AN INPUT VECTOR OF
C            VALUES USING CUBIC SPLINES.
C
C            EXTRAPOLATES FOR RELATIVE SPEEDS OUT OF DATA RANGE
C            ACCORDING TO VARIOUS TYPES (ILTYP).  LOGARITHMIC
C            INTERPOLATION MAY BE USED (LPASS). SPEED ECONOMY IS
C            POSSIBLE FOR REPEATS WITH THE SAME SPLINE KNOTS (LSETX).
C            
C  CALLING PROGRAM:  CXTHER
C
C  NOTES:
C        (1) FOR  ILTYP.EQ.0, EXTRAPOLATION IS AS FOLLOWS:
C              XSEC = SIG0*DEXP(-ALPH0/VREL) FOR VREL<VREL(MIN)
C              XSEC = SIG1*VREL**(-7.0)  FOR VREL> VREL(MAX),
C              WHERE VREL(MIN), VREL(MAX) ARE THE FIRST AND LAST         FROM
C              INPUT VALUES IN DATA TABLES IN ADF24.
C            FOR  ILTYP.NE.0, EXTRAPOLATION IS AS AS ABOVE AT THIS
C              TIME.
C
C
C  SUBROUTINE:
C
C  INPUT : (L*4)   LSETX    = .TRUE. => SPLINE NOT SET FOR THESE KNOTS
C                             .FLSE. => SPLINE NOT FOR THESE KNOTS
C  INPUT : (L*4)   LPASS    = .TRUE. => DO NOT CONVERT INTO LOG10 FOR
C                                       ENERGIES AND X-SECTS. FOR SPLINE
C                             .FLSE. => CONVERT INTO LOG10 FOR
C                                       ENERGIES AND X-SECTS. FOR SPLINE
C  INPUT : (I*4)   ILTYP    = TYPE FOR LOW AND HIGH ENERGY CROSS-
C                             -SECTION EXTRAPOLATION.
C  INPUT : (I*4)   IOPT     = SPLINE END POINT CURVATURE/GRADIENT OPTION
C                             1 => DDY1 = 0, DDYN = 0
C                             4 => DY1 = 0 , DDYN = 0
C
C  INPUT : (I*4)   NENIN    = NUMBER OF ENERGIES IN INPUT DATA SET
C  INPUT : (R*8)   ENIN()   = ENERGIES (EV/AMU) IN INPUT DATA SET
C  INPUT : (R*8)   SGIN()   = INPUT X-SECTIONS (CM2) FROM INPUT DATA SET
C                             1ST.DIM: ENERGY INDEX
C  INPUT : (I*4)   LTHETA   = NUMBER OF VALUES IN VREL VECTOR
C  INPUT : (R*8)   VREL()   = RELATIVE SPEEDS FOR OUTPUT (CM S-1)
C
C  OUTPUT: (R*8)   XSEC()   = OUTPUT CROSS-SECTION (CM2)
C
C          (I*4)   MAXENS   = PARAMETER = MAX. LENGTH OF TABULAR XSECT.
C                                         VECTOR
C          (I*4)   LDTHET   = PARAMETER = MAX. LENGTH OF INTERNAL
C                                         VECTORS
C          (R*8)   CMSAMU   = PARAMETER = CONVERSION FACTOR FOR ENERGY
C                                         (AMU) TO VELOCITY (CM S-1)
C
C          (I*4)   I        = GENERAL INDEX
C          (I*4)   N        = GENERAL INDEX
C          (R*8)   ALPH0    = LOW VELOCITY EXTRAPOLATION PARAMETER
C          (R*8)   EXPON    = EXPONENT OF EXPONENTIAL
C          (R*8)   VSLOPE   = HIGH VELOCITY EXTRAPOLATION PARAMETER
C          (R*8)   XIN()    = INTERNAL SPLINE INDEPENDENT VARIABLE
C          (R*8)   YIN()    = INTERNAL SPLINE DEPENDENT VARIABLE
C          (R*8)   VIN()    = INTERNAL VECTOR
C          (R*8)   DY()     = DERIVATIVES AT SPLINE KNOTS
C          (R*8)   XOUT()   = INTERNAL OUTPUT INDEPENDENT VARIABLE
C          (R*8)   YOUT()   = INTERNAL OUTPUT DEPENDENT VARIABLE
C          (L*4)   LINTRP() = .TRUE.  => POINT INTERPOLATED
C                           = .FALSE. => POINT EXTRAPOLATED
C
C
C  ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          XXSPLE     ADAS      INTERPOLATES USING CUBIC SPLINES
C          R8FUN1     ADAS      EXTERNAL FUNCTION FOR XXSPLE
C
C
C  AUTHOR:  H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C           JA8.08
C           TEL. 0141-553-4196
C
C  DATE:    03/11/95
C
C  UPDATE:  11/04/96  HP SUMMERS - TRAPPED CASE OF ZERO RELATIVE SPEED
C
C UNIX-IDL PORT: H.P.SUMMERS
C
C VERSION: 1.1				DATE: 30-04-96
C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C	    - PUT UNDER SCCS CONTROL
C
C VERSION: 1.2				DATE: 30-04-96
C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C	    - REPLACED FINTX WITH R8FUN1
C
C VERSION: 1.3				DATE: 26-11-97
C MODIFIED: Martin O'Mullane
C           - remove extrapolation at low and high energies. We will
C             accept the results from XXSPLE (with IOPT=4) until   
C             better ideas of how to deal with threshold and high energy
C             extensions are found. 
C
C VERSION: 1.4				DATE: 17-05-07
C MODIFIED: Allan Whiteford
C           - Updated comments as part of subroutine documentation
C             procedure.
C
C--------------------------------------------------------------------
      INTEGER             ILTYP,       IOPT,        LTHETA,      NENIN
      LOGICAL             LPASS,       LSETX
      REAL*8              ENIN(NENIN), SGIN(NENIN), VREL(LTHETA)
      REAL*8              XSEC(LTHETA)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk