ADAS Subroutine v2bnmod
SUBROUTINE V2BNMOD(IPOSNT , JDENS , JTE , NREP , F1 , & F2 , F3 , BNCALC , BNACT , XPOP , & IMAX , DENSH , DENS , DENSP , TE , & TP , BMENER , FLUX , DEXPTE , ALFA , & S , DSLPATH, NIMP , ZIMPA , ZEFF , & DNIMPA) IMPLICIT REAL*8 (A-H,O-Z) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: V2BNMOD ******************** C C VERSION: (ADAS91) - SEE SC CS COMMENTS FOR VERSION NO. C C PURPOSE: THIS CODE PERFORMS THE ACTUAL CALCULATIONS FOR ADAS 310 C IT IS IN AN INCOMPLETE VERSION AND THESE COMMENTS DO NOT C YET FOLLOW THE STANDARD ADAS PATTERN. C----------------------------------------------------------------------- C CALCULATION OF BN -1 CASE A,B C C EXCIT. XSECT. OPTIONS: C ---------------------- C (A) VAN REGEMORTER - ELECTRONS C (B) IMPACT PARAMETER - ELECTRONS C PROTONS C (C) PERCIVAL-RICHARDS - ELECTRONS C - PROTONS & ZIMP IONS C (D) VAINSHTEIN - PROTONS & ZIMP IONS C (E) SPECIAL LOW LEVEL - ELECTRONS C - PROTONS & ZIMP IONS C IONIS. XSECT. OPTIONS: C ---------------------- C (A) ECIP - ELECTRONS C (B) PERCIVAL-RICHARDS - PROTONS & ZIMP IONS C (C) SPECIAL LOW LEVEL - ELECTRONS C - PROTONS & ZIMP IONS C CX RECOM. XSECT. OPTIONS: C ------------------------- C (A) SPECIAL - H(1S) DONOR C C C NOTES C ----- C (A) SPECIAL LOW LEVEL DATA ACCESSED BY SPECIFIC ION ROUTINE C C ION ROUTINE ACCESSED FILE ACQUIS. ROUTINE C --- ------- ------------- --------------- C H0 NSUPH1 IONATOM.DATA(H) QH C HLIKE.DATA(AGG1984) - C C C (B) SPECIAL CHARGE EXCHANGE DATA FROM CHEXDATA.DATA C C ION DONOR ROUTINE DATA MEMBER ACQUIS. ROUTINE C --- ----- ------- ----------- --------------- C H0 H(1S) BNQCTB H1NEW1 BNQCTB C C C C C INPUT C IPOSNT = 0 BYPASS C = 1 LEAVE W1.NE.0 AND FORCE DENSH.EQ.0 C = 2 FORCE W1.EQ.0 AND FORCE DENSH.EQ.0 C = 3 LEAVE W1.NE.0 AND LEAVE DENSH.NE.0 C = 4 FORCE W1.EQ.0 AND LEAVE DENSH.NE.0 C = 5 BYPASS C JDENS = DENSITY SELECTOR C JTE = TEMPERATURE SELECTOR C NREP(I) = PRINCIPAL QUANTUM NUMBER OF ITH REPRESENTATIVE LEVEL C XPOP(I) = POPULATIONS OF REPRESENTATIVE LEVELS C IMAX = NUMBER OF REPRESENTATIVE LEVELS C DENSH = NEUTRAL HYDROGEN DENSITY IN BEAM (CM-3) C DENS = ELECTRON DENSITY (CM-3) C DENSP = PROTON/DEUTERON DENSITY (CM-3) C TE = ELECTRON TEMPERATURE (K) C TP = PROTON/DEUTERON TEMPERATURE (K) (SAME FOR ZIMP IONS) C BMENER = NEUTRAL BEAM PARTICLE ENERGY (EV/AMU) C FLUX = NEUTRAL BEAM FLUX (CM-2 SEC-1) C DEXPTE(I)= EXP(ATE/NREP(I)**2) FOR ITHE REPRESENTATIVE LEVEL C DSLPATH = STRING CONTAINING PATH TO THE REQUIRED INPUT FILES C CALLED BY NSUPH1.FOR C C OUTPUT C F1 = C F2 = C F3 = C BNCALC = C BNACT = C ALPHA = C S = C C INPUT SPECIFICATION FOR STREAM 51 DATA FILE C C NUCCHG = NUCLEAR CHARGE C EXMEMB = DATA SET NAME OF EXPANSION FILE USED BY CLDLBN2 C CXMEMB = DATA SET NAME FOR CHARGE EXCHANGE DATA TO BE USED BY C BNQCTB C IBLOCK = SUB-BLOCK SELECTOR FOR CXMEMB C C JDENSM = NUMBER OF DENSITIES C JTEM = NUMBER OF TEMPERATURES C TS = EXTERNAL RADIATION FIELD TEMPERATURE (K) C W = EXTERNAL RADIATION FIELD DILUTION FACTOR (HIGH LEVELS) C Z = RECOMBINING ION CHARGE (Z1 IN USUAL NOTATION) C CION = MULTIPLIER OF GROUND LEVEL ELECTRON IMPACT IONISATION C RATE COEFFICIENT C CPY = MULTIPIER ON ELECTRON IMPACT EXCITATION RATE COEFFICIENT C FORM THE GROUND LEVEL C W1 = EXTERNAL RADIATION FIELD DILUTION FACTOR FOR PHOTO-IONI C SATION FORM THE GROUND LEVEL. C C NIP = RANGE OF DELTA N FOR IMPACT PARAMETER XSECTS. (LE.4) C INTD = ORDER OF MAXWELL QUADRATURE FOR XSECTS. (LE.3) C IPRS = 0 DEFAULT TO VAN REGEMORTER XSECTS. BEYOND NIP RANGE C 1 USE PERCIVAL-RICHARDS XSECTS. BEYOND NIP RANGE C ILOW = 0 NO SPECIAL LOW LEVEL DATA ACCESSED C 1 SPECIAL LOW LEVEL DATA ACCESSED C IONIP = 0 NO ION IMPACT COLLISIONS INCLUDED C 1 ION IMPACT EXCITATION AND IONISATION INCLUDED C NIONIP = RANGE OF DELTA N FOR ION IMPACT EXCITATION XSECTS. C ILPRS = 0 DEFAULT TO VAINSHTEIN XSECTS. C 1 USE LODGE-PERCIVAL-RICHARDS XSECTS. C IVDISP = 0 ION IMPACT AT THERMAL MAXWELLIAN ENERGIES C 1 ION IMPACT AT DISPLACED THERMAL ENERGIES ACCORDING C TO THE NEUTRAL BEAM ENERGY PARAMETER C * IF(IVDISP=0 THEN SPECIAL LOW LEVEL DATA FOR ION C IMPACT IS NOT SUBSTITUTED - ONLY VAINSHTEIN AND C LODGE ET AL. OPTIONS ARE OPEN. ELECTRON IMPACT C DATA SUBSTITUTION DOES OCCUR. C 1 = PLASMA Z EFFECTIVE C NOSCAN = 0 EXECUTE SCANNING VERSION OF CODE C 1 EXECUTE SIMULTANEOUS IMPURITY NO SCAN RUN C NIMP = NUMBER OF IMPURITIES (EXCL.H+) IN NO SCAN CASE C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------- C MATINV ADAS MATRIX INVERSION WITH ACCOMPANYING C SOLUTION OF LINEAR EQUATIONS C DIEL_310 ???? C C C C ********* H.P.SUMMERS, JET 11 APR 1990 *************** C ********* ALT. 17 JUL 1991 SUB. RQINEW, C RQLNEW, RQVNEW C ********* ALT. 10 JAN 1994 ALLOW MULTIPLE C SIMULT.IMPURITY C----------------------------------------------------------------------- C C----------------------------------------------------------------------- C C UPDATE: 19/01/94 - JONATHAN NASH - TESSELLA SUPPORT SERVICES PLC C C THE FOLLOWING MODIFICATIONS HAVE BEEN MADE TO THE SUBROUTINE: C C 1) THE INPUT FILE UNIT NUMBER HAS BEEN CHANGED FROM 5 TO 51. C C 2) THE SIZES OF 'EXMEMB' AND 'CXMEMB' HAVE BEEN INCREASED C AS THEY NOW CONTAIN THE FULL DATA SET NAMES RATHER THAN C JUST THE MEMBER NAMES. C C 3) A PARAMETER FLAG HAS BEEN ADDED TO SWITCH ON/OFF C DIAGNOSTIC PRINTING (UNIT 6). C C NOTES: NO ATTEMPT HAS BEEN MADE TO RESTRUCTURE THE ROUTINE. RATHER C THE MINIMUM AMOUNT OF WORK TO INTEGRATE THE ROUTINE INTO C ADAS310 HAS BEEN COMPLETED. C C UNIX-IDL PORT: C C VERSION: 1.1 DATE: 12-12-95 C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC) C - FIRST VERSION C - REPLACED ALL HOLLERITH CONSTANTS H0 ANF H1 WITH C H<SPACE> C - REPLACED HOLLERITH CONSTANTS WITH STANDARD STRINGS C IN FORMAT STATEMENTS 117, 128 AND 129. C - TIDIED UP PARTS OF THE COMMENTS AND CODE C - ADDED STRING DSLPATH TO BE USED TO CONSTRUCT UNIX C STYLE FILENAMES IN NSUPH1.FOR C C VERSION: 1.2 DATE: 24-01-96 C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC) C - ADDED NBENG TO INPUT LIST AND CALL TO BNQCTB C C VERSION: 1.3 DATE: 24-01-96 C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC) C - REVERSED ABOVE CHANGE C C VERSION: 1.4 DATE: 27-09-96 C MODIFIED: WILLIAM OSBORN + HUGH SUMMERS C - REMOVED MISTAKEN TEST FOR 1.LE.0.0D0 IN C THE CASE OF MULTIPLE IMPURITIES. C VERSION: 1.5 C MODIFIED: HARVEY ANDERSON C - IMPROVED THE HANDLING OF MULTIPLE IMPURITIES TO C INCLUDE HYDROGEN. C - ALTERED THE CALLING STRUCTURE OF THIS ROUTINE TO C ALLOW ADDITIONAL VARIABLES TO BE PASSED TO RUN310. C - INCREASED THE SIZE OF THE ARRAYS DENSA, DENPA, TEA C AND TPA FROM 10 TO 25. C C VERSION : 1.6 C DATE : 04-04-2000 C MODIFIED: RICHARD MARTIN C - CHANGED NAME OF DIEL SUBROUTINE TO DIEL_310 C C VERSION : 1.7 C DATE : 22-02-2005 C MODIFIED: Martin O'Mullane C - A real*8 parameter of cldlbn2 which was passed as an C integer (1) to cldlbn2 is changed to a double (1.0D0). C - Direct debug output stream to unit 0. C - Remove IBM error underflow and errset routines. C C VERSION : 1.8 C DATE : 27-06-2007 C MODIFIED: Martin O'Mullane C - Add lpass as argument to cldlbn2. Set to .TRUE. C C----------------------------------------------------------------------- CHARACTER*80 DSLPATH INTEGER IMAX, IPOSNT, JDENS, JTE INTEGER NIMP, NREP(31) REAL*8 ALFA, BMENER, BNACT(30) REAL*8 BNCALC(30), DENS, DENSH, DENSP REAL*8 DEXPTE(550), DNIMPA(10), F1(30), F2(30) REAL*8 F3(30), FLUX, S, TE REAL*8 TP, XPOP(2), ZEFF REAL*8 ZIMPA(10)