SUBROUTINE WRITE_RESTART()

  ! UW Land Surface Hydrology Group implementation of Catchment model
  ! modified from NLDAS implementation
  ! author: Kostas Andreadis, kostas@hydro.washington.edu

  ! WRITES RESTART FILE

  ! driverMod contains definitions of all global driver variables
  USE driverMod

  IMPLICIT NONE

  INTEGER :: n , k

  OPEN(10, file=RESTFILE, form='unformatted', status='unknown', &
       action='write')

  WRITE (10) (CAT_PROGN(n)%tc1,    n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%tc2,    n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%tc4,    n=1,landlen)

  WRITE (10) (CAT_PROGN(n)%qa1,    n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%qa2,    n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%qa4,    n=1,landlen)

  WRITE (10) (CAT_PROGN(n)%capac,  n=1,landlen)

  WRITE (10) (CAT_PROGN(n)%catdef, n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%rzexc,  n=1,landlen)
  WRITE (10) (CAT_PROGN(n)%srfexc, n=1,landlen)

  do k=1,N_gndtmp
     WRITE (10) (CAT_PROGN(n)%ght(k),  n=1,landlen)
  end do

  do k=1,N_snow
     WRITE (10) (CAT_PROGN(n)%wesn(k), n=1,landlen)
  end do
  do k=1,N_snow
     WRITE (10) (CAT_PROGN(n)%htsn(k), n=1,landlen)
  end do
  do k=1,N_snow
     WRITE (10) (CAT_PROGN(n)%sndz(k), n=1,landlen)
  end do

  ! Close file
  CLOSE(10,status='keep')

END SUBROUTINE WRITE_RESTART
