Search Site | Contact Details | FAQ

ADAS Subroutine c9emis

      SUBROUTINE C9EMIS( MXNSHL , MXOBSL , MXPRSL , IZ0    ,
     &                   IZ1    , NGRND  , NTOT   , NBOT   ,
     &                   DENSZ  , DENS   , NOLINE , NU     ,
     &                   NL     , EMISA  , NPLINE , NPU    ,
     &                   NPL    , QTHEOR , FTHEOR , TBQMEP ,
     &                   TBQMEM , TBQMIP , TBQMIM , NUMIN  ,
     &                   NUMAX  , EM     , QEX    , TOTPOP ,
     &                   TOTEMI , AVRGWL , QEFF   , TBLPOP ,
     &                   TBLEMI , TBLWLN
     &                 )
C
C
C-----------------------------------------------------------------------
C
C  ****************** FORTRAN77 SUBROUTINE: C9EMIS *********************
C
C  PURPOSE:  PREDICTS THE L-RESOLVED EMISSIVITY FOR REQUESTED
C            TRANSITIONS.
C
C  CALLING PROGRAM: C9CXEE 
C
C  INPUT : (I*4)  MXNSHL   = MAXIMUM VALUE OF PRINCIPAL QUANTUM NUMBER.
C  INPUT : (I*4)  MXOBSL   = MAXIMUM NUMBER OF OBSERVED SPECTRUM LINES.
C  INPUT : (I*4)  MXPRSL   = MAXIMUM NUMBER OF SPECTRUM LINES TO
C                            PREDICT.
C  INPUT : (I*4)  IZ0      = NUCLEAR CHARGE.
C  INPUT : (I*4)  IZ1      = ION CHARGE.
C  INPUT : (I*4)  NGRND    = PRINCIPAL QUANTUM NUMBER OF GROUND STATE.
C  INPUT : (I*4)  NTOT     = PRINCIPAL QUANTUM NUMBER OF HIGHEST BOUND
C                            STATE.
C  INPUT : (I*4)  NBOT     = MINIMUM PRINCIPAL QUANTUM NUMBER.
C  INPUT : (R*8)  DENSZ    = PLASMA ION DENSITY.
C                            UNITS: CM-3
C  INPUT : (R*8)  DENS     = ELECTRON DENSITY.
C                            UNITS: CM-3
C  INPUT : (I*4)  NOLINE   = NUMBER OF OBSERVED SPECTRUM LINES.
C  INPUT : (I*4)  NU()     = LIST OF UPPER PRINCIPAL QUANTUM NUMBERS OF
C                            OBSERVED SPECTRUM LINES.
C                            DIMENSION: SPECTRUM LINE INDEX.
C  INPUT : (I*4)  NL()     = LIST OF LOWER PRINCIPAL QUANTUM NUMBERS OF
C                            OBSERVED SPECTRUM LINES.
C                            DIMENSION: SPECTRUM LINE INDEX.
C  INPUT : (R*8)  EMISA()  = LIST OF EMISSIVITIES OF OBSERVED SPECTRUM
C                            LINES.
C                            DIMENSION: SPECTRUM LINE INDEX.
C  INPUT : (I*4)  NPLINES  = NUMBER OF SPECTRUM LINES TO PREDICT.
C  INPUT : (I*4)  NPU()    = LIST OF UPPER PRINCIPAL QUANTUM NUMBERS OF
C                            SPECTRUM LINES TO PREDICT.
C                            DIMENSION: PREDICTED LINE INDEX.
C  INPUT : (I*4)  NPL()    = LIST OF LOWER PRINCIPAL QUANTUM NUMBERS OF
C                            SPECTRUM LINES TO PREDICT.
C                            DIMENSION: PREDICTED LINE INDEX.
C  INPUT : (R*8)  QTHEOR() = MEAN CHARGE EXCHANGE OR EXCITATION RATE
C                            COEFFICIENTS FOR N-LEVELS AVERAGED OVER
C                            BEAM FRACTIONS.
C                            UNITS: CM3 SEC-1
C                            DIMENSION: REFERENCED BY N QUANTUM NUMBER.
C  INPUT : (R*8)  FTHEOR() = MEAN CHARGE EXCHANGE OR EXCITATION RATE
C                            FOR NL-LEVELS AS A FRACTION OF
C                            CORRESPONDING N-LEVEL.
C                            DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C  INPUT : (R*8)  TBQMEP() = ELECTRON RATE COEFFT. FOR NL->NL+1.
C                            INDEX FOR NL->NL+1 TRANSITION GIVEN BY
C                            I4IDFL(N,L).
C                            DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C  INPUT : (R*8)  TBQMEM() = ELECTRON RATE COEFFT. FOR NL+1->NL.
C                            INDEX FOR NL+1->NL TRANSITION GIVEN BY
C                            I4IDFL(N,L+1).
C                            DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C  INPUT : (R*8)  TBQMIP() = POSITIVE ION RATE COEFFT. FOR NL->NL+1.
C                            INDEX FOR NL->NL+1 TRANSITION GIVEN BY
C                            I4IDFL(N,L).
C                            DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C  INPUT : (R*8)  TBQMIM() = POSITIVE ION RATE COEFFT. FOR NL+1->NL.
C                            INDEX FOR NL+1->NL TRANSITION GIVEN BY
C                            I4IDFL(N,L+1).
C                            DIMENSION: REFERENCED BY FUNC I4IDFL(N,L).
C
C  OUTPUT: (I*4)  NUMIN    = MINIMUM UPPER PRINCIPAL QUANTUM NUMBER FOR
C                            OBSERVED SPECTRUM LINES.
C  OUTPUT: (I*4)  NUMAX    = MAXIMUM UPPER PRINCIPAL QUANTUM NUMBER FOR
C                            OBSERVED SPECTRUM LINES.
C  OUTPUT: (R*8)  EM       = EMMISSION MEASURE.
C  OUTPUT: (R*8)  QEX()    =
C                            DIMENSION: MXNSHL.
C  OUTPUT: (R*8)  TOTPOP() = TOTAL COLLISION POP. FOR PREDICTED SPECTRUM
C                            LINE.
C                            UNITS: CM-2
C                            DIMENSION: PREDICTED LINE INDEX.
C  OUTPUT: (R*8)  TOTEMI() = TOTAL COLLISION EMISSIVITIES FOR PREDICTED
C                            SPECTRUM LINE.
C                            UNITS: PH CM-2 SEC-1
C                            DIMENSION: PREDICTED LINE INDEX.
C  OUTPUT: (R*8)  AVRGWL() = AVERAGE AIR WAVELENGTH FOR PREDICTED
C                            SPECTRUM LINE.
C                            UNITS: A
C                            DIMENSION: PREDICTED LINE INDEX.
C  OUTPUT: (R*8)  QEFF()   = EFF. RATE COEFFICIENT FOR PREDICTED
C                            SPECTRUM LINE.
C                            UNITS:
C                            DIMENSION: PREDICTED LINE INDEX.
C  OUTPUT: (R*8)  TBLPOP(,)= TABLE OF COLLISION POP. FOR PREDICTED
C                            SPECTRUM LINE.
C                            UNITS: CM-2
C                            1ST DIMENSION: PREDICTED LINE INDEX.
C                            2ND DIMENSION: REFERENCED BY FUNC I4IDLI().
C  OUTPUT: (R*8)  TBLEMI(,)= TABLE OF COLLISION EMISSIVITIES FOR
C                            PREDICTED SPECTRUM LINE.
C                            UNITS: PH CM-2 SEC-1
C                            1ST DIMENSION: PREDICTED LINE INDEX.
C                            2ND DIMENSION: REFERENCED BY FUNC I4IDLI().
C  OUTPUT: (R*8)  TBLWLN(,)= TABLE OF WAVELENGTHS FOR PREDICTED SPECTRUM
C                            LINE.
C                            UNITS: A
C                            1ST DIMENSION: PREDICTED LINE INDEX.
C                            2ND DIMENSION: REFERENCED BY FUNC I4IDLI().
C
C  PARAM : (I*4)  MXN      = MXNSHL.
C  PARAM : (I*4)  MXOB     = MXOBSL.
C
C          (I*4)  NREP     =
C          (I*4)  IC       = LOOP INDEX.
C
C          (I*4)  ICREP()  =
C                            DIMENSION: MXOB.
C
C          (R*8)  WHIGH()  =
C                            DIMENSION: REFERENCED BY L+1.
C          (R*8)  WLOW(,)  =
C                            1ST DIMENSION: REFERENCED BY I4IDFL(N,L).
C                            2ND DIMENSION: REFERENCED BY L+1.
C
C
C ROUTINES:
C          ROUTINE    SOURCE    BRIEF DESCRIPTION
C          -------------------------------------------------------------
C          I4UNIT     ADAS      RETURNS UNIT NO. FOR OUTPUT OF MESSAGES.
C          C9WFIL     ADAS
C          C9EMQX
C          CXPRSL     ADAS      PREDICTS REQUESTED SPECTRUM LINES.
C
C AUTHOR:  JONATHAN NASH (TESSELLA SUPPORT SERVICES PLC)
C          K1/0/81
C          JET EXT. 5183
C
C DATE:    15/10/93
C
C DATE:	   30/06/95		VERSION:1.1
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C		- UNIX PORT FOR ADAS309, CREATED C9EMIS FROM C8EMIS
C		  ONLY DIFFERENCE IS IT CALLS C9WFIL RATHER THAN C8WFIL
C
C DATE:	   10/07/95		VERSION:1.2
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C               - CHANGED CALL FROM C8EMQX TO C9EMQX
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
      INTEGER             IZ0,         IZ1,         MXNSHL,      MXOBSL
      INTEGER             MXPRSL,      NBOT,        NGRND
      INTEGER             NL(MXOBSL),  NOLINE,      NPL(MXPRSL), NPLINE
      INTEGER             NPU(MXPRSL), NTOT,        NU(MXOBSL),  NUMAX
      INTEGER             NUMIN
      REAL*8              AVRGWL(MXPRSL),           DENS,        DENSZ
      REAL*8              EM,          EMISA(MXOBSL)
      REAL*8              FTHEOR((MXNSHL*(MXNSHL+1))/2)
      REAL*8              QEFF(MXPRSL),             QEX(MXNSHL)
      REAL*8              QTHEOR(MXNSHL)
      REAL*8              TBLEMI(MXPRSL,2*MXNSHL-3)
      REAL*8              TBLPOP(MXPRSL,2*MXNSHL-3)
      REAL*8              TBLWLN(MXPRSL,2*MXNSHL-3)
      REAL*8              TBQMEM((MXNSHL*(MXNSHL+1))/2)
      REAL*8              TBQMEP((MXNSHL*(MXNSHL+1))/2)
      REAL*8              TBQMIM((MXNSHL*(MXNSHL+1))/2)
      REAL*8              TBQMIP((MXNSHL*(MXNSHL+1))/2)
      REAL*8              TOTEMI(MXPRSL),           TOTPOP(MXPRSL)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk