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