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)