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