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:       implicit none
 13:       PetscReal zero, one,value, max
 14:       PetscDraw    draw
 15:       integer dummy
 16:       PetscErrorCode ierr

 18:       PetscInt i

 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

 29:       program main
 30:       use petscsys
 31:       implicit none

 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

 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

 50: !/*TEST
 51: !
 52: !   build:
 53: !     requires: x
 54: !
 55: !   test:
 56: !     output_file: output/ex1_1.out
 57: !
 58: !TEST*/