Actual source code: ex4f.F

petsc-3.8.4 2018-03-24
Report Typos and Errors
  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

 14:       PetscDraw    draw
 15:       integer dummy
 16:       PetscErrorCode ierr

 18:       integer i

 20:       do 10, i=0,255
 21:         call PetscDrawLine(draw,0.d0,i/256.d0,1.d0,i/256.d0,i,ierr)
 22:  10   continue
 23:       return
 24:       end

 26:       program main
 27:       use petscsys
 28:       implicit none

 30:       PetscDraw draw
 31:       PetscErrorCode ierr
 32:       integer  x,y,width,height
 33:       External zoomfunction
 34:       x      = 0
 35:       y      = 0
 36:       width  = 256
 37:       height = 256

 39:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
 40:       if (ierr .ne. 0) then
 41:         print*,'Unable to initialize PETSc'
 42:         stop
 43:       endif
 44:       call PetscDrawCreate(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,        &
 45:      & 'Title',x,y,width,height,draw,ierr)
 46:       call PetscDrawSetFromOptions(draw,ierr)
 47:       call PetscDrawZoom(draw,zoomfunction,PETSC_NULL_INTEGER,ierr)
 48:       call PetscDrawDestroy(draw,ierr)
 49:       call PetscFinalize(ierr)
 50:       end