ADAS Subroutine cxther
C SUBROUTINE CXTHER ( NEDIM , NTDIM , & LSETX , LPASS , & AMDON , AMREC , & ALPH , ETH , ILTYP , & NENIN , ENIN , NENOUT , ENOUT , & SGIN , RCOUT & ) C----------------------------------------------------------------------- C C ********************** FORTRAN77 SUBROUTINE: CXTHER ***************** 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: ADAS302 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 : (R*8) ALPH = HIGH ENERGY EXTENSION PARAMETER C INPUT : (R*8) ETH = THRESHOLD ENERGY (RYD.) 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: 19-11-96 C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC) C - PUT UNDER S.C.C.S. CONTROL C C----------------------------------------------------------------------- INTEGER ILTYP, NEDIM, NENIN, NENOUT INTEGER NTDIM LOGICAL LPASS, LSETX REAL*8 ALPH, AMDON, AMREC REAL*8 ENIN(NEDIM), ENOUT(NTDIM), ETH REAL*8 RCOUT(NTDIM,NTDIM), SGIN(NEDIM)