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 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 10, i=0,255 26 value = i/max 27 PetscCall(PetscDrawLine(draw,zero,value,one,value,i,ierr)) 28 10 continue 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/ex1_1.out 60! 61!TEST*/ 62