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