C LAGRANGE.FOR SUBROUTINE LAGRAN(MODQTY,NMESH,MY,MAXMSH,MODEN,DH0SQ) C DOUBLE PRECISION MY(MAXMSH,MODEN) DOUBLE PRECISION DH0SQ(8), ZL, X, Y COMMON /LUNIT/ LUPLP, LUPLT, LUPRT C 100 FORMAT(1X,'*** EXTRAP NOT PERFORMED BECAUSE OF ARRAY SIZE', & ' LIMITATION ***') IF(NMESH+1 .GT. MAXMSH) THEN WRITE(LUPRT,100) RETURN END IF IF(NMESH .GE. 2) THEN X=DH0SQ(NMESH+1) DO 3000 M=1,MODQTY Y=0.0 DO 2000 J=1,NMESH ZL=1.0 DO 1000 K=1,NMESH IF(K.NE.J) ZL=ZL*(X-DH0SQ(K))/(DH0SQ(J)-DH0SQ(K)) 1000 CONTINUE Y=Y+ZL*MY(J,M) 2000 CONTINUE MY(NMESH+1,M)= Y 3000 CONTINUE ELSE DO 4000 M=1,MODQTY MY(2,M)=MY(1,M) 4000 CONTINUE END IF RETURN END