      SUBROUTINE LAKE_RED_TRANS1(RUNOFF,RUNOFF_LAK,RUNOFF_X,RUNOFF_Y,
     &SURF,DEM,CHN_DEC,LAKE_RED,LAKE2RUN,COLS,ROWS,LAK_NO_INC)

      ! THIS SUBROUTINE UPDATES THE LAKE SURFACE, TRANSFERS THE
      ! OVERFLOWN WATER. ALL THESE OPERATIONS ARE DONE AFTER CHANNEL
      ! INCISION ROUTINE

      ! DESCRIPTION OF VARIABLES:

      ! RUNOFF: CONTAINS RUNOFF MELTWATER (IN METERS) FOR EVERY GRID
      ! CELL. GETS MODIFIED IN THIS SUBROUTINE

      ! ROWS,COLS: ROWS AND COLUMNS OF THE STUDY AREA. REMAINS
      ! UNMODIFIED IN THIS SUBROUTINE

      ! LAKE_RED: STORES THE HEIGHT OF WATER THAT HAS TO BE REDUCED FROM
      ! A LAKE AFTER IT HAS DRIANED VIA CHANNEL INCISION (IN EVERY
      ! TIMESTEP). REMAINS UNCHANGED IN THIS SUBROUTINE

      ! LAKE2RUN: STORES THE HEIGHT OF EXCESS LAKE WATER. THE EXCESS
      ! LAKE WATER IS A RESULT OF REDUCTION OF CHANNEL HEIGHT OF A LAKE
      ! DUE TO CHANNEL INCISION. GETS MODIFIED IN THIS SUBROUTINE

      ! RUNOFF_X: STORES THE RUNOFF THAT HAS BEEN TRANFERRED FROM A LAKE TO
      ! A NON-CREVASSED, NON-LAKE DEM CELL. THIS TRANSFER TAKES PLACE
      ! DURING LAKE OVERFLOW. REMAINS UNMODIFIED IN THIS SUBROUTINE

      ! LAK_NO_INC: STORES THE EXTENT OF THE LAKES THAT HAVE OVERFLOWN
      ! BUT WITHOUT CHANNEL INCISION. SHOWS 1 FOR LAKE PIXELS AND 0
      ! OTHERWISE. GETS MODIFIED IN THIS SUBROUTINE

      ! RUNOFF_Y: STORES THE RUNOFF THAT HAS BEEN TRANFERRED FROM A LAKE TO
      ! A CREVASSED, NON-LAKE DEM CELL. THIS TRANSFER TAKES PLACE
      ! DURING LAKE OVERFLOW. REMAINS UNMODIFIED IN THIS SUBROUTINE

      ! RUNOFF_LAK: STORES THE RUNOFF THAT HAS BEEN TRANSFERRED FROM A LAKE
      ! TO ANOTHER EXISTING LAKE. THIS TRANSFER TAKES PLACE
      ! DURING LAKE OVERFLOW. REMAINS UNMODIFIED IN THIS SUBROUTINE

      ! CHN_DEC: STORES DEPTH OF SUPRAGLACIAL MELTWATER CHANNELS.
      ! REMAINS UNMODIFIED IN THIS SUBROUTINE

      ! SURF: CONTAINS SURFACE HEIGHT (IN METERS) OF EVERY GRID CELL.
      ! GETS MODIFIED IN THIS SUBROUTINE

      ! DEM: CONTAINS DEM SURFACE ELEVATION (IN METERS) FOR EVERY GRID
      ! CELL. GETS MODIFIED IN THIS SUBROUTINE

      IMPLICIT NONE

      INTEGER :: COLS,ROWS,I,J,LAK_NO_INC(COLS,ROWS)

      DOUBLE PRECISION :: RUNOFF(COLS,ROWS),RUNOFF_LAK(COLS,ROWS),
     &RUNOFF_X(COLS,ROWS),RUNOFF_Y(COLS,ROWS),SURF(COLS,ROWS),
     &DEM(COLS,ROWS),CHN_DEC(COLS,ROWS),LAKE_RED(COLS,ROWS),
     &LAKE2RUN(COLS,ROWS),LAKE_DEPTH(COLS,ROWS)

      LAKE_DEPTH=SURF-DEM

      SURF=SURF-CHN_DEC ! REDUCTION IN CHANNEL HEIGHT
      DEM=DEM-CHN_DEC   ! REDUCTION IN CHANNEL ELEVATION

      ! REDUCTION IN LAKE SURFACE AFTR CHANNEL INCISION

      DO 100 I=1,COLS
      DO 200 J=1,ROWS

      IF (LAKE_RED(I,J).NE.0) THEN
              RUNOFF(I,J)=RUNOFF(I,J)-LAKE_RED(I,J)
              IF (RUNOFF(I,J).LT.0) THEN
                      SURF(I,J)=SURF(I,J)+RUNOFF(I,J)
                      RUNOFF(I,J)=0
                      IF (SURF(I,J).LT.DEM(I,J)) THEN
                              SURF(I,J)=DEM(I,J)
                      END IF
              ELSE
              END IF
      ELSE
      END IF

200   CONTINUE
100   CONTINUE

      ! THE EXCESS LAKE WATER AFTER CHANNEL INCISION WILL BE CONVERTED
      ! TO RUNOFF

      DO 300 I=1,COLS
      DO 400 J=1,ROWS
      IF ((LAKE2RUN(I,J).NE.0)) THEN
              SURF(I,J)=SURF(I,J)-LAKE2RUN(I,J)
              IF (SURF(I,J).LT.DEM(I,J)) THEN
                      SURF(I,J)=DEM(I,J)
              END IF
              RUNOFF(I,J)=RUNOFF(I,J)+LAKE2RUN(I,J)
      ELSE
      END IF
400   CONTINUE
300   CONTINUE

      DO 500 I=1,COLS
      DO 600 J=1,ROWS
      IF ((LAK_NO_INC(I,J).EQ.1)) THEN
              RUNOFF(I,J)=0 ! THIS RUNOFF WAS TRANSFERRED DUE TO SIMPLE OVERFLOW
      ELSE
      END IF
600   CONTINUE
500   CONTINUE

      RUNOFF=RUNOFF+RUNOFF_LAK ! TRANSFERRING LAKE RUNOFF

      ! UPDATING RUNOFF FOR CREVASSED AND NON CREVASSED CELLS

      RUNOFF=RUNOFF+RUNOFF_X+RUNOFF_Y
      LAKE2RUN=0.
      LAK_NO_INC=0.

      RETURN

      END SUBROUTINE LAKE_RED_TRANS1
