ADAS Subroutine d1spln
SUBROUTINE D1SPLN( ISWIT , LSWIT ,
& NTDMAX ,
& NDDEN , NDTIN , NDZ1V ,
& ITDVAL ,
& IDE , ITE , IZE ,
& DUSR , TUSR , IZ1 ,
& DENSR , TR , ZIPT ,
& EIA , AIPT ,
& LZRNG , LDRNG , LTRNG ,
& AOUT
& )
C-----------------------------------------------------------------------
C
C ****************** FORTRAN77 SUBROUTINE: D1SPLN *********************
C
C PURPOSE: TO INTERPOLATE/EXTRAPOLATED DATA FROM MASTER CONDENSED FILE
C TO THE USER ENTERED TEMPERATURE/DENSITY PAIRS FOR THE SELEC-
C TED RECOMBINING ION CHARGE.
C
C CALLING PROGRAM: ADAS401
C
C DATA:
C
C THE SOURCE DATA IS CONTAINED AS MEMBERS OF PARTITIONED
C DATA SETS AS FOLLOWS:
C
C 1. JETUID.ACD<YR>.DATA
C 2. JETUID.SCD<YR>.DATA
C 3. JETUID.CCD<YR>.DATA
C 4. JETUID.PRB<YR>.DATA
C 5. JETUID.PRC<YR>.DATA
C 6. JETUID.PRB<YR>.DATA
C 7. JETUID.PRC<YR>.DATA
C 8. JETUID.PLT<YR>.DATA
C 9. JETUID.PLS<YR>.DATA
C 10. JETUID.MET<YR>.DATA
C
C WHERE <YR> DENOTES TWO INTEGERS FOR THE YEAR SELECTED.
C
C THE PARTICULAR TYPE OPENED (1-10) IS SELECTED BY 'ISWIT'
C
C
C SUBROUTINE:
C
C INPUT : (I*4) ISWIT = DATA TYPE SELECTOR (SEE ABOVE) (1 -> 10)
C INPUT : (L*4) LSWIT = .TRUE. => SET OF 'EIA' VALUES PRESENT IN
C MASTER CONDENSED FILE.
C .FALSE => SET OF 'EIA' VALUES NOT PRESENT
C IN MASTER CONDENSED FILE.
C
C INPUT : (I*4) NTDMAX = USER ENTERED VALUES -
C MAXIMUM NUMBER OF TEMPERATURE/DENSITY PAIRS
C
C INPUT : (I*4) NDDEN = INPUT MASTER CONDENSED FILE -
C MAXIMUM NUMBER OF REDUCED DENSITIES
C INPUT : (I*4) NDTIN = INPUT MASTER CONDENSED FILE -
C MAXIMUM NUMBER OF REDUCED TEMPERATURES
C INPUT : (I*4) NDZ1V = INPUT MASTER CONDENSED FILE -
C MAXIMUM NUMBER OF CHARGE STATES
C
C INPUT : (I*4) ITDVAL = USER ENTERED VALUES -
C NUMBER OF TEMPERATURE/DENSITY PAIRS ENTERED
C
C INPUT : (I*4) IDE = INPUT MASTER CONDENSED FILE -
C NUMBER OF REDUCED DENSITIES READ
C INPUT : (I*4) ITE = INPUT MASTER CONDENSED FILE -
C NUMBER OF REDUCED TEMPERATURES READ
C INPUT : (I*4) IZE = INPUT MASTER CONDENSED FILE -
C NUMBER OF CHARGE STATES READ
C
C INPUT : (R*8) DUSR() = USER ENTERED VALUES -
C SET OF 'ITDVAL' ENTERED ELECTRON DENSITIES
C (UNITS: CM**-3)
C DIMENSION: TEMPERATURE/DENSITY PAIR INDEX
C INPUT : (R*8) TUSR() = USER ENTERED VALUES -
C SET OF'ITDVAL' ENTERED ELECTRON TEMPERATURES
C (UNITS: KELVIN)
C DIMENSION: TEMPERATURE/DENSITY PAIR INDEX
C INPUT : (I*4) IZ1 = USER ENTERED VALUE -
C RECOMBINING ION CHARGE
C
C INPUT : (R*8) DENSR() = INPUT MASTER CONDENSED FILE -
C SET OF 'IDE' REDUCED DENSITIES (CM-3/Z1**7)
C INPUT : (R*8) TR() = INPUT MASTER CONDENSED FILE -
C SET OF 'ITE' REDUCED TEMPERATURES (K/Z1**2)
C INPUT : (R*8) ZIPT() = INPUT MASTER CONDENSED FILE -
C SET OF 'IZE' INPUT RECOMBINING ION CHARGES
C
C INPUT : (R*8) EIA() = INPUT MASTER CONDENSED FILE -
C IONISATION RATE COEFFTS. - (UNITS: RYDBERGS)
C DIMENSION: ION CHARGE
C INPUT : (R*8) AIPT(,,)= INPUT MASTER CONDENSED FILE -
C RELEVANT COEFFICIENT/POWER DATA FOR 'ISWIT'.
C 1ST DIMENSION: DENSITY INDEX ('DENSR()')
C 2ND DIMENSION: TEMPERATURE INDEX ('TR()')
C 3RD DIMENSION: CHARGE STATE INDEX ('ZIPT()')
C
C OUTPUT: (L*4) LZRNG(1) = .TRUE. => 'AOUT()' VALUES FOR CHARGE-
C STATE 'IZ1' INTERPOLATED.
C = .FALSE. => 'AOUT()' VALUE FOR CHARGE-
C STATE 'IZ1' EXTRAPOLATED.
C OUTPUT: (L*4) LDRNG() = .TRUE. => 'AOUT()' VALUE FOR DENSITY
C INDEX INTERPOLATED.
C = .FALSE. => 'AOUT()' VALUE FOR DENSITY
C INDEX EXTRAPOLATED.
C DIMENSION: DENSITY INDEX
C OUTPUT: (L*4) LTRNG() = .TRUE. => 'AOUT()' VALUE FOR TEMPERATURE
C INDEX INTERPOLATED.
C = .FALSE. => 'AOUT()' VALUE FOR TEMPERATURE
C INDEX EXTRAPOLATED.
C DIMENSION: TEMPERATURE INDEX
C
C OUTPUT: (R*8) AOUT() = EXTRAPOLATED/INTERPOLATED DATA FOR EACH
C USER ENTERED TEMPERATURE/DENSITY PAIR.
C DIMENSION: TEMPERATURE/DENSITY PAIR INDEX.
C
C (I*4) NUDIM = PARAMETER = MUST BE GREATER THAN OR EQUAL TO
C 'NTDMAX'.
C
C (I*4) NDMAX1 = 'NDDEN'
C (I*4) NTMAX1 = 'NDTIN'
C (I*4) NZMAX1 = 'NDZ1V'
C (I*4) NDMAX2 = 'NUDIM'
C (I*4) NTMAX2 = 'NUDIM'
C (I*4) ITD = GENERAL USE ARRAY SUBSCRIPT INDEX
C
C (R*8) ATTY(,) = WORKING SPACE FOR 3-WAY SPLINE ITERPOLATION
C ( STORES LOG10(INTERPOLATED VALUES) )
C 1ST DIMENSION: TEMPERATURE
C 2ND DIMENSION: DENSITY
C
C NOTE:
C
C ROUTINES:
C ROUTINE SOURCE BRIEF DESCRIPTION
C ------------------------------------------------------------
C DXSPL1 ADAS 1ST PART OF 3-WAY SPLINE OF INPUT DATA
C DXSPL2 ADAS 2ND PART OF 3-WAY SPLINE OF INPUT DATA
C DXSPL3 ADAS 3RD PART OF 3-WAY SPLINE OF INPUT DATA
C
C AUTHOR: PAUL E. BRIDEN (TESSELLA SUPPORT SERVICES PLC)
C K1/0/37
C JET EXT. 2516
C
C DATE: 17/06/91
C
C UNIX PORT:
C
C VERSION: 1.1 DATE: 06-09-95
C MODIFIED: TIM HAMMOND (TESSELLA SUPPORT SERVICES PLC)
C - FIRST RELEASE
C
C VERSION: 1.2 DATE: 15-04-96
C MODIFIED: TIM HAMMOND/PAUL BRIDEN
C - CORRECT BUG: SET NDMAX2 AND NTMAX2 TO NUDIM AND NOT
C NTDMAX.
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
INTEGER IDE, ISWIT, ITDVAL, ITE
INTEGER IZ1, IZE, NDDEN, NDTIN
INTEGER NDZ1V, NTDMAX
LOGICAL LDRNG(NTDMAX), LSWIT
LOGICAL LTRNG(NTDMAX), LZRNG(1)
REAL*8 AIPT(NDDEN,NDTIN,NDZ1V), AOUT(NTDMAX)
REAL*8 DENSR(NDDEN), DUSR(NTDMAX)
REAL*8 EIA(50), TR(NDTIN), TUSR(NTDMAX)
REAL*8 ZIPT(NDZ1V)