ADAS Subroutine ceevth
SUBROUTINE CEEVTH ( NDENR , & LSETX , LPASS , & AMDON , AMREC , CATYP , DREN , & ILTYP , IEXTYP , & NENIN , ENIN , NENOUT , ENOUT , & SGIN , RCOUT & ) C----------------------------------------------------------------------- c C ********************** FORTRAN77 SUBROUTINE: CEEVTH ***************** C C VERSION: 1.0 C C PURPOSE: OBTAINS RATE COEFFICIENTS FOR DONOR/RECEIVER CHARGE C EXCHANGE COLLISIONS FOR CASES OF C MONOENERGETIC DONOR/THERMAL RECEIVER, THERMAL C DONOR/MONOENERGETIC RECEIVER, THERMAL DONOR/THERMAL C RECEIVER (SAME TEMPERATURE) FROM CROSS-SECTION TABULATIONS. C C A MONO-ENERGETIC CASE IS ALLOWED WHICH CONVERTS INPUT C CROSS-SECTIONS TABULATED AT A SET OF ENERGIES/AMU TO C OUTPUT CROSS-SECTIONS TABULATED A DIFFERENT SET OF C ENERGIES/AMU. C C CALLING PROGRAM: ADAS314 C C C SUBROUTINE: C C INPUT : (I*4) NDENR = MAX. NUMBER OF ENERGIES/TEMPERATURES C IN INPUT/OUTPUT ENERGY/TEMPERATURE C VECTORS 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 .FALSE.=> 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 : (C2) CATYP = 'TT' THERMAL/THERMAL (EQUAL TEMPERATURES C FOR DONOR AND RECEIVER ONLY) C 'TR' THERMAL RECEIVER, MONOENERGETIC DONOR C 'TD' THERMAL DONOR, MONOENERGETIC RECEIVER C 'ME' SPECIAL MONOENERGETIC CASE C INPUT : (R*8) DREN = DONOR ENERGY ( 'TR' CASE ) C RECEIVER ENERGY ( 'TD' CASE ) C INPUT : (I*4) ILTYP = TYPE FOR LOW AND HIGH ENERGY CROSS- C SECTION EXTRAPOLATION C *** a redundant parameter *** C *** superceeded by IEXTYP *** C (I*4) IEXTYP = 1 => SET LOWER ENERGIES TO FIRST POINT IN DATA C = 2 => SET LOWER ENERGIES TO 0.0 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 FOR C 'TT', 'TD', 'TR' CASES. C = ENERGY/AMU FOR OUTPUT DATA SET FOR C 'ME' CASE. 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: TEMPERATURE INDEX C (I*4) I = GENERAL INDEX C (I*4) IT = 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 (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 (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 CESGCX 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 DATE: 02/11/95 C C UPDATE: 09/07/98 Martin O'Mullane C CHANGED NAME FROM CXTHER TO CDEVTH. SIMILAR FUNCTIONALITY C BUT IS EXTENDED TO DEAL WITH EXTRA AVERAGING METHODS. C C VERSION: 1.1 DATE: 01-12-98 C MODIFIED: RICHARD MARTIN C - PUT UNDER SCCS CONTROL C C VERSION: 1.2 DATE: 24-03-99 C MODIFIED: MARTIN O'MULLANE C - SECOND VERSIONS C C VERSION: 1.3 DATE: 17-05-07 C MODIFIED: Allan Whiteford C - Updated comments as part of subroutine documentation C procedure. C----------------------------------------------------------------------- CHARACTER*2 CATYP INTEGER IEXTYP, ILTYP, NDENR, NENIN INTEGER NENOUT LOGICAL LPASS, LSETX REAL*8 AMDON, AMREC, DREN REAL*8 ENIN(NDENR), ENOUT(NDENR) REAL*8 RCOUT(NDENR), SGIN(NDENR)