**==OPSPLN.FOR SUBROUTINE OPSPLN IMPLICIT REAL*8 (A-H,N-Z) PARAMETER (MT = 127,MR = 90) REAL*8 MAT(4,MT) COMMON /STAT1 / CSX(10), CS(90,127,10), CNIU(60,41,2), W(18400), : JCSX COMMON /STAT3/ FSPL(4,4,127,90,10),TFM(127),FRM(90), : FKLM(6),FKHM(6) * * Calculate a bicubic spline interpolation fit for the temperature * and density opacity fit. This is based on routines from Princeton * Splines, D. McCune found by L. Dray. * DO 10 JT = 1,MT TFM(JT) = 2.95D0 + 0.05D0*DFLOAT(JT) 10 CONTINUE DO 20 JR = 1,MR FRM(JR) = 0.25D0*DFLOAT(JR) - 12.25D0 20 CONTINUE IFAIL = 0 DO 30 JX = 1,10 DO 26 JQ = 1,MT DO 23 IQ = 1,MR FSPL(1,1,JQ,IQ,JX) = CS(IQ,JQ,JX) 23 CONTINUE 26 CONTINUE * * Construct splines in the T direction. * DO IR=1,MR DO IT = 1,MT MAT(1,IT) = FSPL(1,1,IT,IR,JX) ENDDO CALL SPLINE(MT,TFM,MAT) DO IT = 1,MT-1 FSPL(2,1,IT,IR,JX) = MAT(2,IT) FSPL(3,1,IT,IR,JX) = MAT(3,IT) FSPL(4,1,IT,IR,JX) = MAT(4,IT) ENDDO * ENDDO * * Construct splines in the rho direction. * DO IT = 1,MT-1 * * Construct splines for each T coeff * DO IC = 1,4 DO IR = 1,MR MAT(1,IR) = FSPL(IC,1,IT,IR,JX) ENDDO MAT(2,1) = 0D0 MAT(3,1) = 0D0 MAT(2,MR)= 0D0 MAT(3,MR)= 0D0 CALL SPLINE(MR,FRM,MAT) DO IR = 1,MR-1 FSPL(IC,2,IT,IR,JX) = MAT(2,IR) FSPL(IC,3,IT,IR,JX) = MAT(3,IR) FSPL(IC,4,IT,IR,JX) = MAT(4,IR) ENDDO C ENDDO C ENDDO C 30 CONTINUE RETURN END