ADAS Subroutine bftran
C
SUBROUTINE BFTRAN( TYP , C , LNEG ,
& AIN , WVNOU , WVNOL , WTU , WTL ,
& TEIN , UPSIN , NV ,
& TEOUT , UPSOUT , NVN
& )
C----------------------------------------------------------------
C
C ************* FORTRAN SUBROUTINE BFTRAN *******************
C
C PURPOSE : TO IMPLEMENT THE TRANSFORMATION DESCRIBED BY
C BURGESS AND TULLY ( SEE REFERENCE (1)) WHICH
C IS USED TO ASSESS AND COMPACT DATA.
C
C
C REFERENCES:
C (1) A.BURGESS AND J.A.TULLY
C ON THE ANALYSIS OF COLLISION STRENGTHS
C AND RATE COEFFICIENTS.
C ASTRON.ASTROPHYS.254,436-453 (1992 )
C
C (2) SUMMERS.H.P
C ADAS USERS MANUAL ( 1ST EDITION ).
C
C INPUT :
C (C*1) TYP = BURGESS & TULLY TRANSITION TYPE CODE
C (R*8) C = THE ADJUSTABLE PARAMETER ASSOCIATED
C WITH THE BURGESS AND TULLY
C TRANSFORMATION ( SEE REFERENCE (1)).
C (L) LNEG = IF TYPE 2 GOES NEGATIVE AT HIGH
C TEMPERATURES THE COLLISION STRENGTH HAS
C A ZERO LIMITING VALUE AT INFINITY.
C (R*8) AIN = THE EINSTEIN `A` CO-EFFICIENT. THIS
C IS READ DIRECTLY FROM THE ADF04
C TYPE FILE.
C (R*8) WVNOU = THE WAVENUMBER OF THE UPPER LEVEL.
C THIS IS READ DIRECTLY FROM THE ADF04
C TYPE FILE.
C (R*8) WVNLO = THE WAVENUMBER OF THE LOWER LEVEL.
C THIS IS READ DIRECTLY FROM THE ADF04
C TYPE FILE.
C (R*8) WTU = THE STATISTICAL WEIGHT OF THE UPPER
C LEVEL. THIS IS OBTAINED BY
C
C (R*8) WTL = THE STATISTICAL WEIGHT OF THE LOWER
C LEVEL. THIS IS OBTAINED BY
C
C (R*8) TEIN = THE TEMPERATURE ARRAY (K). THIS
C DATA IS READ DIRECTLY FROM THE
C ADF04 TYPE FILE.
C (R*8) UPSIN = THE ARRAY CONTAING THE EFFECTIVE
C COLLISION STRENGTH. THIS DATA IS
C READ DIRECTLY FROM THE ADF04
C TYPE FILE.
C (I*4) NV = THE NUMBER OF TEMPERATURE/EFFECTIVE
C COLLISION STRENGTH PAIRS FOR A GIVEN
C TRANSITION.
C (I*4) NVN = THE NUMBER OF TEMPERATURES/EFFECTIVE
C COLLISION STRENGTH PAIRS FOR A GIVEN
C TRANSITION. THIS PARAMETER IS IN
C FACT THE NUMBER OF USER DEFINED
C TEMPERATURE POINTS AT WHICH THE
C EFFECTIVE COLLISION STRENGTH
C HAS TO BE EVALUATED AT.
C (R*8) TEOUT = THE TEMPERATURE RANGE FOR WHICH
C THE EFFECTIVE COLLISION STRENGTH IS
C REQUIRED.
C
C OUTPUT:
C
C (R*8) UPSOUT = THE ARRAY OF EFFECTIVE COLLISION
C STRENGTHS THAT ARE REQUIRED.
C
C
C (R*8) E = THE MATHEMATICAL CONSTANT E.
C (R*8) CONST = CLUSTER OF PHYSICAL CONSTANTS.
C SEE PAGE 12 OF REFERENCE (2).
C (R*8) EIJIN = THE TRANSITION ENERGY (RYD).
C (R*8) FIJIN = THE OSCILLATOR STRENGTH.
C (R*8) ET = GENERAL CONSTANT.
C (R*8) C = THE BURGESS C PARAMETER.
C (R*8) X = THE X ARRAY ASSOCIATED WITH THE
C BURGESS AND TULLY TRANSFORMATION.
C (R*8) Y = THE Y ARRAY ASSOCIATED WITH THE
C BURGESS AND TULLY TRANSFORMATION.
C (R*8) DY = DERIVATIVES AT INPUT KNOTS.
C SEE XXSPLN FOR FUTHER DETAILS.
C (R*8) XOUT = X ARRAY ASSOCIATED WITH THE
C BURGESS AND TULLY TRANSFORMATION.
C (R*8) YOUT = Y ARRAY ASSOCIATED WITH THE
C BURGESS AND TULLY TRANSFORMATION.
C (R*8) FINTX = INTERPOLATING X COORDINATE
C TRANSFORMATION ( SEE SUBROUTINE
C XXSPLN ). EXTERNAL FUNCTION.
C (I*4) NVMAX = THE MAXIMUM NUMBER OF TEMPERTURES
C THAT CAN BE READ.
C (I*4) NFIT = NVMAX+1 - ALLOWS LIMIT POINT TO BE
C ADDED TO TYPE 1 AND 4 FITS.
C (I*4) IOPT = GENERAL PARAMETER ASSOCIATED WITH
C THE SUBROUTINE XXSPLN.
C (I*4) I = GENERAL VARIABLE WHICH IS USED AS
C A COUNTER.
C (LOG) LSETX = PARAMETER ASSOCIATED WITH THE
C SUBROUTINE XXSPLN.
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C -------------------------------------------------------------
C I4UNIT ADAS FETCH UNIT NUMBER FOR OUTPUT OF MESSAGES
C R8CONST ADAS RETURNS FUNDAMENTAL ATOMIC CONSTANTS
C
C
C AUTHOR: H. P. SUMMERS, UNIVERSITY OF STRATHCLYDE
C JA8.08
C TEL. 0141-553-4196
C
C DATE: 04/06/98
C
C UPDATE:
C
C VERSION: 1.1 DATE: 09/08/98
C MODIFIED: RICHARD MARTIN
C - PUT UNDER SCCS CONTROL.
C
C VERSION: 1.2 DATE: 15/04/99
C MODIFIED: Martin O'Mullane
C - If type 1 or 4 add in the limit point
C to the spline fit.
C - Added support for type 4 transitions.
C
C VERSION: 1.3 DATE: 08/10/99
C MODIFIED: Martin O'Mullane
C - Certain type 2 and 3 transitions have a limiting
C point of zero at infinity. We deduce this by
C fitting and if the values go negative rerun with
C LNEG set and add y=0 at x=1 to the fit.
C
C----------------------------------------------------------------
CHARACTER TYP
INTEGER NV, NVN
LOGICAL LNEG
REAL*8 AIN, C, TEIN(NV)
REAL*8 TEOUT(NVN), UPSIN(NV), UPSOUT(NVN), WTL
REAL*8 WTU, WVNOL, WVNOU