Search Site | Contact Details | FAQ

ADAS Subroutine exther

C
       SUBROUTINE EXTHER ( NEDIM  , NTDIM  ,
     &                     LSETX  , LPASS  ,
     &                     AMDON  , AMREC  , ILTYP  ,
     &                     NENIN  , ENIN   , NENOUT , ENOUT ,
     &                     SGIN   , RCOUT
     &                   )
C-----------------------------------------------------------------------
C
C  ********************** FORTRAN77 SUBROUTINE: EXTHER *****************
C
C  VERSION: 1.0 (ADAS91)
C
C  PURPOSE:  OBTAINS RATE COEFFICIENTS FOR DONOR/RECEIVER CHARGE
C            EXCHANGE COLLISIONS FOR CASES OF THERMAL DONOR AND
C            THERMAL RECEIVER FROM CROSS-SECTION TABULATIONS. AN ARRAY
C            OF VALUES IS PRODUCED.
C
C  CALLING PROGRAM:  ADAS509
C
C  SUBROUTINE:
C
C  INPUT :  (I*4)  NEDIM    = MAX. NUMBER OF ENERGIES IN SOURCE DATA
C                             VECTOR
C  INPUT :  (I*4)  NTDIM    = MAX. NUMBER OF TEMPERATURES IN OUTPUT
C                             VECTOR
C  INPUT :  (L*4)  LSETX    = .TRUE. => SPLINE PRESET FOR THESE KNOTS
C                             .FLSE. => SPLINE NOT SET 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 :  (R*8)  AMDON    = DONOR MASS NUMBER
C  INPUT :  (R*8)  AMREC    = RECEIVER MASS NUMBER
C  INPUT : (I*4)   ILTYP    = TYPE FOR LOW AND HIGH ENERGY CROSS-
C                             SECTION EXTRAPOLATION
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 : (I*4)   NENOUT   = NUMBER OF TEMPERATURES FOR OUTPUT DATA SET
C  INPUT : (R*8)   ENOUT()  = TEMPERATURES (EV) FOR OUTPUT DATA SET
C  INPUT : (R*8)   SGIN()   = INPUT X-SECTIONS (CM2) FROM INPUT DATA SET
C                             1ST.DIM: ENERGY INDEX
C  OUTPUT: (R*8)   RCOUT(,) = RATE COEFF. (CM3 S-1) IN OUTPUT DATA SET
C                             1ST.DIM: DONOR TEMPERATURE INDEX
C                             2ND.DIM: RECEIVER TEMPERATURE INDEX
C
C          (I*4)   I        = GENERAL INDEX
C          (I*4)   IT       = GENERAL INDEX
C          (I*4)   ITR      = GENERAL INDEX
C          (I*4)   ITD      = GENERAL INDEX
C          (I*4)   ITHETA   = GENERAL INDEX
C          (I*4)   IOPT     = SPLINE END POINT CURVATURE/GRADIENT OPTION
C                             1 => DDY1 = 0, DDYN = 0
C                             4 => DY1 = 0 , DDYN = 0
C          (I*4)   IXD      = DONOR GAUSSIAN QUADRATURE INDEX
C          (I*4)   IXR      = RECEIVER GAUSSIAN QUADRATURE INDEX
C          (I*4)   NGS      = GAUSSIAN QUARATURE DIMENSION
C          (I*4)   NTHETA   = NUMBER OF ANGLE VALUES FOR QUADRATURE
C          (I*4)   LTHETA   = NTHETA+1
C          (I*4)   L1       = PARAMETER = 1
C
C          (R*8)   ETHD     = THERMAL ENERGY OF DONOR       (JOULES)
C          (R*8)   ETHR     = THERMAL ENERGY RECEIVER       (JOULES)
C          (R*8)   HSIMP    = SIMPSON'S RULE STEP INTERVAL
C          (R*8)   THETA    = ANGLE BETWEEN PARTICLE VELOCITIES (RAD)
C          (R*8)   FAC      = GENERAL VARIABLE
C          (R*8)   FLAG     = GENERAL VARIABLE
C          (R*8)   XMDKG    = DONOR MASS    (KG)
C          (R*8)   XMRKG    = RECEIVER MASS (KG)
C          (R*8)   VD       = DONOR SPEED    (M S-1)
C          (R*8)   VR       = RECEIVER SPEED (M S-1)
C          (R*8)   RATE     = EVALUATED RATE COEFFICIENT (CM3 S-1)
C          (R*8)   PART1    = GENERAL VARIABLE
C          (R*8)   PART2    = GENERAL VARIABLE
C          (R*8)   PART3    = GENERAL VARIABLE
C          (R*8)   PART12   = GENERAL VARIABLE
C          (R*8)   PART23   = GENERAL VARIABLE
C          (R*8)   PART123  = GENERAL VARIABLE
C          (R*8)   VREL1    = GENERAL RELATIVE SPEED VARIABLE
C          (R*8)   XSEC1    = GENERAL CROSS-SECTION VARIABLE
C          (R*8)   VAL      = GENERAL VARIABLE
C
C          (R*8)   XGS()    = GAUSSIAN QUADRATURE NODES
C          (R*8)   WGS()    = GAUSSIAN QUADRATURE WEIGHTS
C          (R*8)   VREL()   = RELATIVE SPEED OF PARTICLES FOR DIFFERENT
C                             ANGLES (CM S-1)
C          (R*8)   XSEC()   = CHARGE EXCHANGE CROSS-SECTIONS FOR
C                             RELATIVE SPEEDS AT DIFFERENT ANGLES (CM2)
C
C
C  ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          SIGCX      ADAS      INTERPOLATES CX CROSS-SECTION TABLES
C
C
C  AUTHOR:  H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C           JA8.08
C           TEL. 0141-553-4196
C
C  DATE:    17/11/95
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                 
C DATE    : 15-12-2006
C MODIFIED: Martin O'Mullane
C           - Trap vrel=0 before passing to sigcx.
C
C-----------------------------------------------------------------------
      INTEGER             ILTYP,       NEDIM,       NENIN,       NENOUT
      INTEGER             NTDIM
      LOGICAL             LPASS,       LSETX
      REAL*8              AMDON,       AMREC,       ENIN(NEDIM)
      REAL*8              ENOUT(NTDIM),             RCOUT(NTDIM,NTDIM)
      REAL*8              SGIN(NEDIM)
© Copyright 1995-2018 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk