ADAS Subroutine lowpop
SUBROUTINE LOWPOP(SEQ,REFMEM,Z0,Z1,ZEFF,NMET,IMETR,TE,DENS,TP,
& DENSP,DENSH,NPARNT,DEPA,LPTA,
& PEXMAT,PEXRHS,PECION,PEDREC,PERREC,
& PEXREC,IECION,IEDREC,IERREC,IEXREC)
IMPLICIT REAL*8(A-H,O-Z)
C ----------------------------------------------------------------------
C PURPOSE: CALCULATE POPULATIONS OF LOW EXCITED POPULATIONS OF IONS
C
C INCLUDING
C
C (A) COUPLING TO HIGH LEVELS AND CONTINUUM VIA PRELIMINARY
C BUNDLE-N CALCULATION (V2BNDLN) AND PROJECTION/EXPANSION
C MATRIX CALCULATION (CLDLBN2)
C
C (B) DEPENDENCE ON METASTABLES.
C
C
C PROCESSES CAN INCLUDE ELECTRON & PROTON IMPACT, SPONTANEOUS EMISSION,
C FREE ELECTRON RECOMBINATION AND CHARGE EXCHANGE RECOMBINATION
C DEPENDING ON THE INPUT DATA SET
C
C THE BASIC LOW LEVEL ATOMIC DATA IS ENTERED FROM COMPILATION
C DATA SETS OF THE FORM
C
C 'JETSHP.<SE>LIKE.DATA(<TITLE><EL>)'
C
C WHERE <SE> DENOTES THE ISOLELECTRONIC SEQUENCE, <TITLE> IS AN
C ARBITRARY IDENTIFIER FOR THE SOURCE AND YEAR, <EL> IS THE
C ELEMENT SYMBOL. <SE> AND <TITLE><EL> ARE PRESENTED TO THE
C SUBROUTINE AS PARAMETERS FROM CLDLBN2
C
C
C MAIN OUTPUT TABLES ARE GENERATED ON STREAM 7
C POPULATION DATA FOR DIAGNOSTIC USE ON STREAM 19
C
C THE SUBROUTINE WAS DEVELOPED FROM THE ORIGINAL PROGRAM SPMETPOP
C
C
C INPUT
C Z0 = NUCLEAR CHARGE
C Z1 = RECOMBINING ION CHARGE
C ZEFF = PLASMA Z EFFECTIVE
C NMET = NUMBER OF METASTABLES (1.LE.NMET.LE.5)
C IMETR(I)= INDEX OF METASTABLE I IN COMPLETE LEVEL LIST
C TE = ELECTRON TEMPERATURE (K)
C DENS = ELECTRON DENSITY (CM-3)
C TP = PROTON TEMPERATURE (K)
C DENSP = PROTON DENSITY (CM-3)
C DENSH = NEUTRAL HYDROGEN DENSITY(IN BEAMS) (CM-3)
C PEXMAT(I,J) = EXPANDED PROJECTION MATRIX FOR LOW LEVELS
C PEXRHS(I) = EXPANDED PROJECTED RIGHT HAND SIDE VECTOR
C PECION(I) = DENS*IONISATION RATE COEFFT FOR LOW LEVEL I
C PEDREC(I) = DIELECTRONIC RECOMB. COEFFT. FOR LOW LEVEL I
C PERREC(I) = RADIATIVE RECOMB. COEFFT. FOR LOW LEVEL I
C PEXREC(I) = DENSH*(CX RATE COEFFT)/DENS FOR LOW LEVEL I
C IECION = 0 IONISATION ELIMINATED FROM LEVEL I
C = 1 IONISATION NOT ELIMINATED FROM LEVEL I
C IEDREC = 0 DIEL. RECOMB. ELIMINATED FOR LEVEL I
C = 1 DIEL. RECOMB. NOT ELIMINATED FOR LEVEL I
C IERREC = 0 RAD. RECOMB. ELIMINATED FOR LEVEL I
C = 1 RAD. RECOMB. NOT ELIMINATED FOR LEVEL I
C IEXREC = 0 CX. RECOMB. ELIMINATED FOR LEVEL I
C = 1 CX. RECOMB. NOT ELIMINATED FOR LEVEL I
C
C
C
C ********** H.P. SUMMERS, JET 26 APR 1990 **********
C OPEN FILE ON STREAM 9 UNDER DIVUID 19 FEB 1991
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
C
C UPDATE: 19/01/94 - JONATHAN NASH - TESSELLA SUPPORT SERVICES PLC
C
C THE FOLLOWING MODIFICATIONS HAVE BEEN MADE TO THE SUBROUTINE:
C
C 1) THE INPUT UNIT NUMBER WAS CHANGE FROM 10 TO 9 AND THE
C DIAGNOSTIC OUTPUT UNIT FROM 11 TO 19.
C
C NOTES: NO ATTEMPT HAS BEEN MADE TO RESTRUCTURE THE ROUTINE. RATHER
C THE MINIMUM AMOUNT OF WORK TO INTEGRATE THE ROUTINE INTO
C ADAS310 HAS BEEN COMPLETED.
C
C UNIX-IDL PORT:
C
C VERSION: 1.1 DATE: 18-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - PUT UNDER SCCS CONTROL
C
C VERSION: 1.2 DATE: 18-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - COMMENTED OUT LINE 'EXTERNAL GAMMA' AS IT APPEARS
C TO SERVE NO PURPOSE AND THERE IS NO CORRESPONDING
C GAMMA ROUTINE.
C
C VERSION: 1.3 DATE: 18-1-96
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - COMMENTED OUT LINE 'CALL ERRSET'
C
C VERSION: 1.4 DATE: 16-05-07
C MODIFIED: Allan Whiteford
C - Updated comments as part of subroutine documentation
C procedure.
C
C-----------------------------------------------------------------------
CHARACTER*8 REFMEM
CHARACTER*2 SEQ
INTEGER IECION, IEDREC, IERREC, IEXREC
INTEGER IMETR(NDMET+1), LPTA(NDLEV), NMET
INTEGER NPARNT
REAL*8 DENS, DENSH, DENSP, DEPA(5)
REAL*8 PECION(NDLEV), PEDREC(NDLEV)
REAL*8 PERREC(NDLEV), PEXMAT(NDLEV,NDLEV)
REAL*8 PEXREC(NDLEV), PEXRHS(NDLEV)
REAL*8 TE, TP, Z0, Z1
REAL*8 ZEFF