function[]=stream(x,y,U,v,num);
%-------------------------------------------------------%
% Matlab subroutine STREAM.M				%
% Called by:  TLWPLOT.M					%
%							%
% by Robert Hart for Meteo 574 / Fall 95		%
% Penn State University Meteorology                     %
%							%
% This subroutine performs a streamline analysis	%
% of the wind field.  					%
%							%
% Parameters passed to this routine:			%
% ----------------------------------			%
% x	- array of x-gridpoints				%
% y	- array of y-gridpoints				%
% U 	- speed of x-direction wind (constant)		%	
% v	- array of y-direction wind			%
% num	- # of evenly spaced streamlines to draw	%
%							%
% NOTE:  Subroutine is written for a constant   	%
% 	 horizontal wind velocity.			%
%-------------------------------------------------------%
hold;				% hold figure
xsize=size(x);				
xsize=xsize(1);			% size of x-grid
ysize=size(y);
ysize=ysize(2);                 % size of y-grid
miny=y(1);                      % min. y-value                  
maxy=y(ysize);                  % max. y-value
minx=x(1);                      % min. x-value
maxx=x(1,xsize);                % max. x-value

dx=(maxx-minx)/xsize;           % x-dir gridspacing
dy=(maxy-miny)/ysize;           % y-dir grid spacing
dh=ysize/num;                   % streamline spacing

tstep=dx/U;                     % time to cross cell

mtncolor=[.02 .77 .02];         % color of mountain (lt green here)

ycell=1;                        % initial location
for j=1:num                     % streamline loop
  ycell=1+dh*(j-1);             %   current y-location
  if ycell < 1                  %   don't go outside array
    ycell=1;
  end;
  if ycell > ysize              %   don't go outside array
     ycell=ysize;
  end;
  ax=[];                        %   initialize lineplot arrays
  ay=[];               
  ax(1)=minx;                   
  ay(1)=y(ycell);
  for i=2:xsize;                %   streamline tracing loop
     ax(i)=x(ycell,i);          %      calculate displacement
     ay(i)=ay(i-1)+tstep*v(ycell,i);
  end;                          %   end of loop
  if j==1                       %   if first streamline                    
     ax(xsize+1)=maxx;
     ay(ysize+1)=miny;
     fill(ax,ay,mtncolor);      %      solid-fill mountain
  else                          %   otherwise,
     line(ax,ay);	        %      draw streamline!
  end;                          %   end of loop
end;                            % the end;
