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:       return
 28:       end

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

 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

 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

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