35 lines
778 B
Fortran
35 lines
778 B
Fortran
|
subroutine plotsave(swide,nw,nh,irow)
|
||
|
|
||
|
real, dimension(:,:), allocatable :: sw
|
||
|
real swide(0:nw-1)
|
||
|
data nw0/-1/,nh0/-1/
|
||
|
save nw0,nh0,sw
|
||
|
|
||
|
if(irow.eq.-99) then
|
||
|
if(allocated(sw)) deallocate(sw)
|
||
|
go to 900
|
||
|
endif
|
||
|
|
||
|
if(nw.ne.nw0 .or. nh.ne.nh0 .or. (.not.allocated(sw))) then
|
||
|
if(allocated(sw)) deallocate(sw)
|
||
|
! if(nw0.ne.-1) deallocate(sw)
|
||
|
allocate(sw(0:nw-1,0:nh-1))
|
||
|
sw=0.
|
||
|
nw0=nw
|
||
|
nh0=nh
|
||
|
endif
|
||
|
df=12000.0/16384
|
||
|
if(irow.lt.0) then
|
||
|
! Push a new row of data into sw
|
||
|
do j=nh-1,1,-1
|
||
|
sw(0:nw-1,j)=sw(0:nw-1,j-1)
|
||
|
enddo
|
||
|
sw(0:nw-1,0)=swide
|
||
|
else
|
||
|
! Return the saved "irow" as swide(), for a waterfall replot.
|
||
|
swide=sw(0:nw-1,irow)
|
||
|
endif
|
||
|
|
||
|
900 return
|
||
|
end subroutine plotsave
|