xref: /petsc/src/sys/classes/draw/tests/ex4f.F90 (revision 9b88ac225e01f016352a5f4cd90e158abe5f5675)
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>
10c5e229c2SMartin 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
25ceeae6b5SMartin Diehl        do i = 0, 255
26d8606c27SBarry Smith          value = i/max
27d8606c27SBarry Smith          PetscCall(PetscDrawLine(draw, zero, value, one, value, i, ierr))
28ceeae6b5SMartin Diehl        end do
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
39*02c639afSMartin Diehl        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