[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