ADAS Subroutine dddata
SUBROUTINE DDDATA( IUNIT , NDPRT , NDPRTI, NDREP , NDLEV , & NDMET , NDAUG , NDT , & SEQSYM , IZ , IZ0 , IZ1 , & NPRF , BWNF , NPRFM , IPRFM , & NPRI , IPRI , & IPA , CSTRPA , ISPA , ILPA , XJPA , & WPA , & NLEV , BWNI , NLEVM , ILEVM , & IA , CSTRGA , ISA , ILA , XJA , & WA , & LRAUG , NPF , INDF , RAUG , & IMETI , LSYSM , NSYSM , LREPM , NREPM , & LIONIS , LRION , RION , & LEXCIT , LREXC , REXC , & NPIS , IPRTI , ISYSI , ISPSYI, & IMETF , NVALS , NREPI , IREP , & AUGN , LEXCN , EXCN , & NTE , TEA & ) C----------------------------------------------------------------------- C C ****************** FORTRAN77 SUBROUTINE: DDDATA ********************* C C PURPOSE: TO FETCH DATA FROM INPUT ADF23 DATA SET. C C CALLING PROGRAM: ADAS213/ADAS413 C C C SUBROUTINE: C C INPUT : (I*4) IUNIT = UNIT TO WHICH INPUT FILE IS ALLOCATED C C INPUT : (I*4) NDPRT = MAXIMUM NUMBER OF PARENT STATES C INPUT : (I*4) NDPRTI = MAXIMUM NUMBER OF INTERMEDIATE PARENT STATES C INPUT : (I*4) NDREP = MAX. NUMBER OF REPRESENTATIVE N-SHELLS C INPUT : (I*4) NDLEV = MAXIMUM NUMBER OF RESOLVED LEVELS C INPUT : (I*4) NDMET = MAXIMUM NUMBER OF IONISING ION METASTABLES C INPUT : (I*4) NDAUG = MAXIMUM NUMBER OF AUGER RATE INITIAL AND C FINAL PARENT PAIRS C INPUT : (I*4) NDT = MAX. NUMBER OF ELECTRON TEMPERATURES C C OUTPUT: (C*2) SEQSYM = RECOMBINED ION SEQ C OUTPUT: (I*4) IZ = RECOMBINED ION CHARGE C OUTPUT: (I*4) IZ0 = NUCLEAR CHARGE C OUTPUT: (I*4) IZ1 = RECOMBINING ION CHARGE C OUTPUT: (I*4) NPRF = NUMBER OF FINAL PARENTS C OUTPUT: (R*8) BWNF = BINDING WAVE NO. OF GROUND PARENT (CM-1) C OUTPUT: (I*4) NPRFM = NUMBER OF FINAL PARENTS WHICH ARE METASTABLES C OUTPUT: (I*4) IPRFM() = CROSS-REFERENCING OF FINAL METASTABLE C PARENTS TO FINAL PARENT LIST. C OUTPUT: (I*4) NPRI = NUMBER OF FINAL PARENTS WHICH ARE INTERMEDIATE C PARENTS FOR REPR. N-SHELL DOUBLY EXCITED STATES C OUTPUT: (I*4) IPRI() = CROSS-REFERENCING OF INTERMEDIATE C PARENTS TO FINAL PARENT LIST. C OUTPUT: (I*4) IPA() = INDEX OF FINAL PARENT ENERGY LEVELS C OUTPUT: (C*18) CSTRPA()= NOMENCL./CONFIG. FOR PARENT LEVEL 'IPA()' C OUTPUT: (I*4) ISPA() = MULTIPLICITY FOR PARENT LEVEL 'IPA()' C NOTE: (ISPA-1)/2 = QUANTUM NUMBER (SP) C OUTPUT: (I*4) ILPA() = QUANTUM NUMBER (LP) FOR PARENT LEVEL 'IPA()' C OUTPUT: (R*8) XJPA() = QUANTUM NUMBER (JP) FOR PARENT LEVEL 'IPA()' C NOTE: (2*XJPA)+1 = STATISTICAL WEIGHT C OUTPUT: (R*8) WPA() = ENERGY RELATIVE TO PARENT LEVEL 1 (CM-1) C FOR PARENT LEVEL 'IPA()' C C OUTPUT: (I*4) NLEV = NUMBER OF ENERGY LEVELS (TERMS) OF THE C IONISING ION C OUTPUT: (R*8) BWNI = IONISATION POTENTIAL (CM-1) OF LOWEST LEVEL C OF IONISING ION C OUTPUT: (I*4) NLEVM = NUMBER OF IONISING ION LEVELS WHICH ARE METASTABLES C OUTPUT: (I*4) ILEVM() = CROSS-REFERENCING OF IONISNG ION METASTABLES C TO IONISING ION LEVEL LIST. C OUTPUT: (I*4) IA() = IONISING ION ENERGY LEVEL INDEX NUMBER C OUTPUT: (C*18) CSTRGA()= NOMENCL./CONFIG. FOR RECOMBINED ION LEVEL C 'IA()' C OUTPUT: (I*4) ISA() = MULTIPLICITY FOR RECOMBINED LEVEL 'IA()' C NOTE: (ISA-1)/2 = QUANTUM NUMBER (S) C OUTPUT: (I*4) ILA() = QUANTUM NUMBER (L) FOR RECOMBINED LEVEL C 'IA()' C OUTPUT: (R*8) XJA() = QUANTUM NUMBER (J) FOR RECOMBINED LEVEL C 'IA()' C NOTE: (2*XJA)+1 = STATISTICAL WEIGHT C OUTPUT: (R*8) WA() = ENERGY RELATIVE TO RECOMBINED LEVEL 1 (CM-1) C FOR RECOMBINED LEVEL 'IA()' C OUTPUT: (L*4) LRAUG = .TRUE. => RESOLVED AUGER DATA PRESENT C .FALSE. => RESOLVED AUGER DATA NOT PRESENT C OUTPUT: (I*4) NPF = NUMBER OF FINAL PARENTS WITH RESOLVED AUGER DATA C OUTPUT: (I*4) INDF() = INDICES OF FINAL PARENTS WITH RESOLVED AUGER DATA C OUTPUT: (R*8) RAUG(,) = RESOLVED AUGER RATES C 1ST.DIM: IONISING ION LEVEL INDEX C 2ND.DIM: FINAL PARENT INDEX C OUTPUT: (I*4) IMETI() = INDEX OF METASTABLES IN IONISING ION LEVEL LIST C OUTPUT: (L*4) LSYSM() = .TRUE. => SPIN SYSTEMS LINKED TO METASTABLE C .FALSE. => NO SPIN SYSTEMS LINKED TO METASTABLE C OUTPUT: (I*4) NSYSM() = NUMBER OF SPIN SYSTEMS LINKED TO METASTABLE C OUTPUT: (L*4) LREPM() = .TRUE. => REPR. LEVELS LINKED TO METASTABLE C .FALSE. => NO REP. LEVELS LINKED TO METASTABLE C OUTPUT: (I*4) NREPM() = NUMBER OF REPR. LEVELS LINKED TO METASTABLE C OUTPUT: (L*4) LIONIS()= .TRUE. => STATE SELECTIVE IONIS. DATA PRESENT C .FALSE. => STATE SELECTIVE IONIS. DATA NOT PRESENT C 1ST.DIM: INITIAL METASTABLE INDEX C OUTPUT: (L*4) LRION(,)= .TRUE. => DATA PRESENT FOR FINAL STATE C .FALSE. => DATA NOT PRESENT FOR FINAL STATE C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: FINAL PARENT INDEX C OUTPUT: (R*8) RION(,,)= STATE SELECTIVE DIRECT IONISATION COEFFICIENTS C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: FINAL PARENT INDEX C 3RD.DIM: ELECTRON TEMPERATURE INDEX C OUTPUT: (L*4) LEXCIT()= .TRUE. => STATE SELECTIVE EXCIT. DATA PRESENT C .FALSE. => STATE SELECTIVE EXCIT. DATA NOT PRESENT C 1ST.DIM: INITIAL METASTABLE INDEX C OUTPUT: (L*4) LREXC(,)= .TRUE. => DATA PRESENT FOR FINAL STATE C .FALSE. => DATA NOT PRESENT FOR FINAL STATE C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: FINAL IONISING ION LEVEL INDEX C OUTPUT: (R*8) REXC(,,)= STATE SELECTIVE DIRECT EXCITATION COEFFICIENTS C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: FINAL IONISING ION LEVEL INDEX C 3RD.DIM: ELECTRON TEMPERATURE INDEX C OUTPUT: (I*4) NPIS() = INDEX OVER INTERMEDIATE PARENT & SPIN SYSTEM C FOR BUNDLE-N DOUBLY EXCITED STATES C 1ST.DIM: IONISING ION METASTABLE INDEX C OUTPUT: (I*4) IPRTI(,)= INTERMEDIATE PARENT INDEX IN PARENT LIST C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (I*4) ISYSI(,)= SPIN SYSTEM INDEX FOR INTERMEDIATE PARENT C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (I*4) ISPSYI(,)= SPIN OF SYSTEM FOR INTERMEDIATE PARENT C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (I*4) IMETF(,)= FINAL PARENT INDICES TO WHICH INTERM. PARENT/ C SPIN SYSTEM/REPR. N-SHELL AUGERS C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C 3RD.DIM: FINAL IONISED ION METASTABLE INDEX C OUTPUT: (I*4) NVALS(,)= NUMBER OF FINAL PARENT S TO WHICH INTERM. C PARENT/SPIN SYSTEM/REPR. N-SHELL AUGERS C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (I*4) NREPI(,)= NUMBER OF REPR. N-SHELLS FOR INTERM. C PARENT/SPIN SYSTEM C 1ST.DIM: IONISING ION METASTABLE INDEX C 2ND.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (I*4) IREP(,,)= REPR. N-SHELLS FOR INTERM. PARENT/SPIN SYSTEM/ C N-SHELL AUTOIONISING LEVELS C 1ST.DIM: REPRESENTATIVE N-SHELL INDEX C 2ND.DIM: IONISING ION METASTABLE INDEX C 3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (R*8) AUGN(,,,)=AUGER RATES FOR INTERM. PARENT/SPIN SYSTEM/ C REPRESENTATIVE. N-SHELL C 1ST.DIM: REPRESENTATIVE N-SHELL INDEX C 2ND.DIM: IONISING ION METASTABLE INDEX C 3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (L*4) LEXCN(,,)=.TRUE. => DATA PRESENT FOR REPR. N-SHELL C .FALSE.=> DATA NOT PRESENT FOR REPR. N-SHELL C 1ST.DIM: REPRESENTATIVE N-SHELL INDEX C 2ND.DIM: IONISING ION METASTABLE INDEX C 3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C OUTPUT: (R*8) EXCN(,,,)=EXCITATION RATES TO AUTOIONISING PARENT/SPIN C SYSTEM REPRESENTATIVE N-SHELL C 1ST.DIM: REPRESENTATIVE N-SHELL INDEX C 2ND.DIM: IONISING ION METASTABLE INDEX C 3RD.DIM: INTERMEDIATE PARENT & SPIN SYSTEM C INDEX C 4TH DIM: TEMPERATURE INDEX C OUTPUT: (I*4) NTE = NUMBER OF ELECTRON TEMPERATURES C OUTPUT: (R*8) TEA() = ELECTRON TEMPERATURES (K) C C (I*4) IND = GENERAL INDEX C (I*4) INDX = GENERAL INDEX C (I*4) INDX1 = GENERAL INDEX C (I*4) INDX2 = GENERAL INDEX C (I*4) II = GENERAL INDEX C (I*4) I = GENERAL INDEX C (I*4) IPI = GENERAL INDEX FOR INTERM. PARENT C (I*4) IPF = GENERAL INDEX FOR FINAL PARENT C (I*4) IPIS = GENERAL INDEX FOR INTERM. PARENT/SPIN SYSTEM C (I*4) IR = GENERAL INDEX FOR REPRESENTATIVE N-SHELLS C (I*4) IT = GENERAL INDEX C (I*4) J = GENERAL INDEX C (I*4) K = GENERAL INDEX C C (L*4) LDATA = GENERAL READ/DO NOT READ FLAG C C (C*18) C18 = GENERAL CHARACTER STRING C C ROUTINES: C ROUTINE SOURCE BRIEF DESCRIPTION C ------------------------------------------------------------- C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES C I4EIZ0 ADAS RETURNS NUCL. CHARGE FROM ELEMENT SYMBOL C R8FCTN ADAS CONVERTS FROM CHARACTER TO REAL VARIABLE C XXWORD ADAS EXTRACT POSITION OF NUMBER IN BUFFER C C AUTHOR: H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE C JA8.08 C TEL. 0141-553-4196 C C DATE: 21/03/98 C C UPDATE: C C VERSION: 1.1 DATE: 11-06-98 C MODIFIED: RICHARD MARTIN C - PUT UNDER SCCS CONTROL. C C----------------------------------------------------------------------- C----------------------------------------------------------------------- CHARACTER*(*) CSTRGA(NDLEV), CSTRPA(NDPRT) CHARACTER*2 SEQSYM INTEGER IA(NDLEV), ILA(NDLEV), ILEVM(NDLEV) INTEGER ILPA(NDPRT), IMETF(NDMET,NDPRTI,NDPRT) INTEGER IMETI(NDMET), INDF(NDPRT) INTEGER IPA(NDPRT), IPRFM(NDPRT) INTEGER IPRI(NDPRTI), IPRTI(NDMET,NDPRTI) INTEGER IREP(NDREP,NDMET,NDPRTI), ISA(NDLEV) INTEGER ISPA(NDPRT), ISPSYI(NDMET,NDPRTI) INTEGER ISYSI(NDMET,NDPRTI), IUNIT, IZ INTEGER IZ0, IZ1, NDAUG, NDLEV INTEGER NDMET, NDPRT, NDPRTI, NDREP INTEGER NDT, NLEV, NLEVM, NPF INTEGER NPIS(NDMET), NPRF, NPRFM, NPRI INTEGER NREPI(NDMET,NDPRTI), NREPM(NDMET) INTEGER NSYSM(NDMET), NTE INTEGER NVALS(NDMET,NDPRTI) LOGICAL LEXCIT(NDMET) LOGICAL LEXCN(NDREP,NDMET,NDPRTI) LOGICAL LIONIS(NDMET), LRAUG LOGICAL LREPM(NDMET), LREXC(NDMET,NDLEV) LOGICAL LRION(NDMET,NDPRT), LSYSM(NDMET) REAL*8 AUGN(NDREP,NDMET,NDPRTI,NDPRT), BWNF REAL*8 BWNI, EXCN(NDREP,NDMET,NDPRTI,NDT) REAL*8 RAUG(NDLEV,NDPRT) REAL*8 REXC(NDMET,NDLEV,NDT) REAL*8 RION(NDMET,NDPRT,NDT), TEA(NDT) REAL*8 WA(NDLEV), WPA(NDPRT), XJA(NDLEV) REAL*8 XJPA(NDPRT)