Actual source code: ex5f.F

petsc-3.7.1 2016-05-15
Report Typos and Errors
  1: !
  2: !
  3:       program main
  4: #include <petsc/finclude/petscsys.h>
  5: #include <petsc/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:       PetscBool         flg
 15:       integer           x,y,width,height
 16:       PetscScalar       xd,yd
 17:       PetscInt          i,n,w,h

 19:       n      = 15
 20:       x      = 0
 21:       y      = 0
 22:       w      = 400
 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_OBJECT,PETSC_NULL_CHARACTER,         &
 29:      &                        '-width',w, flg,ierr)
 30:       width = int(w)
 31:       call PetscOptionsGetInt(PETSC_NULL_OBJECT,PETSC_NULL_CHARACTER,         &
 32:      &                        '-height',h,flg,ierr)
 33:       height = int(h)
 34:       call PetscOptionsGetInt(PETSC_NULL_OBJECT,PETSC_NULL_CHARACTER,         &
 35:      &                        '-n',n,flg,ierr)

 37:       call PetscDrawCreate(PETSC_COMM_WORLD,PETSC_NULL_CHARACTER,        &
 38:      &               PETSC_NULL_CHARACTER,x,y,width,height,draw,ierr)
 39:       call PetscDrawSetFromOptions(draw,ierr)

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

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

 54:       call PetscDrawLGSetUseMarkers(lg,PETSC_TRUE,ierr)
 55:       call PetscDrawLGDraw(lg,ierr)

 57:       call PetscSleep(10,ierr)

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