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