ADAS Subroutine spfman8hx
SUBROUTINE SPFMAN8HX(Z0,Z1,Z,N0,V0,PHFRAC,TITLE, & IIOTYP,IIFTYP,IIFOUT,IXMAX,ITMAX,EDAT,XDAT,TDAT, & INGRUP,IIATYP,IGRP,EDGRP,SCGRP, & NIGRP1,LIGRP1,WIGRP1,NJGRP1,LJGRP1,WJGRP1,EGRP1,AGRP1,CRGRP1, & NIGRP2,LIGRP2,WIGRP2,NJGRP2,LJGRP2,WJGRP2,EGRP2,AGRP2,CRGRP2, & IGF,IBU,IFSEL,IBT,IGH,ASCL,NCGRP1,NCGRP2, & XPA,YPA,ICT,XP,YP,ICOUT, & TEA4,EXCRA, & NGROUP, IGROUP, NIA , LIA , NJA , LJA , NCUTA , & EMEAN , EDISPO, SCALEO, EDISP , SCALE , WIA , & WJA , EIJA , FIJA , CORFIA , CORFA , & XA , YA , XSAOLD, YSAOLD , YSAOLP, & XSANEW, APGA , APGAP , YSANEW , YSANWP, APGOAP, & SCEXP , XOA , YOA , APGOA , ITYPEA, EMEAN4, SCEXP4, & EIJA4 , FIJA4 , CORFA4, EDISP4 , SCALE4) IMPLICIT REAL*8(A-H,O-Z) C----------------------------------------------------------------------- C C ************ FORTRAN 77 PROGRAM: SPFMAN8H ************************* C C PURPOSE: GRAPH AND INTERPOLATE DIELECTRONIC RECOMBINATION C COEFFICIENTS. C C INPUT DATA IS REQUIRED ON THE ION SPECIFICATION AND A SPECIFED SET C SET OF RECOMBINATION COEFFICIENTS V TEMPERATURE. SUPPLEMENTARY C DATA ON CORE ENERGIES AND OSCILLATOR STRENGTHS IS ALSO C REQUIRED. THIS IS DIVIDED INTO TWO GROUPS, IE. DELTAN=0 AND 1. C AN ATTEMPT IS MADE TO REDUCE THE INPUT RECOMBINATION DATA C TO STANDARD ZERO DENSITY RECOMBINATION COEFFICIENTS. C THE COEFFICIENTS ARE THEN RATIOED TO THE BURGESS GENERAL FORMULA C VALUES BASED ON THE SUPPLEMENTARY INPUT DATA. THE SUBSEQUENT C STRATEGY DEPENDS ON WHETHER THERE THERE ARE ONE OR TWO GROUPS C PRESENT. C CASE 1. A REGRESSION LINE IS FITTED IN THE LOG(ALF/ALFGF) C EMEAN/TE PLANE TO OBTAIN AN ENERGY AND SCALE C FACTOR CORRECTIONS TO THE GENERAL FORMULA. WITH ONLY C ONE DATA VALUE A SCALE FACTOR IS INFERRED AND THE C THE ENERGY CORRECTION ASSUMED ZERO. C CASE 2. A SPLINE IS FITTED IN THE LOG(ALF/ALFGF) V EMEAN/TE C PLANE WITH ZERO CURVATURE END CONDITIONS. AN ATTEMPT C IS MADE TO INTERPRET THE END SLOPES AND INTERCEPTS IN C TERMS OF SCALE FACTORS AND ENERGY CORRECTIONS FOR EACH C GROUP AS A WHOLE. C THE ALF/ALFGF V EMEAN/TE PLOTS ARE REFORMED OPTIONALLY USING THE C BURGESS GENERAL FORMULA WITH OR WITHOUT THE SCALE AND ENERGY C CORRECTIONS. THIS IS INTERPOLATED TO REQUIRED OUTPUT TEMPERATURES. C THE BURGESS GENERAL PROGRAM IS FITTED TO THE ADJUSTED BURGESS GENERAL C FORMULA BY A SINGLE FACTOR WHICH RAMPS THE LOW PARTIAL WAVE C CORRECTIONS UP OR DOWN. NB. AN ADJUSTMENT IS ALSO MADE FOR THE C SPECIFIC ION FOR THE PHASE SPACE ACCESSIBLE FOR CAPTURE TO THE C THE LOWEST LEVEL FOR THE DELTAN=1 GROUP. THIS IS THEN USED C IN BUNDLED N POPULATION CODES TO GIVE PROPER DENSITY CORRECTIONS. C C DATA: C THIS PROGRAM IS NOT YET PROPERLY ANNOTATED C C INPUT: C (R*8) Z0 NUCLEAR CHARGE C (R*8) Z1 RECOMBINING ION CHARGE C (R*8) Z RECOMBINED ION CHARGE C (I*4) N0 = LOWEST ACCESSIBLE PRINCIPLE QUANTUM NO. C (R*8) V0 = LOWEST ACCESSIBLE EFF. PRINCIPLE QUANTUM NO. C (R*8) PHFRAC = LOWEST ACCESSIBLE PHASE OCCUPATION FACTOR C (C*40) TITLE = TITLE FOR RUN C (I*4) IIOTYP = INPUT RATE FORM, 1=DIELECTRONIC C 2=DIEL. + RADIATIVE C (I*4) IIFTYP = INPUT TEMP. FORM, 1= KELVIN C 2= EV C 3= SCALED (K/Z1**2) C (I*4) IIFOUT = INPUT TEMP. FORM, 1= KELVIN C 2= EV C 3= SCALED (K/Z1**2) C (I*4) IXMAX = NUMBER OF TEMP./RATE PAIRS C (I*4) ITMAX = NUMBER OF OUTPUT TEMPS C (R*8) EDAT() = USER OR ARCHIVE ENTERED INPUT TEMPERATURE C (R*8) XDAT() = USER OR ARCHIVE ENTERED RATE C (R*8) TDAT() = USER OR ARCHIVE ENTERED OUTPUT TEMPERATURE C (I*4) INGRUP = NO OF CORE TRANSITION GROUPS C (I*4) IIATYP = TRANSITION PROB. FORM, 1= A-COEFFICIENT C 2= OSCILLATOR STRENGTH C 3= LINE STRENGTH C (I*4) IGRP() = NO OF ENTRIES FOR EACH GROUP C (R*4) EDGRP()= INITIAL MEAN ENERGY DISP. FOR EACH GROUP C (R*4) SCGRP()= MEAN SCALE FACTOR FOR EACH GROUP C (I*4) NIGRP1()= TRANSITION GROUP 1 INFO C (I*4) LIGRP1()= " C (R*8) WIGRP1()= " C (I*4) NJGRP1()= " C (I*4) LJGRP1()= " C (R*8) WJGRP1()= " C (R*8) EGRP1()= " C (R*8) AGRP1()= " C (R*8) CRGRP1()= " C (I*4) NCGRP1()= " C (I*4) NIGRP2()= TRANSITION GROUP 2 INFO C (I*4) LIGRP2()= " C (R*8) WIGRP2()= " C (I*4) NJGRP2()= " C (I*4) LJGRP2()= " C (R*8) WJGRP2()= " C (R*8) EGRP2()= " C (R*8) AGRP2()= " C (R*8) CRGRP2()= " C (I*4) NCGRP2()= " C (I*4) IGF = OPTIMISE BURGESS FORMULA FIT? 1=YES 0=NO C (I*4) IBU = OPTIMISE BURGESS PROGRAM FIT? 1=YES 0=NO C (I*4) IFSEL = 0=FIT TO FORMULA, 1=FIT TO INPUT DATA C (I*4) IBT = BAD POINT OPTION 1=ON 0=OFF C (I*4) IGH = GRAPHICAL DISPLAY? 1=YES 0=NO C (R*8) ASCL = GRAPH SCALING PARAMETER C C OUTPUT: C (R*4) XPA(,) = X VALUES FOR RATIO PLOT C (R*4) YPA(,) = Y VALUES FOR RATIO PLOT (RATIOS OF DIEL. RECOM. COEFFS.) C (I*4) ICT = NUMBER OF POINTS ON RATIO PLOT C (R*4) XP() = X VALUES FOR RATIO PLOT SPLINE FIT C (R*4) YP() = X VALUES FOR RATIO PLOT SPLINE FIT C (I*4) ICOUT = NUMBER OF POINTS ON COEFFICIENT PLOT C (R*4) TEA4() = X VALUES FOR COEFFICIENT PLOT (TEMP.) C (R*4) EXCRA(,) = Y VALUES FOR COEFFICIENT PLOT (COEFFS.) C (R*4) EMEAN4 = MEAN EIJ USED IN GRAPH ANNOTATION C (R*4) SCEXP4 = SCALE FACTOR USED IN GRAPH ANNOTATION C (R*4) EIJA4 = VALUE OF EIJ USED IN GRAPH ANNOTATION C (R*4) FIJA4 = VALUE OF FIJ USED IN GRAPH ANNOTATION C (R*4) CORFA4 = VALUE OF CORFA USED IN GRAPH ANNOTATION C (R*4) EDISP4 = VALUE OF DISPLACEMENT USED IN GRAPH ANNOTATION C (R*4) SCALE4 = VALUE OF SCALE USED IN GRAPH ANNOTATION C (I*4) NGROUP = NUMBER OF CORE TRANSITION GROUPS C (I*4) IGROUP()=NUMBER OF ENTRIES FOR EACH GROUP C (I*4) NIA(,) = NI VALUES FOR BOTH GROUPS C (I*4) LIA(,) = LI VALUES FOR BOTH GROUPS C (I*4) NJA(,) = NJ VALUES FOR BOTH GROUPS C (I*4) LJA(,) = LJ VALUES FOR BOTH GROUPS C (I*4) NCUTA(,)= NCUT VALUES FOR BOTH GROUPS C (R*8) EMEAN()= MEAN ENERGY VALUES FOR EACH GROUP C (R*8) EDISPO()=INITIAL ENERGY DISPLACEMENT FOR EACH GROUP C (R*8) SCALEO()=INITIAL SCALE FACTOR FOR EACH GROUP C (R*8) EDISP()= FINAL ENERGY DISPLACEMENT FOR EACH GROUP C (R*8) SCALE()= FINAL SCALE FACTOR FOR EACH GROUP C (R*8) WIA(,) = WI VALUES FOR BOTH GROUPS C (R*8) EIJA(,)= EIJ VALUES FOR BOTH GROUPS C (R*8) FIJA(,)= FIJ VALUES FOR BOTH GROUPS C (R*8) CORFIA(,)=INITIAL CORFAC VALUES FOR BOTH GROUPS C (R*8) CORFA(,)= FINAL CORFAC VALUES FOR BOTH GROUPS C (R*8) XA() = INPUT TEMPERATURES C (R*8) YA() = INPUT ALF C (R*8) XSAOLD()=INITIAL X VALUES C (R*8) YSAOLD()=INITIAL ALF/ALFG VALUES C (R*8) YSAOLP()=INITIAL ALF/ALFP VALUES C (R*8) APGA() = INITIAL ALFG C (R*8) APGAP()= INITIAL ALFP C (R*8) YSANEW()=FINAL ALF/ALFG VALUES C (R*8) YSANEWP()=FINAL ALF/ALFP VALUES C (R*8) APGOA()= FINAL ALFG C (R*8) APGOAP()=FINAL ALFP C (R*8) SCEXP = PARAMETER DETERMINING X-SCALE EXPANSION C (R*8) XOA() = USER OR ARCHIVE ENTERED OUTPUT TEMPS C (R*8) YOA() = INTERPOLATED ALF VALUES CALCULATED AT XOA TEMPS. C (R*8) ITYPEA(,)= TYPE OF TRANSITION (USED TO CALCULATE CORRECTION C FACTORS) C C AUTHOR: C C ******* H.P.SUMMERS, JET 10 JUNE 1987 *********** C S.P.F PANEL STRUCTURE VERSION. C ******* J. SPENCE, JET 30 JUNE 1987 *********** C S.P.F. PANEL ALTERATION TO INPUT DEFAULT CORFAC C ******* H.P.SUMMERS, JET 17 MAY 1988 *********** C C----------------------------------------------------------------------- C C UNIX-IDL CONVERSION: C C VERSION: 1.1 DATE: 01-11-96 C MODIFIED: WILLIAM OSBORN C - FIRST CONVERTED. C - MADE INTO A SUBROUTINE. COMMENTED-OUT PANEL INPUT C AND GRAPHICAL ROUTINES. C C VERSION 1.2 DATE: 08/11/96 C MODIFIED: WILLIAM OSBORN C - REMOVED UNUSED VARIABLES C C VERSION: 1.3 DATE: 15/05/07 C MODIFIED: Allan Whiteford C - Updated comments as part of subroutine C documentation production. C C----------------------------------------------------------------------- C----------------------------------------------------------------------- CHARACTER*40 TITLE INTEGER IBT, IBU, ICOUT, ICT INTEGER IFSEL, IGF, IGH INTEGER IGROUP(2), IGRP(2), IIATYP, IIFOUT INTEGER IIFTYP, IIOTYP, INGRUP, ITMAX INTEGER ITYPEA(2,6), IXMAX, LIA(2,6) INTEGER LIGRP1(6), LIGRP2(6), LJA(2,6) INTEGER LJGRP1(6), LJGRP2(6), N0 INTEGER NCGRP1(6), NCGRP2(6), NCUTA(2,6), NGROUP INTEGER NIA(2,6), NIGRP1(6), NIGRP2(6) INTEGER NJA(2,6), NJGRP1(6), NJGRP2(6) REAL*8 AGRP1(6), AGRP2(6), APGA(10) REAL*8 APGAP(10), APGOA(10), APGOAP(10), ASCL REAL*8 CORFA(2,6) REAL CORFA4(2,6) REAL*8 CORFIA(2,6), CRGRP1(6), CRGRP2(6) REAL*8 EDAT(10), EDGRP(2), EDISP(2) REAL EDISP4(2) REAL*8 EDISPO(2), EGRP1(6), EGRP2(6) REAL*8 EIJA(2,6) REAL EIJA4(2,6) REAL*8 EMEAN(2) REAL EMEAN4, EXCRA(10,15) REAL*8 FIJA(2,6) REAL FIJA4(2,6) REAL*8 PHFRAC, SCALE(2) REAL SCALE4(2) REAL*8 SCALEO(2), SCEXP REAL SCEXP4 REAL*8 SCGRP(2), TDAT(10) REAL TEA4(10) REAL*8 V0, WIA(2,6), WIGRP1(6) REAL*8 WIGRP2(6), WJA(2,6), WJGRP1(6) REAL*8 WJGRP2(6), XA(10), XDAT(10), XOA(10) REAL XP(10), XPA(4,10) REAL*8 XSANEW(10), XSAOLD(10), YA(10), YOA(10) REAL YP(10), YPA(4,10) REAL*8 YSANEW(10), YSANWP(10), YSAOLD(10) REAL*8 YSAOLP(10), Z, Z0, Z1