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