[petsc-dev] Could generatefortranstubs.py be lazier about modification times?

Satish Balay balay at mcs.anl.gov
Mon Oct 4 18:09:50 CDT 2010


On Tue, 5 Oct 2010, Jed Brown wrote:

> On Mon, Oct 4, 2010 at 23:26, Satish Balay <balay at mcs.anl.gov> wrote:
> > Hmm - if there is a file 'xxx.c' - then bfort generates ftn-auto/xxxf.c
> 
> It looks like generation of include/finclude/ftn-auto/*.h90 is much
> less direct.  The dependencies below also produce unused *.h90 files.
> What is bfort using to produce these f90module.f90 files?  Do you
> think it's feasible to get a list of files that each *.h90 depends on?

Each time bfort is invoked there is:
- one to one mapping between xxx.c -> xxxf.c
- a additive mapping from all 'xxx.c' to corresponding 'f90module.f90' ->  [via MANSEC in makefile to] petscprofiling.h90 etc.
- Since MANSEC of multiple sourcedirs can have the same value [for eg: 'MANSEC=KSP'], multiple
sourcedirs contribute to a single petscksp.h90 file.

So - I guess one way to do this is:

Each time things are added to petscprofiling.h90 [or equivalent] - a
mapping of the sourcefiles has to be maintained for that generated
file [petscprofiling.h90 etc].

This mapping for a given dir - is 'all sources corresponding to all
ftn-auto/xxxf.c files'

Satish

>  If not, I guess I'll just live with the few seconds to recompile
> these and relink even though nothing changed.
> 
> Jed
> 
> src/sys/plog/f90module.f90 -> include/finclude/ftn-auto/petscprofiling.h90
> src/sys/verbose/f90module.f90 -> include/finclude/ftn-auto/petscprofiling.h90
> src/mat/order/f90module.f90 -> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/matfd/f90module.f90 -> include/finclude/ftn-auto/petscmatfd.h90
> src/mat/partition/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/partition/impls/party/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/partition/impls/chaco/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/partition/impls/jostle/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/partition/impls/pmetis/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/mat/partition/impls/scotch/f90module.f90 ->
> include/finclude/ftn-auto/petscmatorderings.h90
> src/characteristic/interface/f90module.f90 ->
> include/finclude/ftn-auto/petscsemilagrange.h90
> 




More information about the petsc-dev mailing list