PARAMETER(ND = 16) CHARACTER buff*20 INTEGER IDOPN(ND) DATA N,LNW/2*0/ DO I = 1, ND ID = 0 CALL GWOPENX(ID,0,0,0,-1,-1,1,' ') IF(ID.GT.0) THEN N = N + 1 IDOPN(N) = ID ELSE WRITE(*,'(A,I2)') 'Unable to open window #', I CALL GWQUIT(IR) ENDIF ENDDO CALL GWSELECT(IR,IDOPN(1)) CALL GWVPORT(IR,0.0,0.0,1.0,1.0) CALL GWINDOW(IR,-0.1,-0.1,1.1,1.1) CALL GWSETPEN(IR,0,2,0,-1) CALL GWLINE(IR,0.0,0.0,1.0,1.0) CALL GWSETPEN(IR,1,3,0,-1) CALL GWLINE(IR,0.0,1.0,1.0,0.0) CALL GWSETPEN(IR,2,4,0,-1) CALL GWLINE(IR,0.0,0.5,1.0,0.5) CALL GWSETPEN(IR,3,5,0,-1) CALL GWLINE(IR,0.5,0.0,0.5,1.0) CALL GWSHOWWN(IR,IDOPN(1),5) DO I = 2,N CALL GWSELECT(IR,IDOPN(I)) CALL GWVPORT(IR,0.0,0.0,1.0,1.0) CALL GWINDOW(IR,-0.1,-0.1,1.1,1.1) LNW = LNW + 4 CALL GWSETPEN(IR, + KRGB(INT(256*RAND()),INT(256*RAND()),INT(256*RAND())) + ,1,LNW,-1) DXY = REAL(N-I+1)/N/2 CALL GWELLIPSE(IR,DXY,DXY,1-DXY,1-DXY) ENDDO CALL GWINPUT(lbuff, '# of loops = ', buff) IF(lbuff .GT. 0) THEN READ(buff,*) M DO J = 1,M DO I = N,1,-1 CALL GWSELECT(IR,IDOPN(I)) CALL GWARRANGE(IR,5) CALL GWSLEEP(IR,30) ENDDO DO I = 1,N CALL GWSELECT(IR,IDOPN(I)) CALL GWARRANGE(IR,5) CALL GWSLEEP(IR,30) ENDDO ENDDO ENDIF CALL GWARRANGE(IR,3) DO I = 1,N CALL GWSELECT(IR,IDOPN(I)) CALL GWSLEEP(IR,100) CALL GWCLEAR(IR,-1) ENDDO CALL GWQUIT(IR) END