ADAS Subroutine xxdata_25
subroutine xxdata_25( iunit , a25fmt , dsname ,
& ndtem , ndden , ndrep , ndcor , nddiel ,
& nddef , ndimp , ndein , ndzef ,
& iz0 , iz1 , outfmt ,
& exfile , cxfile ,
& ndens , id_ref , densa , denpa , denimpa,
& deniona,
& ntemp , it_ref , tea , tpa , timpa ,
& tiona ,
& nzef , iz_ref , zefa ,
& nbeam , ib_ref , bmena , denha , bmfra ,
& nimp , im_ref , zimpa , amimpa, frimpa ,
& ts , w , w1 ,
& cion , cpy , nip , intd , iprs ,
& ilow , ionip , nionip , ilprs , ivdisp ,
& nmin , nmax , imax , nrep , wbrep ,
& jdef , def ,
& jcor , cor , jmax , epsil , fij ,
& wij
& )
c-----------------------------------------------------------------------
c
c ***************** fortran77 subroutine: xxdata_25 *******************
c
c purpose: To fetch data from an adf25 driver dataset.
c
c Notes:
c
c Subroutine:
c
c input : (i*4) iunit = unit number for input adf01 file.
c input : (c*8) a25fmt = subdirectory type of adf25 to be read.
c input : (c*80) dsname = file name of adf25 format to be read.
c
c input : (i*4) ndtem = maximum number of electron temperatures
c input : (i*4) ndden = maximum number of electron densities
c input : (i*4) ndrep = maximum number of representative n-shells
c input : (i*4) ndcor = maximum number of DR bethe corrections
c input : (i*4) nddiel = maximum number of DR core transitions
c input : (i*4) nddef = maximum number of quantum defects
c input : (i*4) ndimp = maximum number of plasma impurities
c input : (i*4) ndein = maximum number of beam energies
c input : (i*4) ndzef = maximum number of z effectives
c
c input : (i*4) iz0 = nuclear charge of bundle-n ion
c input : (i*4) iz1 = recombining ion charge of bundle-n ion
c input : (c*5) outfmt = format of output ADAS data format for final
c results
c input : (c*80) cxfile = file name for charge exchange data input
c input : (c*80) exfile = file name for map of proj. matrix output
c
c input : (i*4) ndens = number of electron densities
c input : (i*4) id_ref = reference electron density pointer in vectors
c input : (i*4) densa() = plasma electron density vector (cm-3)
c 1st dim: index of electron density
c input : (i*4) denpa() = plasma H+ density vector (cm-3)
c 1st dim: index of electron density
c input : (i*4) denimpa()= plasma mean impurity ion density (cm-3)
c 1st dim: index of electron density
c input : (i*4) deniona()= total ion density (plasma+impurity) (cm-3)
c 1st dim: index of electron density
c
c input : (i*4) ntemp = number of electron temperatures
c input : (i*4) id_ref = reference electron temp. pointer in vectors
c input : (i*4) tea() = plasma electron temp. vector (K)
c 1st dim: index of electron temperature
c input : (i*4) tpa() = plasma H+ temp. vector (K)
c 1st dim: index of electron temperature
c input : (i*4) timpa() = plasma mean impurity ion temp (K)
c 1st dim: index of electron temperature
c input : (i*4) tiona() = mean ion temp (plasma+impurity) (K)
c 1st dim: index of electron temperature
c
c input : (i*4) nzef = number of plasma zeff
c input : (i*4) iz_ref = reference zeff pointer in vector
c input : (i*4) zefa() = plasma zeff vector
c 1st dim: index of zeff
c
c input : (i*4) nbeam = number of beam energies
c input : (i*4) ib_ref = reference beam energy pointer in vectors
c input : (i*4) bmena() = beam energy vector (ev/amu)
c 1st dim: index of beam energies
c input : (i*4) denha() = beam H+ density vector (cm-3)
c 1st dim: index of beam energies
c input : (i*4) bmfra() = fractions of beam at each energy
c 1st dim: index of beam energies
c
c input : (i*4) nimp = number of plasma impurities (excl.h+)
c input : (i*4) im_ref = reference impurity pointer in vectors
c input : (r*8) zimpa() = impurity species charge
c 1st dim: index of impurity
c input : (r*8) amimpa() = atomic mass number of impurity species
c 1st dim: index of impurity
c input : (r*8) frimpa() = fraction of impurity (normalised to 1)
c 1st dim: index of impurity
c
c input : (r*8) ts = external radiation field temperature (K)
c input : (r*8) w = general radiation dilution factor
c input : (i*4) w1 = external radiation field dilution factor
c for photo-ionisation form the ground level.
c
c input : (r*8) cion = adjustment multiplier for ground ionis.
c input : (r*8) cpy = adjustment multiplier for VR xsects.
c input : (i*4) nip = range of delta n for IP xsects. (le.4)
c input : (i*4) intd = order of Maxw. quad. for IP xsects.(le.3)
c input : (i*4) iprs = 0 => default to VR xsects. beyond nip range
c 1 => use PR xsects. beyond nip range
c input : (i*4) ilow = 0 => no special low level data accessed
c 1 => special low level data accessed
c input : (i*4) ionip = 0 => no ion impact collisions included
c 1 =>ion impact excit. and ionis. included
c input : (i*4) nionip = range of delta n for ion impact
c excitation xsects.
c input : (i*4) ilprs = 0 => default to vainshtein xsects.
c 1 => use lodge-percival-richards xsects.
c input : (i*4) ivdisp = 0 => ion impact at thermal Maxw. energies
c 1 => ion impact at displaced thermal
c energies according to the neutral
c beam energy parameter
c * if(ivdisp=0 then special low level
c data for ion impact is not substituted -
c only vainshtein and lodge et al.
c options are open. Electron impact
c data substitution does occur.
c input : (i*4) nmin = lowest n-shell for population structure
c input : (i*4) nmax = highest n-shell for population structure
c input : (i*4) imax = number of representative n-shells
c input : (i*4) nrep() = representative n-shells
c 1st dim: index of representative n-shell
c input : (r*8) wbrep() = dilution factors for nmin->nrep() trans.
c 1st dim: index of representative n-shell
c input : (i*4) jdef = number of n-shell quantum defects
c input : (r*8) def() = quantum defects for n-shells
c 1st dim: index of n-shell quantum defects
c upwards from nmin
c input : (i*4) jcor = number of DR Bethe correction factors
c input : (r*8) cor() = DR Bethe correction factors
c 1st dim: index of correction factor
c input : (i*4) jmax = number of DR core transitions
c input : (r*8) epsil() = reduced energy of core transition
c [delta Eij/I_H=(z+1)^2*epsil()]
c 1st dim: index of DR core transition
c input : (r*8) fij() = absorption oscillator strength for
c DR core transition
c 1st dim: index of DR core transition
c input : (r*8) wij() = dilution factor for DR core transition
c 1st dim: index of DR core transition
c
c Routines:
c
c routine source brief description
c -------------------------------------------------------------
c xxcase adas convert string to upper or lower case
c xxslen adas locate first and last char. of string
c
c
c Author : Hugh Summers
c Date : 23-05-2007
c
c
c Version : 1.1
c Date : 23-05-2007
c Author : Hugh Summers
c - First release.
c
c Version : 1.2
c Date : 21-11-2007
c Author : Martin O'Mullane
c - Increase number of lines to 150 to accommodate full
c range of energies/temperatures/densities of
c the dataformat.
c
c-----------------------------------------------------------------------
CHARACTER*8 A25FMT
CHARACTER*(*) CXFILE, DSNAME, EXFILE
CHARACTER*5 OUTFMT
INTEGER IB_REF, ID_REF, ILOW, ILPRS
INTEGER IMAX, IM_REF, INTD, IONIP
INTEGER IPRS, IT_REF, IUNIT, IVDISP
INTEGER IZ0, IZ1, IZ_REF, JCOR
INTEGER JDEF, JMAX, NBEAM, NDCOR
INTEGER NDDEF, NDDEN, NDDIEL, NDEIN
INTEGER NDENS, NDIMP, NDREP, NDTEM
INTEGER NDZEF, NIMP, NIONIP, NIP
INTEGER NMAX, NMIN, NREP(NDREP+1)
INTEGER NTEMP, NZEF
REAL*8 AMIMPA(NDIMP), BMENA(NDEIN)
REAL*8 BMFRA(NDEIN), CION
REAL*8 COR(NDCOR), CPY, DEF(NDDEF)
REAL*8 DENHA(NDEIN), DENIMPA(NDDEN)
REAL*8 DENIONA(NDDEN), DENPA(NDDEN)
REAL*8 DENSA(NDDEN), EPSIL(NDDIEL)
REAL*8 FIJ(NDDIEL), FRIMPA(NDIMP)
REAL*8 TEA(NDTEM), TIMPA(NDTEM)
REAL*8 TIONA(NDTEM), TPA(NDTEM), TS
REAL*8 W, W1, WBREP(NDREP)
REAL*8 WIJ(NDDIEL), ZEFA(NDZEF), ZIMPA(NDIMP)