ADAS Subroutine qh
FUNCTION QH(EPRO,TTAR,ISEL,ZSEL,NSEL,IORD,EA,OA,N,IPASS,
& TITLF, DSLPATH)
C
IMPLICIT REAL*8(A-H,O-Z)
C
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 FUNCTION: QH ***************************
C
C PURPOSE : FUNCTION TO EVALUATE MAXWELL AVERAGED TOTAL
C IONISATION, EXCITATION AND CHARGE EXCHANGE RATE
C COEFFICIENTS. THE FUNCTION ALSO RETURNS THE RAW
C CROSS-SECTION DATA FOR VERIFICATION AND GRAPHING
C PURPOSES. THE INCIDENT PARTICLE IS A MONOENERGETIC
C BEAM AND THE TARGET IS A MAXWELL DISTRIBUTION. THE
C TARGET AND PROJECTILE ROLES MAY BE REVERSED. ARBITRARY
C RELATIVE SPEEDS ARE ALLOWED. THE RATE COEFFICIENT
C REQUIRED IS SELECTED FROM A LIST. THERE IS SOME
C SCALED DATA. ALL X-SECTS INVOLVE HYDROGEN AS ONE OF
C THE SPECIES.
C
C INPUT
C EPRO = INCIDENT PARTICLE ENERGY (EV/AMU)
C TTAR = MAXWELL TEMPERATURE OF TARGET PARTICLES (EV)
C IF (TTAR.LE.0) THEN ONLY RAW SOURCE VALUES ARE RETURNED
C IN ARRAYS (EA(I),OA(I), I=1,N)
C ISEL = SELECTOR FOR PARTICULAR RATE COEFFT. CHOSEN FROM TABLE
C BELOW (SEE ALSO NOTES ON DATA)
C ZSEL = NUCLEAR CHARGE (REQUIRED ONLY FOR PARTICULAR ISEL)
C NSEL = PRINC. QUANTUM NO. (REQUIRED ONLY FOR PARTICULAR ISEL
C NB. NSEL SHOULD BE ZERO ON ENTRY OTHERWISE)
C IORD = 1 FOR 1ST PARTICLE INCIDENT AND MONOENERGETIC
C = 2 FOR 2ND PARTICLE INCIDENT AND MONOENERGETIC
C IPASS = 0 IF DATA FILE TO BE READ IN AFRESH
C = 1 IF DATA FILE IS NOT TO BE READ IN AGAIN
C OUTPUT
C QH = RATE COEFFICIENT (CM3 SEC-1)
C EA(I) = SET OF ENERGIES (EV/AMU) FOR SELECTED SOURCE DATA
C OA(I) = CROSS-SECTIONS (CM**2) FOR SELECTED SOURCE DATA
C N = NUMBER OF SOURCE DATA VALUES
C TITLF = INFORMATION STRING
C
C
C *********** H.P.SUMMERS,JET 20 JUL 1990 ***************
C *********** COR 31 JUL 1990 ***************
C *********** ADD 3 JUL 1991 ***************
C
C NOTES: THIS ROUTINE IS NOT YET PROPERLY ANNOTATED
C
C UNIX-IDL PORT:
C
C VERSION: 1.1 DATE: 18-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - PUT UNDER SCCS CONTROL
C - MODIFIED NAME OF INPUT FILE BY ADDING INPUT
C PARAMETER DSLPATH CONTAINING THE PATH TO THE
C FILE AND INCREASING THE LENGTH OF THE VARIABLE DSNAME
C
C VERSION: 1.2 DATE: 18-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - MODIFIED CONSTRUCTION OF DSLPATH
C
C VERSION: 1.3 DATE: 22-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - REPLACED CALLS TO NAG ROUTINE E02BBF WITH CALL
C TO ADAS REPLACEMENT ROUTINE DXNBBF
C
C VERSION: 1.4 DATE: 23-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - REPLACED CALL TO NAG ROUTINE E01BAF WITH CALL
C TO ADAS REPLACEMENT ROUTINE DXNBAF (NOTE THAT
C THIS IS NOT A DIRECT REPLACEMENT ROUTINE BUT
C HOPEFULLY IT WILL NOW GIVE THE SAME RESULTS)
C
C VERSION: 1.5 DATE: 08-02-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - REMOVED SUPERFLUOUS VARIABLES
C
C VERSION: 1.6 DATE: 08-02-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - CORRECTED NAME "TRING" TO "STRING"
C
C VERSION: 1.7 DATE: 26/11/96
C MODIFIED: HARVEY ANDERSON
C MODIFIED FORMAT STATEMENT 1001 AND THE READ
C STATEMENT BEGINING ON LINE 146 TO ACCOMODATE
C FOR THE NEW FORMAT OF THE ADF02 FILE
C /SIA#H/SIA#H_RFM#H.DAT. ALSO MODIFIED THE
C DSNAME ON LINE 143. ALSO SLIGHTLY MODIFIED
C LINE 152 AND 153 DUE TO THE NEW FORMAT OF
C THE FILE. ALSO MODIFIED THE SELECT NUMBERS
C ASSOCIATED WITH THE SCALING.
C
C VERSION: 1.8 DATE: 03-04-97
C MODIFIED: HARVEY ANDERSON
C MODIFIED TO USE NEW PREFERRED ADF02 FILE sia#h_j97.dat
C
C VERSION: 1.9 DATE: 08-04-97
C MODIFIED: RICHARD MARTIN
C CHANGED NAME OF ADF02 FILE FROM sia#h_j97.dat TO
C sia#h_j97#h.dat
C
C VERSION: 1.10 DATE: 08-04-97
C MODIFIED: RICHARD MARTIN
C CORRECTED MISTAKE MADE IN PREVIOUS MODIFICATION
C
C VERSION: 1.11 DATE: 09-08-99
C MODIFIED: HARVEY ANDERSON
C CHANGED NAME OF THE ADF02 FILE FROM sia#h_j97#h.dat
C TO sia#h_j99#h.dat.
C
C VERSION: 1.12 DATE: 20-10-2003
C MODIFIED: Martin O'Mullane
C Save variables read from file between calls.
C
C VERSION: 1.13 DATE: 07-07-2004
C MODIFIED: ALLAN WHITEFORD
C -CHANGED CALLS FROM DXNB{A,B}F TO XXNB{A,B}F
C
C----------------------------------------------------------------------
CHARACTER*80 DSLPATH, TITLF
INTEGER IORD, IPASS, ISEL, N
INTEGER NSEL
REAL*8 EA(24), EPRO, OA(24), TTAR
REAL*8 ZSEL