Search Site | Contact Details | FAQ

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)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk