ADAS Subroutine xxdata_12
subroutine xxdata_12(iunit , dsname , & ndtem , ndden , ndein , ndzef , ndmag , & ndstore, & nbsel , & csymb , czion , cwavel , cdonor , crecvr , & ctrans , cfile , ctype , cindm , & qefref , & enref , teref , deref , zeref , bmref , & nenera , ntempa , ndensa , nzeffa , nbmaga , & enera , tempa , densa , zeffa , bmaga , & qenera , qtempa , qdensa , qzeffa , qbmaga & ) c----------------------------------------------------------------------- c c ***************** fortran77 subroutine: xxdata_12 ******************* c c purpose : To fetch data from input dataset of type adf12. c c notes: Extensive rewrite of xxdata_12.for which it is a c replacement. Designed to handle automatically produced c heavy species data sets. c c calling program: adas316 and general c c subroutine: c c input : (i*4) iunit = unit number to read from c input : (c*80) dsname = mvs data set name of data set being read c input : (i*4) ndstore = maximum number of data blocks allowed c input : (i*4) ndtem = maximum number of electron temperatures c input : (i*4) ndden = maximum number of electron densities c input : (i*4) ndein = maximum number of beam energies c input : (i*4) ndzef = maximum number of z effectives c input : (i*4) ndmag = maximum number of magnetic fields c c output: (i*4) nbsel = number of blocks present c c output: (c*(*))csymb() = input data file: element symbol c dimension: data-block index c output: (c*(*))czion() = input data file: emitting ion charge c dimension: data-block index c output: (c*(*))cwavel() = input data file: wavelength (A) c dimension: data-block index c output: (c*(*))cdonor() = input data file: donor neutral atom c dimension: data-block index c output: (c*(*))crecvr() = input data file: receiver nucleus c dimension: data-block index c output: (c*(*))ctrans() = input data file: transition c dimension: data-block index c output: (c*(*))cfile() = input data file: specific ion file source c dimension: data-block index c output: (c*(*))ctype() = input data file: type of emissivity c dimension: data-block index c output: (c*(*))cindm() = file data file: emissivity index c dimension: data-block index c c output: (r*8) qefref() = reference value of rate coefficient c output: (r*8) enref() = " " " energy c output: (r*8) teref() = " " " temperature c output: (r*8) deref() = " " " density c output: (r*8) zeref() = " " " effective z c output: (r*8) bmref() = " " " magnetic field c output: (i*4) nenera() = number of energies c output: (i*4) ntempa() = number of temperatures c output: (i*4) ndensa() = number of densities c output: (i*4) nzeffa() = number of effective z's c output: (i*4) nbmaga() = number of magnetic field values c 1st. dim: ndstore c (for above arrays) c c output: (r*8) enera(,) = energies c output: (r*8) qenera(,) = rate coefficients for energy value c output: (r*8) tempa(,) = temperatures c output: (r*8) qtempa(,) = rate coefficients for temperatures c output: (r*8) densa(,) = densities c output: (r*8) qdensa(,) = rate coefficients for desnities c output: (r*8) zeffa(,) = effective z c output: (r*8) qzeffa(,) = rate coefficients for effective z c output: (r*8) bmaga(,) = magnetic field c output: (r*8) qbmaga(,) = rate coefficients for magnetic fields c 1st dim: 12 or 24 depending on parameter c 2nd dim: ndstore c c routines: c routine source brief description c ------------------------------------------------------------ c i4unit adas fetches file handle for error message c xxslen adas locate first and last char. of string c xxhkey adas extract response to key on a text line c xxcase adas convert a string to upper or lower case c c c author: h p summers, university of strathcldye c date: 31/05/07 c c update: c c VERSION : 1.1 c DATE : 05-06-2007 c MODIFIED : H P Summers c - First version. c c----------------------------------------------------------------------- CHARACTER*(*) CDONOR(NDSTORE), CFILE(NDSTORE) CHARACTER*(*) CINDM(NDSTORE), CRECVR(NDSTORE) CHARACTER*(*) CSYMB(NDSTORE), CTRANS(NDSTORE) CHARACTER*(*) CTYPE(NDSTORE), CWAVEL(NDSTORE) CHARACTER*(*) CZION(NDSTORE), DSNAME INTEGER IUNIT, NBMAGA(NDSTORE), NBSEL INTEGER NDDEN, NDEIN, NDENSA(NDSTORE) INTEGER NDMAG, NDSTORE, NDTEM, NDZEF INTEGER NENERA(NDSTORE), NTEMPA(NDSTORE) INTEGER NZEFFA(NDSTORE) REAL*8 BMAGA(NDMAG,NDSTORE), BMREF(NDSTORE) REAL*8 DENSA(NDDEN,NDSTORE), DEREF(NDSTORE) REAL*8 ENERA(NDEIN,NDSTORE), ENREF(NDSTORE) REAL*8 QBMAGA(NDMAG,NDSTORE) REAL*8 QDENSA(NDDEN,NDSTORE), QEFREF(NDSTORE) REAL*8 QENERA(NDEIN,NDSTORE) REAL*8 QTEMPA(NDTEM,NDSTORE) REAL*8 QZEFFA(NDZEF,NDSTORE), TEMPA(NDTEM,NDSTORE) REAL*8 TEREF(NDSTORE), ZEFFA(NDZEF,NDSTORE) REAL*8 ZEREF(NDSTORE)