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