> On Oct 7, 2020, at 1:41 PM, baikadi pranay <[email protected]> wrote:
>
> Hello,
> I have a few questions regarding FormFunction when using the SNES solvers. I
> am using Fortran90.
>
> 1) I went through the example (ex1f.F90) provided in the documentation that
> uses Newton method to solve a two-variable system. In the subroutine
> FormFunction, the first argument is an input vector (x). However in the code,
> no attributes are specified saying that it is an input argument for the
> subroutine (i.e. intent attribute is not specified). Is this automatically
> taken care of or should I be defining the intent attribute in my code ?
We don't currently provide attributes for our Fortran stubs, so it is best if
you do not mark them in your subroutines.
Yes the x is input only and the f is output only.
> Also, should I use the "allocatable" attribute when defining the vector x?
I am pretty sure no.
> Please comment similarly on the output vector f as well.
> 2) Should the ctx argument of the subroutine FormFunction be defined as
> "PETSC_NULL_INTEGER"?
The context is how you convey additional information into FormFunction().
Should you choose to not use it then in your function you can declare it as a
integer and simply not use it. If you are calling your FormFunction() from
Fortran then just pass a meaningless integer as that argument.
PETSC_NULL_INTEGER is for call PETSc functions that take integer array
arguments that you are not supplying.
Barry
>
> Please let me know if you need any further information.
>
> Thank you.
> Best Regards,
> Pranay.