function btv_test04 ( )

%*****************************************************************************80
%
%% btv_test04() tests burgers_time_viscous() with the shock initial condition.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    23 April 2012
%
%  Author:
%
%    John Burkardt
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'btv_test04():\n' );
  fprintf ( 1, '  Test burgers_time_viscous() with the shock initial condition.\n' );
  fprintf ( 1, '  Use periodic boundaries.\n' );

  nx = 81;
  nt = 300;
  t_max = 3.0;
  nu = 0.01;
  bc = 4;

  fprintf ( 1, '\n' );
  fprintf ( 1, '  Initial condition: shock\n' );
  fprintf ( 1, '  Number of space nodes = %d\n', nx );
  fprintf ( 1, '  Number of time steps = %d\n', nt );
  fprintf ( 1, '  Final time T_MAX = %g\n', t_max );
  fprintf ( 1, '  Viscosity = %g\n', nu );
  fprintf ( 1, '  Boundary condition = %d\n', bc );

  U = burgers_time_viscous ( @ic_shock, nx, nt, t_max, nu, bc );

  x = linspace ( -1.0, +1.0, nx );

  figure ( 4 );
  clf ( );
  plot ( x, U(1:50:(nt+1),:), 'Linewidth', 3 );
  grid ( 'on' );
  xlabel ( '<-- X -->' );
  ylabel ( '<-- U(X,T) -->' );
  title ( 'Burgers equation solutions over time, initial condition shock' );
  filename = 'btv_test04.png';
  print ( '-dpng', filename );
  fprintf ( 1, '  Graphics saved as "%s"\n', filename );
  close ( 4 );

  return
end
