xref: /petsc/src/sys/classes/draw/tests/ex4f.F90 (revision a69119a591a03a9d906b29c0a4e9802e4d7c9795)
1!
2!
3!  This example demonstrates use of PetscDrawZoom()
4!
5!          This function is called repeatedly by PetscDrawZoom() to
6!      redraw the figure
7!
8      subroutine zoomfunction(draw,dummy,ierr)
9#include <petsc/finclude/petscsys.h>
10#include <petsc/finclude/petscdraw.h>
11      use petscsys
12      implicit none
13      PetscReal zero, one,value, max
14      PetscDraw    draw
15      integer dummy
16      PetscErrorCode ierr
17
18      PetscInt i
19
20      zero = 0
21      one  = 1
22      max = 256.0
23      do 10, i=0,255
24        value = i/max
25        PetscCall(PetscDrawLine(draw,zero,value,one,value,i,ierr))
26 10   continue
27      return
28      end
29
30      program main
31      use petscsys
32      implicit none
33
34      PetscDraw draw
35      PetscErrorCode ierr
36      integer  x,y,width,height
37      External zoomfunction
38      x      = 0
39      y      = 0
40      width  = 256
41      height = 256
42
43      PetscCallA(PetscInitialize(ierr))
44      PetscCallA(PetscDrawCreate(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,'Title',x,y,width,height,draw,ierr))
45      PetscCallA(PetscDrawSetFromOptions(draw,ierr))
46      PetscCallA(PetscDrawZoom(draw,zoomfunction,PETSC_NULL_INTEGER,ierr))
47      PetscCallA(PetscDrawDestroy(draw,ierr))
48      PetscCallA(PetscFinalize(ierr))
49      end
50
51!/*TEST
52!
53!   build:
54!     requires: x
55!
56!   test:
57!     output_file: output/ex1_1.out
58!
59!TEST*/
60