And then again, Johannes, maybe it doesn't! Apologies for this scruffy program, but it illustrates SIMPLEPLOT_REDRAW:
WINAPP
OPTIONS (INTL)
program test
IMPLICIT DOUBLE PRECISION(A-H, O-Z)
INCLUDE <WINDOWS.INS>
COMMON /VALUES/ X(10), Y(10)
COMMON /COUNT/ N, IA, M
COMMON /REPEAT/ Keep_code(3), New_data_ready
INTEGER, EXTERNAL :: PLOT_FN, REDRAW_FN
N = 10; M = 1
DO 10 I=1, 10
x(i)=i-1
y(i)=x(i) ** 2 + M * x(I) - M
write(*,*) x(i), y(i)
10 CONTINUE
I=WINIO@('%ca[Main window]%lw&', Keep_code(1))
i=winio@('%dl&', 5.0d0, REDRAW_FN)
I=WINIO@('%sc&', PLOT_FN)
I=WINIO@('%fr', 600, 400) ! positioning
end program test
integer function PLOT_FN()
IMPLICIT DOUBLE PRECISION(A-H, O-Z)
INCLUDE <WINDOWS.INS>
COMMON /VALUES/ X(10), Y(10)
COMMON /COUNT/ N, IA, M
COMMON /REPEAT/ Keep_code(3), New_data_ready
IA=WINIO@('%aw&', Keep_code(1))
iA=winio@('%pl[x_array,colour=blue,title='plot',
& x_axis=r,y_axis=x]', 500, 300, n, x, y)
PLOT_FN = 1
RETURN
END
INTEGER FUNCTION REDRAW_FN ()
IMPLICIT DOUBLE PRECISION(A-H, O-Z)
INCLUDE <WINDOWS.INS>
COMMON /VALUES/ X(10), Y(10)
COMMON /COUNT/ N, IA, M
COMMON /REPEAT/ Keep_code(3), New_data_ready
DO 10 I=1, 10
x(i)=i-1
y(i)=x(i) ** 2 + M * x(I) - M
write(*,*) x(i), y(i)
10 CONTINUE
M = M+1
CALL SIMPLEPLOT_REDRAW@
REDRAW_FN = 1
IF (M .EQ. 11) REDRAW_FN = 0
RETURN
END
(I didn't use Keep_code 2 or 3, or New_data_ready). I put the plot in a child window, but the timer is in the main window.
Eddie