Search Site | Contact Details | FAQ

ADAS Subroutine d8eval

       SUBROUTINE D8EVAL ( dsn03    , dsn35    ,
     &                     NUMTE    , TEMIN    , TEMAX    ,  
     &                     NUMNE    , FNEMIN   , FNEMAX   , 
     &                     FUELMAS  , 
     &                     TEL      , FNEL     , NAME     , 
     &                     iz0      , izl      , izu      ,
     &                     RAL      , SAL0     , SAL      , CAL     ,
     &                     PRBL     , PRCL     , PLTL0    , PLTL    ,
     &                     PLSL0    , PLSL     , 
     &                     PRBLNFL  , PRCLNFL  , PLTL0NFL , PLTLNFL ,
     &                     ralrr    , raldr    ,
     &                     prbrr    , prbdr    , prbbr    ,
     &                     prbrrnfl , prbdrnfl , prbbrnfl ,
     &                     INFRAL   , INFSAL   , INFCAL   ,
     &                     INFPRB   , INFPRC   , INFPLT   , INFPLS  ,
     &                     INFPRBN  , INFPRCN  , INFPLTN  ,
     &                     METRAL   , METSAL   , METCAL   ,
     &                     METPRB   , METPRC   , METPLT   , METPLS  ,
     &                     METPRBN  , METPRCN  , METPLTN  ,
     &                     ltick            
     &                   )
 
 
 
 
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: D8EVAL *********************
C
C
C  PURPOSE:  To calculate tables of values of ionisation, recombination
C            and radiated power rates for non-coronal impurity studies
C            over a given temperature and density range with atomic
C            data parameters from files of format adf03
C
C  CALLING PROGRAM: ADAS408
C
C
C
C  SUBROUTINE:
C
C  INPUT:  (C*80) dsn03       = adf03 atompars file
C  INPUT:  (C*80) dsn35       = adf35 filter data file
C
C  
C
C  THE OUTPUT ARRAYS ARE INDEXED
C          XXX(,) = XXX(ITDIMD,IDDIMD,IZDIMD) 1ST DIMENSION TEMPERATURE
C                                              2ND DIMENSION DENSITY
C                                              3RD DIMENSION ION STAGE
C  ALL TABLES ARE LOG10 IN CGS UNITS
C
C
C  OUTPUT: (R*8)  TEL()       = TEMPERATURE SET OF TABLES - LOG MESH
C          (R*8)  FNEL()      = DENSITY SET OF TABLES - LOG MESH
C          (C*13) NAME        = ELEMENT NAME
C
C          (R*8)  RAL(,,)     = RADIATIVE AND DIELECTRONIC RECOMB.
C          (R*8)  CAL(,,)     = CHARGE EXCHANGE RECOMBINATION
C
C          (R*8)  SAL0(,)     = IONISATION (NEUTRAL)
C          (R*8)  SAL(,,)     = IONISATION (NON-NEUTRAL)
C
C          (R*8)  PLTL0(,)    = TOTAL LINE RADIATED POWER (NEUTRAL)
C          (R*8)  PLTL(,,)    = TOTAL LINE RADIATED POWER (NON-NEUTRAL)
C
C          (R*8)  PRBL(,,)    = RAD. + DIEL RECOM. + BREMS. POWER
C          (R*8)  PRCL(,,)    = CX. RECOM. POWER
C
C          (R*8)  PLSL0(,)    = SPECIFIC LINE POWER   (NEUTRAL)
C          (R*8)  PLSL(,,)    = SPECIFIC LINE POWER   (NON-NEUTRAL)
C
C          (R*8)  PRBLNFL(,,) = RECOM+BREMM POWER (NO FILTER)
C          (R*8)  PRCLNFL(,,) = CX POWER (NO FILTER)
C          (R*8)  PLTLNFL(,,) = LINE POWER (NO FILTER)
C          (R*8)  PLTL0NFL(,,)= NEUTRAL LINE POWER (NO FILTER)
C
C          (C*8)  INFRAL()    = RECOMBINATION INFO STRING
C          (C*8)  INFSAL()    = IONISATION INFO STRING
C          (C*8)  INFCAL()    = CX INFO STRING
C          (C*8)  INFPRB()    = RECOM+BREMM POWER INFO STRING
C          (C*8)  INFPRC()    = CX POWER INFO STRING
C          (C*8)  INFPLT()    = TOTAL LINE POWER INFO STRING
C          (C*8)  INFPLS()    = SPECIFIC LINE POWER INFO STRING
C          (C*8)  INFPRBN()   = RECOMM+BREM POWER (NO FILTER) INFO
C          (C*8)  INFPRCN()   = CX POWER (NO FILTER) INFO STRING
C          (C*8)  INFPLTN()   = TOTAL LINE POWER (NO FILTER) INFO
C
C          (C*24) METRAL      = RECOMBINATION METHOD STRING
C          (C*24) METSAL      = IONISATION METHOD STRING
C          (C*24) METCAL      = CX METHOD STRING
C          (C*24) METPRB      = RECOM+BREMM POWER METHOD STRING
C          (C*24) METPRC      = CX POWER METHOD STRING
C          (C*24) METPLT      = TOTAL LINE POWER METHOD STRING
C          (C*24) METPLS      = SPECIFIC LINE POWER METHOD STRING
C          (C*24) METPRBN     = RECOMM+BREM POWER (NO FILTER) METHOD
C          (C*24) METPRCN     = CX POWER (NO FILTER) METHOD STRING
C          (C*24) METPLTN     = TOTAL LINE POWER (NO FILTER) METHOD
C
C
C  PROGRAM:
C
C  THE PARAMETER ARRAYS ARE INDEXED
C            XXX()  = XXX(IZDIMD)         1ST DIMENSION ION STAGE
C
C            XXX(,) = XXX(IZDIMD,IGDIMD)  1ST DIMENSION ION STAGE
C                                         2ND DIMENSION GROUP
C
C
C  INPUT:  (I*4)  IZDIMD    = MAXIMUM NUMBER OF IONISATION STAGES
C          (I*4)  IGDIMD    = MAXIMUM NUMBER OF GROUPS
C
C          (I*4)  ITDIMD    = MAXIMUM NUMBER OF TEMPERATURES
C          (I*4)  IDDIMD    = MAXIMUM NUMBER OF DENSITIES
C
C          (R*8)  TEMIN     = MINIMIUM TEMPERATURE OF TABLE
C          (R*8)  TEMAX     = MAXIMUM  TEMPERATURE
C          (I*4)  NUMTE     = NUMBER OF TEMPERATURE
C
C          (R*8)  FNEMIN    = MINIMIUM DENSITY OF TABLE
C          (R*8)  FNEMAX    = MAXIMUM  DENSITY
C          (I*4)  NUMNE     = NUMBER OF DENSITIES
C
C
C          (R*8)  FUELMAS   = MASS OF FUEL     (AMU)
C
C          (I*4)  IZ0       =  NUCLEAR CHARGE
C          (I*4)  IZL       =  LOWEST INCLUDED ION
C          (I*4)  IZU       =  HIGHEST INCLUDED ION
C
C          (I*4)  IZRA()    =  RECOMBINING ION (RAD.  RECOM.)
C          (I*4)  IZDA()    =  RECOMBINING ION (DIEL. RECOM.)
C          (I*4)  IZIA()    =  IONISING ION    (COLL. IONIS.)
C          (I*4)  IZTA()    =  RADIATING ION   (TOTAL LINE POWER)
C          (I*4)  IZSA()    =  RADIATING ION   (SPECIFIC LINE POWER)
C
C
C
C          (C*5)  CRRCA()   =  RADIATIVE RECOM. CODE
C          (I*4)  NRRCA()   =    - NOT USED -
C          (I*4)  ISRRCA()  =    - NOT USED -
C
C          (I*4)  NZA()     = LOWEST ACCESSIBLE SHELL FOR RAD. RECOM.
C          (I*4)  KSIA()    = NUMBER OF ELECTRONS IN SHELL
C
C          (I*4)  N0RA()    = LOWEST ACCESSIBLE PRINC. QUANTUM SHELL
C                             FOR RAD. RECOM.
C          (R*8)  V0RA()    = EFFECTIVE PRINCIPAL QUANTUM NUMBER
C                             FOR SHELL
C          (R*8)  PHFCRA()  = PHASE SPACE OCCUPANCY AVAILABILITY
C                             FOR SHELL
C          (R*8)  EDSPRA()  = ENERGY ADJUSTMENT IN LOWEST SHELL
C                             RATE COEFFICIENT
C          (R*8)  SCLERA()  = MULTIPLIER FOR LOWEST SHELL
C                             RATE COEFFICIENT
C
C
C
C          (C*5)  CDRCA()   =  DIELECTRONIC RECOM. CODE
C          (I*4)  NDRCA()   =  NUMBER OF TRANSITIONS FOLLOWING
C          (I*4)  ISDRCA()  =    - NOT USED -
C
C          (R*8)  DEDA(,)   = TRANSITION ENERGY (EV)
C          (R*8)  FDA(,)    = OSCILLATOR STRENGTH
C          (R*8)  GDA(,)    = GAUNT FACTOR
C          (I*4)  NNDA(,)   = DELTA N FOR TRANSITION
C          (I*4)  MSDA(,)   = MERTZ SWITCH (0=OFF, 1=ON)
C
C          (I*4)  ITYPDA(,) = TYPE OF DIELECTRONIC TRANSITION
C          (I*4)  N0DA(,)   = LOWEST ACCESSIBLE PRINC. QUANTUM SHELL
C                             FOR DIEL. RE
C          (I*4)  NCUTA(,)  = CUT-OFF PRINC. QUANTUM SHELL IN
C                             GENERAL PROGRAM
C          (I*4)  V0DA(,)   = EFFECTIVE PRINC. QUANTUM NUMBER
C                             FOR LOWEST ACCESS
C          (R*8)  PHFCDA(,) = PHASE SPACE OCCUPANCY AVAILABILITY
C                             FOR LOWEST SHELL
C          (R*8)  CRFCDA(,) = ADJUSTMENT FOR BETHE CORRECTIONS
C                             IN GENERAL PROGRAM
C          (R*8)  EPSIJA(,) = Z-SCALED PARENT TRANSITION ENERGY (RYD)
C          (R*8)  FIJA(,)   = OSCILLATOR STRENGTH FOR TRANSITION
C          (R*8)  EDSPDA(,) = ENERGY ADJUSTMENT IN BURGESS GENERAL
C                             FORMULA (RYD)
C          (R*8)  SCLEDA(,) = MULTIPLIER ON BURGESS GENERAL FORMULA
C
C
C
C          (C*5)  CCIOA()   =  COLLISIONAL IONIS. CODE
C          (I*4)  NCIOSA()  =  NUMBER OF SHELL  VALUES FOLLOWING
C          (I*4)  NCIORA()  =  NUMBER OF RESON. VALUES FOLLOWING
C          (I*4)  ISCIOA()  =    - NOT USED -
C
C          (R*8)  PIOA(,)   = SHELL IONISATION POTENTIAL (EV)
C          (R*8)  AIOA(,)   = LOTZ PARAMETER
C          (R*8)  BIOA(,)   = LOTZ PARAMETER
C          (R*8)  CIOA(,)   = LOTZ PARAMETER
C          (I*4)  NQIOA(,)  = EQUIVALENT ELECTRONS IN SHELL
C
C          (R*8)  ZETAA(,)  = NUMBER OF EQUIVALENT ELECTRONS FOR SHELL
C          (R*8)  EIONA(,)  = IONISATION ENERGY FOR SHELL (RYD)
C          (R*8)  CIA(,)    = MULTIPLIER FOR BURGESS-CHIDICHIMO RATE
C                             FOR SHELL
C          (R*8)  WGHTA(,)  = WEIGHTING FACTOR FOR EXCITATION TO
C                             RESONANCE
C          (R*8)  ENERA(,)  = EXCITATION ENERGY FOR TRANSITION
C                             TO RESONANCE (RYD)
C          (R*8)  CRA(,)    = MULTIPLIER ON EXCITATION RATE EXPRESSSION
C
C
C
C          (C*5)  CPLTA()   =  TOTAL LINE POWER CODE
C          (I*4)  NPLTA()   =  NUMBER OF TRANSITIONS FOLLOWING
C          (I*4)  ISPLTA()  =    - NOT USED -
C
C          (R*8)  DEPTA(,)  = TRANSITION ENERGY (EV)
C          (R*8)  FPTA(,)   = OSCILLATOR STRENGTH
C          (R*8)  GPTA(,)   = GAUNT FACTOR
C          (I*4)  NNPTA(,)  = DELTA N FOR TRANSITION
C
C          (R*8)  SPYLTA(,) = MULTIPLIER OF VAN REGEMORTER P
C                             FACTOR IN TOTAL POWER
C
C
C
C          (C*5)  CPLSA()   = SPECIFIC LINE POWER CODE
C          (I*4)  NPLSA()   =   - NOT USED -
C          (I*4)  ISPLSA()  =   - NOT USED -
C          (C*8)  INFO()    = WAVELENGTH OF SPECIFIC LINE FOR
C                             NAMING PURPOSES
C
C          (R*8)  DEPSA(,)  = TRANSITION ENERGY (EV)
C          (R*8)  FPSA(,)   = OSCILLATOR STRENGTH
C          (R*8)  GPSA(,)   = GAUNT FACTOR
C          (I*4)  NNPSA(,)  = DELTA N FOR TRANSITION
C
C          (R*8)  SPYLSA(,) = MULTIPLIER OF VAN REGEMORTER P FACTOR
C                             IN SPECIFIC LINE POWER
C
C
C
C  ROUTINES:
C          ROUTINE   SOURCE     DESCRIPTION
C          ----------------------------------------------------------
C          I4UNIT    ADAS       FETCH UNIT NUMBER FOR MESSAGE OUTPUT
C          D8FLIN    ADAS408    INITIALISE ENERGY MESH FOR FILTER
C                               INTEGRATION
C          D8TRAN    ADAS408    FILTER TRANSMISSION AT PARTICULAR ENERGY
C          D8INTG    ADAS408    INTEGRATE WITH FILTER
C          D8CXSC    ADAS408    RETURNS CROSS-SECTIONS FROM CX COLLISION
C          D8VGOL    ADAS408    CALCULATES VON GOELER RECOMB. COEFFS
C          NGFFMH    ADAS       FREE-FREE GAUNT FACTOR                        
C
C
C
C  HISTORY:  DERIVED FROM NCRAT0  --- J. SPENSE,     TESSELLA
C                                     H. P. SUMMERS, JET
C                                     27/3/1990
C
C  CHANGES : 13/12/90  H.P.SUMMERS - CHANGE CONSTANTS FOR LINE POWER AND
C                                    BREMSSTRAHLUNG POWER TO MATCH
C                                    ABELS-VAN MAANEN (1985).
C                                    NB. NO MERTZ SWITCH ON H-LIKE
C                                    AND HE-LIKE DIELECTRONIC RECOMB.
C          :  5/ 2/91  H.P.SUMMERS - ALTER COMMON /RATCOM/ TO REMOVE
C                                    UNNECESSARY STORAGE AND ORGANISE
C                                    FOR NEW (ADF03) DATA INPUT.
C          :  1/ 8/91  H.P.SUMMERS - ALTER LINFO DIMENSION TO ALLOW
C                                    IT AS AN INFORMATION STRING FOR ALL
C                                    DATA SETS.  SET THE HYDROGEN
C                                    ISOTOPE MASS IN LINFO AS
C                                    ' MH=*.**' FOR CCD AND PRC.
C                                    ADD HMADAS TO /RATCOM/
C          :  6/8/92   M O'MULLANE - STAND-ALONE VERSION
C
C
C
C  ADAS408 IMPLEMENTATION
C
C  AUTHOR: M O'MULLANE, UCC
C
C  DATE:    10/05/94
C
C
C UNIX-IDL PORT:
C
C VERSION: 1.1                          DATE: 15-04-96
C MODIFIED: WILLIAM OSBORN (TESSELLA SUPPORT SERVICES PLC)
C               - FIRST CONVERTED
C
C VERSION: 1.2				DATE: 14-05-96
C MODIFIED: WILLIAM OSBORN
C	    REARRANGED ARGUMENTS TO STAY UNDER
C	    LIMIT OF 20 CONTINUATION CHARACTERS AT ARCETRI AND GARCHING
C
C VERSION: 1.3				DATE: 14-05-96
C MODIFIED: WILLIAM OSBORN
C           S.C.C.S. ERROR
C
C VERSION: 1.4				DATE: 30-01-98
C MODIFIED: Martin O'Mullane
C           Added free-free Gaunt factor to the eveluation of bremsstrahlung
C           power. Used NGFFMH to calculate gff.
C
C VERSION: 1.5				DATE: 05-08-2003
C MODIFIED: Martin O'Mullane
C            - ADAS408 restructured.
C            - Pass in adf03 and adf35 data files rather than the
C              data in them.
C
C VERSION : 1.6
C DATE    : 05-03-2004
C MODIFIED: Martin O'Mullane
C             - Alter dimensions for 55 temperatures, 50 densities, 
C               80 ion stages, and 15 groups.
C             - Type B ionisation was wrong. Calculate it with a call 
C               to rbchid.for.
C             - Warn when EA contribution to type B ionisation is
C               attempted as it is not coded.
C             - Warn when type B radiative recombination is
C               requested as the prb is not yet calculated.
C             - Pass out separated RR and DR recombination rates.
C             - Pass out separated RR, DR and BR power coefficients
C               but only for the non-filtered case.
C
C VERSION : 1.7
C DATE    : 06-10-2004
C MODIFIED: Martin O'Mullane
C             - Increase number of groups in the adf03 file to 20
C               from 15 to cope with high Z DR.  
C
C VERSION : 1.8
C DATE    : 24-06-2005
C MODIFIED: Martin O'Mullane
C            - Add arrays for filtered rr/dr/br power.
C
C-----------------------------------------------------------------------
      CHARACTER*80        DSN03,       DSN35
      CHARACTER*8         INFCAL(IZDIMD),           INFPLS(IZDIMD)
      CHARACTER*8         INFPLT(IZDIMD),           INFPLTN(IZDIMD)
      CHARACTER*8         INFPRB(IZDIMD),           INFPRBN(IZDIMD)
      CHARACTER*8         INFPRC(IZDIMD),           INFPRCN(IZDIMD)
      CHARACTER*8         INFRAL(IZDIMD),           INFSAL(IZDIMD)
      CHARACTER*24        METCAL,      METPLS,      METPLT,      METPLTN
      CHARACTER*24        METPRB,      METPRBN,     METPRC,      METPRCN
      CHARACTER*24        METRAL,      METSAL
      CHARACTER*13        NAME
      INTEGER             IZ0,         IZL,         IZU,         NUMNE
      INTEGER             NUMTE
      LOGICAL             LTICK
      REAL*8              CAL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              FNEL(ITDIMD),             FNEMAX,      FNEMIN
      REAL*8              FUELMAS,     PLSL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PLSL0(ITDIMD,IDDIMD)
      REAL*8              PLTL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PLTL0(ITDIMD,IDDIMD)
      REAL*8              PLTL0NFL(ITDIMD,IDDIMD)
      REAL*8              PLTLNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBBR(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBBRNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBDR(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBDRNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBLNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBRR(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRBRRNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRCL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              PRCLNFL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              RAL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              RALDR(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              RALRR(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              SAL(ITDIMD,IDDIMD,IZDIMD)
      REAL*8              SAL0(ITDIMD,IDDIMD),      TEL(ITDIMD), TEMAX
      REAL*8              TEMIN
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk