Spaces:
Running
Running
| 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(round(ycell)); | |
| ycell=int8(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; | |