ADAS Subroutine cxsqef
subroutine cxsqef( iunit , dsname , ibsel , & nqeff , epro , ttar , & em1 , em2 , iord , & ti , densi , zeff , bmag , & nener , ener , qener , & csymb , czion , cwavel , cdonor , crecvr , & ctrans , cfile , ctype , cindm , & qeff , ircode & ) C----------------------------------------------------------------------- C C ********************* FORTRAN77 SUBROUTINE : CXSQEF ****************** C C PURPOSE: Subroutine to evaluate Maxwell averaged effective rate C coefficients for charge exchange/Stark studies. C C The source data is effective coefficients in the C collisional/radiative sense or effective emission C coefficients for photon emission but before averaging C over ion/atom speed distribution functions. C C The function also returns the raw eff. coefft. data for C verification and graphing purposes. C C The effective rate coefficient appropriate to one of C the particles being in a monoenergetic beam and the other C belonging to a Maxwell distribution may be returned. C The target and projectile roles may be reversed. Arbitrary C relative speeds are allowed. C C SUBROUTINE: C C input : (i*4) iunit = unit number on which ionatom file is opened C input : (c) dsname = full name of data set to be opened and read C input : (i*4) ibsel = selector for particular rate coefft. C C input : (i*4) nqeff = number of rates to be evaluated (when ttar>0) C a 1d array of plasma/beam conditions are C evaluated to give a vector of rates. at C the moment, epro, ttar, ti, densi, zeff & C bmag are allowed to vary along the vector. C input : (r*8) epro = incident particle energy (ev/amu) C input : (r*8) ttar = maxwell temperature of target particles (ev) C if (ttar.le.0) then rates for t=0 are C returned C input : (r*8) em1 = atomic mass number of first particle C input : (r*8) em2 = atomic mass number of second particle C input : (i*4) iord = 1 for 1st particle incident and monoenergetic C = 2 for 2nd particle incident and monoenergetic C input : (r*8) ti = plasma ion temperature (ev) C input : (r*8) densi = plasma ion density (cm-3) C input : (r*8) zeff = plasma z effective C input : (r*8) bmag = plasma magnetic field (tesla) C C output: (r*8) qeff = rate coefficient (cm3 sec-1) C output: (i*4) nener = number of source data values C output: (r*8) ener(i) = set of energies (ev/amu) for C selected source data C output: (r*8) qener(i)= rate coeffts.(cm**3 sec-1) for C selected source data C output: (c*2) csymb = element symbol C output: (c*3) czion = emitting ion charge C output: (c*8) cwavel = wavelength (A) C output: (c*6) cdonor = donor neutral atom C output: (c*5) crecvr = receiver nucleus C output: (c*7) ctrans = transition C output: (c*10)cfile = specific ion file source C output: (c*2) ctype = type of emissivity C output: (c*3) cindm = emissivity index C output: (i*4) ircode = return code from subroutine: C 0 => normal completion - no error detected C 1 => error opening requested data set C exist - data set not connected C 3 => the selected data-block 'ibsel' is out C of range or does not exist. C C C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------ C xxdata_12 ADAS reads values from 'ionatom' dataset C c3corr ADAS calculates scaled plasma parameter C c3alrs ADAS calculates rate coefficient C C AUTHOR: C. J. WHITEHEAD, UNIVERSITY OF STRATHCLYDE C C DATE: 25/11/94 C C UPDATE: 19/12/94 HP SUMMERS - TIDIED UP FORMATTING C 03/01/95 HP SUMMERS - CORRECTED THERMAL AVERAGED RATE C COEFFICIENT BY INTRODUCING OAA ARRAY C C UPDATE: 11/01/95 PE BRIDEN - CHANGED DSNAME FROM C*30 TO C*44 C TO AGREE WITH THAT IN C2FILE. C - INITIALISE NBSEL AS ZERO. C C UPDATE: 03/05/95 PE BRIDEN - C3DATA CHANGED TO C3DATAO AS CURRENT C VERSION OF SQEF NEEDS TTO BE UPDATED C TO USE THE NEW VERSION OF C3DATA. C C UPDATE: 15/05/95 Tim Hammond - UNIX PORT C Put under SCCS control C---------------------------------------------------------------------- C C Copied from ...adas3xx/adas303/sqef.for, renamed and relocated as C ...adas3xx/adaslib/cxsqef.for. C C VERSION : 1.1 C DATE : 15-11-2002 C MODIFIED : Lorne Horton C - First version C - Switched to ADAS-standard C3DATA. C This is primarily a change to requiring the full C input file name as input. C - Increased NSTORE to 150 - consistent with ADAS303 C - Added loop to allow multiple evaluations per call. C This means changing from a function to a C subroutine C - Removed IPASS. Routine now re-reads data sets only C when theinput name has changed. C - Added SAVE statement C C C VERSION : 1.2 C DATE : 02-12-2004 C MODIFIED : Martin O'Mullane C - Replace c3data with xxdata_12. C - Place into central ADAS. C C VERSION : 1.3 C DATE : 17-05-2007 C MODIFIED : Allan Whiteford C - Updated comments as part of subroutine documentation C procedure. C C VERSION : 1.4 C DATE : 05-06-2007 C MODIFIED : Martin O'Mullane C - New version of xxdata_12 with extra outputs. C C---------------------------------------------------------------------- C---------------------------------------------------------------------- CHARACTER*6 CDONOR CHARACTER*10 CFILE CHARACTER*3 CINDM CHARACTER*5 CRECVR CHARACTER*2 CSYMB CHARACTER*7 CTRANS CHARACTER*2 CTYPE CHARACTER*8 CWAVEL CHARACTER*2 CZION CHARACTER*132 DSNAME INTEGER IBSEL, IORD, IRCODE, IUNIT INTEGER NENER, NQEFF REAL*8 BMAG(NQEFF), DENSI(NQEFF), EM1 REAL*8 EM2, ENER(MENER), EPRO(NQEFF) REAL*8 QEFF(NQEFF), QENER(MENER,NQEFF) REAL*8 TI(NQEFF), TTAR(NQEFF), ZEFF(NQEFF)