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