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