[petsc-users] TAO setup with modules in Fortran 90

Randy Michael Churchill rchurchi at pppl.gov
Fri Oct 6 16:18:03 CDT 2017


So if I'm limited to petsc 3.7.6 for reasons of eventually using within an
existing, larger codebase that depends on 3.7.6, is it possible to use TAO
with a user-defined module in Fortran90 using 3.7.6?

I had tried the various forms of includes listed in the documentation, e.g.
see below. I think I now realize this is an issue with the petsc
installation on Edison, it does not seem to have the petsctao module in the
library file (confirmed using nm -D on the library file). If I do the same
include and use statement but with, for example, petscmat, it compiles
fine.

I built v3.8 from source, and the petsctao module is in the library file,
and now the make works.

commondat.F90
module commondat
#include <petsc/finclude/petscdef.h>
      use petsc
      PetscReal    ::    alpha
      PetscInt     ::    n
end module commondat

program rosenbrock1f
#include <petsc/finclude/petsctaodef.h>
      use petsctao
      use commondat




On Fri, Oct 6, 2017 at 7:54 AM, Matthew Knepley <knepley at gmail.com> wrote:

> On Fri, Oct 6, 2017 at 7:36 AM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>>
>>    Randy,
>>
>>     First you absolutely must use version 3.8 or the master development
>> copy. We improved and simplified dramatically how Fortran (90) is utilized
>> from PETSc.
>>
>>     Note that there is only one simple set of include files and modules
>> for Fortran; see the newest documentation.
>>
>>
> http://www.mcs.anl.gov/petsc/petsc-master/docs/manualpages/
> Sys/UsingFortran.html
>
>    Matt
>
>
>>
>>    Barry
>>
>>
>> > On Oct 5, 2017, at 11:48 PM, Randy Michael Churchill <rchurchi at pppl.gov>
>> wrote:
>> >
>> > A simple setup question with TAO: if I were to convert the
>> rosenbrock1f.F90 example to use a module instead of common structures, how
>> would I setup the include statements? I've tried various combinations
>> (using petscXXXdef.h, petscXXX.h, petscXXX.h90, along with use petscXXX),
>> but seem to get errors with all.
>> >
>> > file:rosenbrock1f.h:
>> > module commondat
>> >       PetscReal    ::    alpha
>> >       PetscInt     ::    n
>> > end module commondat
>> >
>> > file:rosenbrock1f.90:
>> > program rosenbrock1f
>> > !!include statements??? which and where???!!!
>> > use commondat
>> > ...
>> >
>> > subroutine FormFunctionGradient(tao, X, f, G, dummy, ierr)
>> >      use commondat
>> >      implicit none
>> >      ...
>> >
>> > (https://www.mcs.anl.gov/petsc/petsc-dev/src/tao/unconstrain
>> ed/examples/tutorials/rosenbrock1f.F90.html)
>>
>>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>
>



-- 
R. Michael Churchill
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20171006/3fcc4e34/attachment.html>


More information about the petsc-users mailing list