> On May 11, 2017, at 11:24 AM, Gautam Bisht <[email protected]> wrote: > > Hi Barry, > > I'm wondering if these changes will be a part of future 3.8.0 release or > 4.0.0 release. And, do you have a tentative timeline when such a release tag > would be made?
This will be in 3.8.0 and we hope to make the release in early June. Barry > > -Gautam. > > On Sun, Dec 4, 2016 at 11:13 AM, Barry Smith <[email protected]> wrote: > > Jed noticed a small mistake in my description. It is type(tXXX) not > type(iXXX) if you chose to declare your variables that way. Note that > declaring them via type(tXXX) or XXX is identical (XXX is just a macro for > type(tXXX)). > > Barry > > > > On Dec 4, 2016, at 11:57 AM, Barry Smith <[email protected]> wrote: > > > > > > For Fortran users of the PETSc development (git master branch) version > > > > > > I have updated and simplified the Fortran usage of PETSc in the past few > > weeks. I will put the branch barry/fortran-update into the master branch on > > Monday. The usage changes are > > > > A) for each Fortran function (and main) use the following > > > > subroutine mysubroutine(.....) > > #include <petsc/finclude/petscxxx.h> > > use petscxxx > > implicit none > > > > For example if you are using SNES in your code you would have > > > > #include <petsc/finclude/petscsnes.h> > > use petscsnes > > implicit none > > > > B) Instead of PETSC_NULL_OBJECT you must pass PETSC_NULL_XXX (for example > > PETSC_NULL_VEC) using the specific object type XXX that the function call > > is expecting. > > > > C) Objects can be declared either as XXX a or type(iXXX) a, for example > > Mat a or type(iMat) a. (Note that previously for those who used types it > > was type(Mat) but that can no longer be used. > > > > Notes: > > > > 1) There are no longer any .h90 files that may be included > > > > 2) Like C the include files are now nested so you no longer need to > > include for example > > > > #include <petsc/finclude/petscsys.h> > > #include <petsc/finclude/petscvec.h> > > #include <petsc/finclude/petscmat.h> > > #include <petsc/finclude/petscpc.h> > > #include <petsc/finclude/petscksp.h> > > > > you can just include > > > > #include <petsc/finclude/petscksp.h> > > > > 3) there is now type checking of most function calls. This will help > > eliminate bugs due to incorrect calling sequences. Note that Fortran > > distinguishes between a argument that is a scalar (zero dimensional array), > > a one dimensional array and a two dimensional array (etc). So you may get > > compile warnings because you are passing in an array when PETSc expects a > > scalar or vis-versa. If you get these simply fix your declaration of the > > variable to match what is expected. In some routines like MatSetValues() > > and friends you can pass either scalars, one dimensional arrays or two > > dimensional arrays, if you get errors here please send mail to > > [email protected] and include enough of your code so we can see the > > dimensions of all your variables so we can fix the problems. > > > > 4) You can continue to use either fixed (.F extension) or free format (.F90 > > extension) for your source > > > > 5) All the examples in PETSc have been updated so consult them for > > clarifications. > > > > > > Please report any problems to [email protected] > > > > Thanks > > > > Barry > > > > > >
