SUBROUTINE psi_graph (xvals, psi, nxval, nchanl, filename)
USE Numeric_Kinds_Module
USE FileUnits_Module
USE DiatomicPot_Module, ONLY: DiatomicPot
IMPLICIT NONE
CHARACTER(LEN=*) :: filename
INTEGER :: k, j, nxval, nchanl, ntime, ifirst, ilast, itime, ngroup
PARAMETER (ngroup = 5)

REAL(Kind=WP_Kind) :: xvals (nxval), psi (nxval, nchanl)
OPEN(Unit=Psi_Graph_Unit,File=OutDIR(1:LEN(TRIM(OutDIR)))//filename, status = 'unknown', form = 'formatted')
WRITE(Psi_Graph_Unit,'(7(A13,","))')" ","xvals ","Wave 1","Wave 2","Wave 3","Wave 4","Wave 5"
ntime = (nchanl - 1) / ngroup + 1
DO itime = 1, ntime
   ifirst = (itime-1) * ngroup + 1
   ilast = min (ifirst + ngroup - 1, nchanl)
   DO j = 1, nxval
      WRITE(Psi_Graph_Unit, '(1x,A13,",",11(1pe13.5,","))')" ", xvals (j), (psi (j, k), k = ifirst, ilast)
   ENDDO
   IF(itime/=ntime) WRITE(Psi_Graph_Unit, * ) '&'
ENDDO
CLOSE(unit=EPsi_Graph_Unit)

CLOSE(unit=Sol_Bin_Unit)
OPEN(Unit=Sol_Bin_Unit,File=OutDIR(1:LEN(TRIM(OutDIR)))//'BinOut/Solution.bin', status = 'unknown', form = 'unformatted')
WRITE(Sol_Bin_Unit) xvals
WRITE(Sol_Bin_Unit) psi
CLOSE(Sol_Bin_Unit)

RETURN
ENDSUBROUTINE psi_graph