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