xref: /petsc/src/sys/classes/draw/tests/ex4f.F90 (revision c5e229c2f66f66995aed5443a26600af2aec4a3f)
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#include <petsc/finclude/petscsys.h>
9d8606c27SBarry Smith#include <petsc/finclude/petscdraw.h>
10*c5e229c2SMartin Diehl      subroutine zoomfunction(draw, dummy, ierr)
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 Smith10        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:
593886731fSPierre Jolivet!     output_file: output/empty.out
60d8606c27SBarry Smith!
61d8606c27SBarry Smith!TEST*/
62