xref: /petsc/src/sys/classes/draw/tests/ex4f.F90 (revision ce78bad369055609e946c9d2c25ea67a45873e27)
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
12*ce78bad3SBarry Smith      use petscdraw
13d8606c27SBarry Smith      implicit none
14*ce78bad3SBarry Smith
15d8606c27SBarry Smith      PetscReal zero, one,value, max
16d8606c27SBarry Smith      PetscDraw    draw
17d8606c27SBarry Smith      integer dummy
18d8606c27SBarry Smith      PetscErrorCode ierr
19d8606c27SBarry Smith
20*ce78bad3SBarry 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
33*ce78bad3SBarry Smith      use petscdraw
34d8606c27SBarry Smith      implicit none
35d8606c27SBarry Smith
36d8606c27SBarry Smith      PetscDraw draw
37d8606c27SBarry Smith      PetscErrorCode ierr
38*ce78bad3SBarry 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:
59d8606c27SBarry Smith!     output_file: output/ex1_1.out
60d8606c27SBarry Smith!
61d8606c27SBarry Smith!TEST*/
62