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/ex1_1.out
 60: !
 61: !TEST*/