Actual source code: ex5f.F

  1: !
  2: !
  3:       program main
 4:  #include finclude/petscsys.h
 5:  #include finclude/petscdraw.h
  6: !
  7: !  This example demonstrates basic use of the Fortran interface for
  8: !  PetscDraw routines.
  9: !
 10:       PetscDraw         draw
 11:       PetscDrawLG       lg
 12:       PetscDrawAxis     axis
 13:       PetscErrorCode    ierr
 14:       PetscTruth        flg
 15:       integer           x,y,width,height
 16:       PetscScalar       xd,yd
 17:       PetscInt          i,n,w,h

 19:       n      = 20
 20:       x      = 0
 21:       y      = 0
 22:       w      = 300
 23:       h      = 300

 25:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)

 27: !  GetInt requires a PetscInt so have to do this ugly setting
 28:       call PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-width',w,          &
 29:      &     flg,ierr)
 30:       width = w
 31:       call PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-height',h,         &
 32:      &     flg,ierr)
 33:       height = h
 34:       call PetscOptionsGetInt(PETSC_NULL_CHARACTER,'-n',n,flg,ierr)

 36:       call PetscDrawCreate(PETSC_COMM_SELF,PETSC_NULL_CHARACTER,        &
 37:      &               PETSC_NULL_CHARACTER,x,y,width,height,draw,ierr)
 38:       call PetscDrawSetType(draw,PETSC_DRAW_X,ierr)

 40:       call PetscDrawLGCreate(draw,1,lg,ierr)
 41:       call PetscDrawLGGetAxis(lg,axis,ierr)
 42:       call PetscDrawAxisSetColors(axis,PETSC_DRAW_BLACK,PETSC_DRAW_RED, &
 43:      &     PETSC_DRAW_BLUE,ierr)
 44:       call PetscDrawAxisSetLabels(axis,'toplabel','xlabel','ylabel',    &
 45:      &     ierr)

 47:       do 10, i=0,n-1
 48:         xd = i - 5.0
 49:         yd = xd*xd
 50:         call PetscDrawLGAddPoint(lg,xd,yd,ierr)
 51:  10   continue

 53:       call PetscDrawLGIndicateDataPoints(lg,ierr)
 54:       call PetscDrawLGDraw(lg,ierr)
 55:       call PetscDrawFlush(draw,ierr)

 57:       call PetscSleep(10,ierr)

 59:       call PetscDrawLGDestroy(lg,ierr)
 60:       call PetscDrawDestroy(draw,ierr)
 61:       call PetscFinalize(ierr)
 62:       end
 63: