Search Site | Contact Details | FAQ

ADAS Subroutine bbspln

      subroutine bbspln( ndtem   , ntmax   ,
     &                   nblock  , maxt    ,
     &                   tin     , tout    , 
     &                   rrcin   , rrcout
     &                 )
C-----------------------------------------------------------------------
C
C  ****************** fortran77 subroutine: bbspln *********************
C
C  purpose:
C 	  1) performs cubic spline on log(temp) versus log(rad.rec.coeff.)
C 	     input data. ('tin' versus 'rrcin' , nblock data pairs)
C
C 	  2) interpolates 'maxt'  rrcout values using above splines at
C 	     temperatures read in from adf08 file for tabular output.

C
C  calling program: adas211
C
C
C  subroutine:
C
C
C  input : (i*4)  ndtem   = maximum number of adf08 temperatures
C  input : (i*4)  ntmax   = maximum number of adf37 temperatures
C  input : (i*4)  nblock  = input data file: number of rrc/temperature
C 			    pairs read for the transition being assessed
C  input : (i*4)  maxt    = number of adf08 temperature values at
C 			    which interpolated rrc values are required
C 			    for tabular output.
C  input : (r*8)  tin()   = adf37 temperatures (kelvin)
C  input : (r*8)  tout()  = adf08 entered temperatures (kelvin)
C  input : (r*8)  rrcin() = rrc values at 'tin()'.
C
C  output: (r*8)  rrcout()= spline interpolated rrc values at 'tout()'
C
C  local : (i*4)  nin	  = parameter = max. no. of input temp/rrc pairs
C 				        must be >= 'nv'
C  local : (i*4)  nout    = parameter = max. no. of output temp/rrc pairs
C 				        must be >= 'maxt' & 'npspl'
C  local : (i*4)  iarr    = array subscript used for temp/rrc pairs
C  local : (i*4)  iopt    = defines the boundary derivatives for the
C 			    spline routine 'xxspln', see 'xxspln'.
C 			    (valid values = <0, 0, 1, 2, 3, 4).
C  local : (l*4)  lsetx   = .true.  => set up spline parameters relating
C 				       to 'xin' axis.
C 			    .false. => do not set up spline parameters
C 				       relating to 'xin' axis.
C 				       (they were set in a previous call)
C 			    (value set to .false. by 'xxsple')
C  local : (r*8)  xin()   = log( 'tin()' )
C  local : (r*8)  yin()   = log( 'rrcin()' )
C  local : (r*8)  xout()  = log(temperatures at which splines required)
C  local : (r*8)  yout()  = log(output spline interpolated rrc values)
C  local : (r*8)  df()    = spline interpolated derivatives
C
C
C routines:
C 	   routine    source	brief description
C 	   ------------------------------------------------------------
C 	   xxspln     adas	spline subroutine
C 	   r8fun1     adas	real*8 function: ( x -> x )
C
C author:  Paul Bryans (University of Strathclyde)
C
C date:    01/12/04
C
C-----------------------------------------------------------------------
C
C-----------------------------------------------------------------------
      INTEGER             MAXT,        NBLOCK,      NDTEM,       NTMAX
      REAL*8              RRCIN(NTMAX),             RRCOUT(NDTEM)
      REAL*8              TIN(NTMAX),  TOUT(NDTEM)
© Copyright 1995-2024 The ADAS Project
Comments and questions to: adas-at-adas.ac.uk