SUBROUTINE EXTRAP(KFILDO,FIELD,NX,NY) C C NOVEMBER 1994 GLAHN TDL MOS-2000 C APRIL 2018 SHAFER MODIFIED TO CHECK FOR MISSING C VALUES ON THE GRID. C C PURPOSE C TO LINEARLY EXTRAPOLATE TO THE OUTER ROWS AND COLUMNS C FROM THE INNER GRIDPOINTS. C C DATA SET USE C KFILDO - DEFAULT UNIT NUMBER FOR OUTPUT (PRINT) FILE. c (OUTPUT) C C VARIABLES C KFILDO = DEFAULT UNIT NUMBER FOR OUTPUT (PRINT) FILE. C (INPUT) C FIELD(IX,JY) = FIELD TO EXTRAPOLATE TO OUTER ROW (LEFT AND RIGHT) C AND COLUMN (TOP AND BOTTOM). (IX=1,NX) (JY=1,NY). C (INPUT-OUTPUT) C NX = THE DIMENSION OF THE GRID IN THE IX DIRECTION. C (INPUT). C NY = THE DIMENSION OF THE GRID IN THE JY DIRECTION. C (INPUT). C C NONSYSTEM SUBROUTINES CALLED C NONE C DIMENSION FIELD(NX,NY) C C EXTRAPOLATE LINEARLY TO BOUNDARY POINTS. C DO 280 IX=2,NX-1 IF(FIELD(IX,2).NE.9999..AND.FIELD(IX,3).NE.9999.) THEN FIELD(IX,1)=2.*FIELD(IX,2)-FIELD(IX,3) ELSE FIELD(IX,1)=9999. ENDIF IF(FIELD(IX,NY-1).NE.9999..AND.FIELD(IX,NY-2).NE.9999.) THEN FIELD(IX,NY)=2.*FIELD(IX,NY-1)-FIELD(IX,NY-2) ELSE FIELD(IX,NY)=9999. ENDIF 280 CONTINUE C DO 285 JY=1,NY IF(FIELD(2,JY).NE.9999..AND.FIELD(3,JY).NE.9999.) THEN FIELD(1,JY)=2.*FIELD(2,JY)-FIELD(3,JY) ELSE FIELD(1,JY)=9999. ENDIF IF(FIELD(NX-1,JY).NE.9999..AND.FIELD(NX-2,JY).NE.9999.) THEN FIELD(NX,JY)=2.*FIELD(NX-1,JY)-FIELD(NX-2,JY) ELSE FIELD(NX,JY)=9999. ENDIF 285 CONTINUE C RETURN END