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