[petsc-dev] PetscDataTypeGetSize fortran binding is gone?

Satish Balay balay at mcs.anl.gov
Fri Jul 14 16:53:39 CDT 2017


Added - and merged to next.

satish

On Fri, 14 Jul 2017, Blaise A Bourdin wrote:

> Got it. It works.
> 
> While you are at it, would you minding adding the binding for PetscOptionsLeft.
> I am attaching the patch,
> 
> diff --git a/src/sys/objects/ftn-custom/zoptionsf.c b/src/sys/objects/ftn-custom/zoptionsf.c
> index 65d64b1580..9d36bc2d4d 100644
> --- a/src/sys/objects/ftn-custom/zoptionsf.c
> +++ b/src/sys/objects/ftn-custom/zoptionsf.c
> @@ -24,6 +24,7 @@
>  #define petscoptionsclear_                 PETSCOPTIONSCLEAR
>  #define petscoptionsinsertstring_          PETSCOPTIONSINSERTSTRING
>  #define petscoptionsview_                  PETSCOPTIONSVIEW
> +#define petscoptionsleft_                  PETSCOPTIONSLEFT
>  #define petscobjectviewfromoptions_        PETSCOBJECTVIEWFROMOPTIONS
>  #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE)
>  #define petscoptionsgetenumprivate_        petscoptionsgetenumprivate
> @@ -42,6 +43,7 @@
>  #define petscoptionsclear_                 petscoptionsclear
>  #define petscoptionsinsertstring_          petscoptionsinsertstring
>  #define petscoptionsview_                  petscoptionsview
> +#define petscoptionsleft_                  petscoptionsleft
>  #define petscobjectviewfromoptions_        petscobjectviewfromoptions
>  #endif
> 
> 
> 
> @@ -254,6 +256,12 @@ PETSC_EXTERN void PETSC_STDCALL petscoptionsview_(PetscOptions *options,PetscVie
>    *ierr = PetscOptionsView(*options,v);
>  }
> 
> 
> 
> +PETSC_EXTERN void PETSC_STDCALL petscoptionsleft_(PetscOptions *options,PetscErrorCode *ierr)
> +{
> + CHKFORTRANNULLOBJECTDEREFERENCE(options);
> +  *ierr = PetscOptionsLeft(*options);
> +}
> +
>  PETSC_EXTERN void PETSC_STDCALL petscobjectviewfromoptions_(PetscObject *obj,PetscObject *bobj,char* option PETSC_MIXED_LEN(loption),PetscErrorCode *ierr  PETSC_END_LEN(loption))
>  {
>    char *o;
> 
> 
> Blaise
> 
> On Jul 14, 2017, at 3:54 PM, Satish Balay <balay at mcs.anl.gov<mailto:balay at mcs.anl.gov>> wrote:
> 
> include/petscsys.h:PETSC_EXTERN PetscErrorCode PetscDataTypeGetSize(PetscDataType,size_t*);
> 
> Looks like this needs a custom stub due to 'size_t' parameter.
> 
> I've aded the custom interface to balay/add-ftn-PetscDataTypeGetSize. Can you give it a try?
> 
> You would have to use a datatype that matches 'size_t' on the fortran size - i.e PetscSizeT.
> 
> Satish
> 
> On Fri, 14 Jul 2017, Blaise A Bourdin wrote:
> 
> Hi,
> 
> It looks like the fortran binding for PetscDataTypeGetSize was removed a while ago. Evidently, auto generated binding won’t work here.
> I’m a bit out of sync with the recent fortran changes, but why are automatically generated binding not working anymore, and what should the proper binding look like?
> 
> Alternatively, is there a new recommended way to query the size of a Petsc type from fortran?
> 
> Blaise
> 
> 
> 
> 
> --
> Department of Mathematics and Center for Computation & Technology
> Louisiana State University, Baton Rouge, LA 70803, USA
> Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin
> 
> 
> 
> 
> 
> 
> 
> 


More information about the petsc-dev mailing list