[petsc-users] PETSC_VIEWER_DRAW_(Comm) Fortran interface missing?

Satish Balay balay at mcs.anl.gov
Tue Mar 6 11:14:24 CST 2018


Ok - I've added ftn interface for PETSC_VIEWER_DRAW_() [similar to
PETSC_VIEWER_STDOUT_()] in branch balay/ftn-VIEWER_DRAW/maint.

You can give it a try and see if it works.

Satish

On Tue, 6 Mar 2018, Satish Balay wrote:

> Hm - I do see the fortran interface code for PETSC_VIEWER_STDOUT_()
> 
> https://bitbucket.org/petsc/petsc/src/049452fa31a1384b9850ba16ebcec79c99e4198c/src/sys/classes/viewer/impls/ascii/ftn-custom/zvcreatef.c?at=master&fileviewer=file-view-default
> 
> and it does appear to work for me.
> 
> balay at asterix /home/balay/petsc/src/mat/examples/tests (master *=)
> $ git diff
> diff --git a/src/mat/examples/tests/ex16f90.F90 b/src/mat/examples/tests/ex16f90.F90
> index 6bb83b4644..fee44aea95 100644
> --- a/src/mat/examples/tests/ex16f90.F90
> +++ b/src/mat/examples/tests/ex16f90.F90
> @@ -15,6 +15,7 @@
>        PetscInt one
>        PetscScalar  v(1)
>        PetscScalar, pointer :: array(:,:)
> +      PetscViewer vw
>  
>  
>        call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
> @@ -49,7 +50,8 @@
>  !
>  !       Print the matrix to the screen
>  !
> -      call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr)
> +      vw = PETSC_VIEWER_STDOUT_(PETSC_COMM_WORLD)
> +      call MatView(A,vw,ierr);CHKERRA(ierr)
>  
>  
>  !
> balay at asterix /home/balay/petsc/src/mat/examples/tests (master *=)
> $ mpiexec -n 2 ./ex16f90
> Mat Object: 2 MPI processes
>   type: mpidense
> 9.0000000000000000e+00 4.5000000000000000e+00 
> 4.5000000000000000e+00 3.0000000000000000e+00 
> 3.0000000000000000e+00 2.2500000000000000e+00 
> balay at asterix /home/balay/petsc/src/mat/examples/tests (master *=)
> $ 
> 
> 
> Satish
> 
> 
> On Tue, 6 Mar 2018, Tim Steinhoff wrote:
> 
> > Hi Barry,
> > 
> > thanks for your fast response. Yes, I'm fine with that.
> > Indeed, my code with the routine PETSC_VIEWER_STDOUT_(comm) was
> > compilable, but turned out it did not work properly at runtime
> > (hangs).
> > When using PETSC_VIEWER_DRAW_(comm), the compiler immediately gives an
> > error and I was confused.
> > 
> > Thanks,
> > 
> > Volker
> > 
> > By the way, the output parameter description of
> > PetscViewerASCIIGetStdout is missing in the documentation:
> > http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Viewer/PetscViewerASCIIGetStdout.html
> > 
> > 
> > 2018-03-06 16:26 GMT+01:00 Smith, Barry F. <bsmith at mcs.anl.gov>:
> > >
> > >
> > >    Tim,
> > >
> > >      The PETSC_VIEWER_STDOUT_(comm)  construct doesn't work in Fortran. Only the
> > > PETSC_VIEWER_STDOUT_WORLD or PETSC_VIEWER_STDOUT_SELF work. This is also true for
> > > draw see src/ksp/ksp/examples/tutorials/ex100f.F90
> > >
> > >    Note that you can use PetscViewerDrawOpen() to get a draw to open on any communicator you like.
> > >
> > >
> > >    Does this answer your question or did I misunderstand?
> > >
> > >    Barry
> > >
> > >
> > >
> > >
> > >> On Mar 6, 2018, at 9:02 AM, Tim Steinhoff <kandanovian at gmail.com> wrote:
> > >>
> > >> Hi all,
> > >>
> > >> it seems like the routine PETSC_VIEWER_DRAW_(comm)  is not available
> > >> in Fortran, while PETSC_VIEWER_STDOUT_(comm) is.
> > >> Is there anything I can do about it? (I am using the current maint
> > >> branch of PETSc)
> > >>
> > >> Thank you very much and kind regards,
> > >>
> > >> Volker
> > >
> > 
> 
> 



More information about the petsc-users mailing list