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 end 28 29 program main 30 use petscsys 31 implicit none 32 33 PetscDraw draw 34 PetscErrorCode ierr 35 integer x,y,width,height 36 External zoomfunction 37 x = 0 38 y = 0 39 width = 256 40 height = 256 41 42 PetscCallA(PetscInitialize(ierr)) 43 PetscCallA(PetscDrawCreate(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,'Title',x,y,width,height,draw,ierr)) 44 PetscCallA(PetscDrawSetFromOptions(draw,ierr)) 45 PetscCallA(PetscDrawZoom(draw,zoomfunction,PETSC_NULL_INTEGER,ierr)) 46 PetscCallA(PetscDrawDestroy(draw,ierr)) 47 PetscCallA(PetscFinalize(ierr)) 48 end 49 50!/*TEST 51! 52! build: 53! requires: x 54! 55! test: 56! output_file: output/ex1_1.out 57! 58!TEST*/ 59