ADAS Subroutine xxdata_37
subroutine xxdata_37( iunit ,
& nemax , ntmax ,
& title , icateg , nenerg , nblock ,
& nform1 , param1 , nform2 , param2 ,
& ea , fa , teff , mode ,
& median , filnam , filout , calgeb ,
& ealgeb
& )
C-----------------------------------------------------------------------
C
C ****************** fortran77 subroutine: xxdata_37 ******************
C
C purpose: To fetch data from an adf37 data set and detect its main
C characteristics.
C
C calling program: various
C
C input : (i*4) iunit = unit to which input file is allocated
C input : (i*4) nemax = max no of energy points that can be read in
C input : (i*4) ntmax = max no of effective temps that can be read in
C
C output: (c*80) title = header for file
C output: (i*4) icateg = category of file
C 1 => superposition
C 2 => numerical
C output: (i*4) nenerg = type 1 => number of distribution families
C type 2 => number of energy points
C output: (i*4) nblock = type 1 => number of members in output family
C type 2 => number of effective temperatures
C output: (i*4) nform1 = type of threshold behaviour
C 1 => cutoff
C 2 => energy^param1
C output: (r*8) param1 = parameter of threshold form
C output: (i*4) nform2 = type of high-energy behaviour
C 1 => cutoff
C 2 => energy^-param2(1)
C 3 => exp(-param2(1)*energy)
C 4 => exp(-param2(1)*energy^param2(2))
C output: (r*8) param2() = parameter of high-energy form
C output: (r*8) ea(,) = energy points of tabulation
C output: (r*8) fa(,) = distribution function tabulation
C output: (r*8) teff() = effective temperature (eV)
C output: (r*8) mode() = most probable energy (eV)
C output: (r*8) median() = median energy (eV)
C output: (c*120)filnam() = file names of input families
C output: (c*120)filout = file name of output family
C output: (c*25) calgeb(,)= distribution function algebra
C output: (c*25) ealgeb() = energy parameter algebra
C
C local : (i*4) ieunit = energy units of distribution function
C 1 => kelvin
C 2 => eV
C local : (i*4) i = general use
C local : (i*4) j = general use
C local : (i*4) med_index= energy index of median
C local : (i*4) mode_index() = energy index of mode
C local : (i*4) dummy = general use
C local : (i*4) ie = general use
C local : (i*4) iblock = general use
C local : (r*8) sum = average energy contribution from i -> i+1
C local : (r*8) contrib()= average energy contribution from i -> i+1
C local : (r*8) de = energy step from i -> i+1
C local : (i*4) ifirst = position of first non-blank character in string
C local : (i*4) ilast = position of last non-blank character in string
C local : (i*4) indx() = index of algebra
C local : (c*80) blank = dummy string
C
C routines:
C routine source brief description
C -------------------------------------------------------------
C i4unit ADAS fetch unit number for output of messages
C xxslen ADAS finds string length excluding leading and
C trailing blanks
C
C author: Paul Bryans, University of Strathclyde
C
C date: 04/02/04
C
C update:
C
C
C-----------------------------------------------------------------------
CHARACTER*25 CALGEB(NTMAX,4), EALGEB(NTMAX)
CHARACTER*120 FILNAM(NEMAX), FILOUT
CHARACTER*80 TITLE
INTEGER ICATEG, IUNIT, NBLOCK, NEMAX
INTEGER NENERG, NFORM1, NFORM2, NTMAX
REAL*8 EA(NTMAX,NEMAX), FA(NTMAX,NEMAX)
REAL*8 MEDIAN(NTMAX), MODE(NTMAX), PARAM1
REAL*8 PARAM2(2), TEFF(NTMAX)