Actual source code: ex4f.F90

  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

 15:         PetscReal zero, one, value, max
 16:         PetscDraw draw
 17:         integer dummy
 18:         PetscErrorCode ierr

 20:         PetscInt32 i

 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

 31:         program main
 32:           use petscsys
 33:           use petscdraw
 34:           implicit none

 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

 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

 53: !/*TEST
 54: !
 55: !   build:
 56: !     requires: x
 57: !
 58: !   test:
 59: !     output_file: output/empty.out
 60: !
 61: !TEST*/