SUBROUTINE WEIGHT( X, NX, XTAB, NXTAB, W, IX ) C C Given C X(*) abscissas C XTAB(*) points for tabulation C NX number of x points C C Compute C W(*) weights for linear interpolation C IX(*) indices for " " C INTEGER IX(*) REAL X(*), XTAB(*), W(*) C C LOCATE INDICES C L = 1 DO 2000 IXTAB = 1, NXTAB C ------ DOES [X(L), X(L+1)] BRACKET RCVR DEPTH? 1000 IF ( X(L+1) .GE. XTAB(IXTAB) .OR. L .GE. NX-1 ) THEN C ------ YES: MAKE NOTE OF L AND WEIGHT FOR INTERPOLATION IX(IXTAB) = L W(IXTAB) = ( XTAB(IXTAB) - X(L) ) / ( X(L+1) - X(L) ) GOTO 2000 ELSE C ------ NO: ADVANCE TO NEXT DEPTH IF ( L .LT. NX-1 ) L = L + 1 GOTO 1000 ENDIF 2000 CONTINUE C RETURN END