[Scons-users] Does SCons work correctly for fortran submodules?

Peter Diener diener at cct.lsu.edu
Thu May 31 15:40:09 EDT 2018


Done. Issue 3135.

Thanks for looking into it.

Cheers,

   Peter

On Thursday 2018-05-31 12:31, Bill Deegan wrote:

>Date: Thu, 31 May 2018 12:31:35
>From: Bill Deegan <bill at baddogconsulting.com>
>Reply-To: SCons users mailing list <scons-users at scons.org>
>To: SCons users mailing list <scons-users at scons.org>
>Subject: Re: [Scons-users] Does SCons work correctly for fortran submodules?
>
>Can you file a bug with your sample files on github?
>
>On Thu, May 31, 2018 at 9:42 AM, Peter Diener <diener at cct.lsu.edu> wrote:
>      Bill,
>
>      I would think that is a correct assumption. Inside the interface
>      block
>      the keyword module does not actually define a module but rather
>      tells the compiler that the source code for the function or
>      subroutine will be provided later in the submodule. I guess you
>      have to take the fact that the meaning of module is context
>      dependent up with the designers of the fortran standard:-)
>
>      Submodules is only required to be present in a Fortran 2008
>      standard compliant compiler but may be provided by Fortran 20003
>      standard compliant compilers.
>
>      I don't know whether all compilers handle this in the same way,
>      but I just tried ifort and in that case the generate files were:
>
>      test_1.mod
>      test_1.o
>      test_1 at test_1_impl.smod
>
>      so except for ifort not generating test_1.smod, the behaviour
>      seems similar.
>
>      Cheers,
>
>        Peter
>
>      On Thursday 2018-05-31 11:19, Bill Deegan wrote:
>
>            Date: Thu, 31 May 2018 11:19:30
>            From: Bill Deegan <bill at baddogconsulting.com>
>            Reply-To: SCons users mailing list
>            <scons-users at scons.org>
>            To: SCons users mailing list <scons-users at scons.org>
>            Subject: Re: [Scons-users] Does SCons work correctly
>            for fortran submodules?
>
>            Peter,
>
>            Yes that what I was looking for.
>            So is it correct to assume the the contents of
>            interface
>             ...
>            end interface
>
>            Can be ignored as they don't affect the files output
>            by the fortran
>            compiler?
>            (Is this a f90 only feature? or only specify f90
>            compilers?)
>
>            -Bill
>
>            On Thu, May 31, 2018 at 8:52 AM, Peter Diener
>            <diener at cct.lsu.edu> wrote:
>                 Hi Bill,
>
>                 What do you mean by actual generated files? Do
>            you mean what
>                 files are being generated by the compiler?
>
>                 When compiling with the gfortran -c, test_1.f90
>            generates:
>
>                 test_1.mod
>                 test_1.o
>                 test_1.smod
>                 test_1 at test_1_impl.smod
>
>                 and similarly for test_2.f90 (with 1 replaced
>            by 2).
>
>                 Cheers,
>
>                   Peter
>
>                 On Thursday 2018-05-31 10:33, Bill Deegan
>            wrote:
>
>                       Date: Thu, 31 May 2018 10:33:23
>                       From: Bill Deegan
>            <bill at baddogconsulting.com>
>                       Reply-To: SCons users mailing list
>                       <scons-users at scons.org>
>                       To: SCons users mailing list
>            <scons-users at scons.org>
>                       Subject: Re: [Scons-users] Does SCons
>            work correctly
>                       for fortran submodules?
>
>                       Took a quick look.
>                       It's been a while since I've looked at
>            any fortran
>                       and then it was probably
>                       fortran 77.
>
>                       Just guessing that scons's
>            scanner/emitter sees
>                       this:
>                       module function get_n ( this )
>                       class(test_type_1), intent(in) :: this
>                       integer :: get_n
>                       end function get_n
>
>                       And thinks you'll be outputting a module
>            named
>                       function from both source
>                       files.
>
>                       Can you tell me what the actual generated
>            files are
>                       for each of those two
>                       source files?
>                       My guess is this
>            interface/module/endmodule/end
>                       interface syntax isn't being
>                       properly handled by SCons
>
>                       -Bill
>
>                       On Thu, May 31, 2018 at 8:14 AM, Peter
>            Diener
>                       <diener at cct.lsu.edu> wrote:
>                            Hi all,
>
>                            Any thoughts on whether my
>            expectations to
>                       SCons are incorrect
>                            or whether there is a bug when it
>            comes to
>                       compiling fortran
>                            source code using type bound
>            procedures in
>                       submodules?
>
>                            I can repost my example code that
>            demonstrates
>                       the issue if
>                            necessary.
>
>                            Cheers,
>
>                              Peter
>
>                            On Thursday 2018-05-03 11:13, Bill
>            Deegan
>                       wrote:
>
>                                  Date: Thu, 3 May 2018 11:13:01
>                                  From: Bill Deegan
>                       <bill at baddogconsulting.com>
>                                  Reply-To: SCons users mailing
>            list
>                                  <scons-users at scons.org>
>                                  To: SCons users mailing list
>                       <scons-users at scons.org>
>                                  Subject: Re: [Scons-users]
>            Does SCons
>                       work correctly
>                                  for fortran submodules?
>
>                                  User's mailing list is the
>            correct place
>                       for this
>                                  query.
>                                  The developer's mailing list
>            is generally
>                       for
>                                  discussing development of
>                                  SCons and not really the use
>            thereof.
>
>                                  I'll try and look at this
>            later today.
>
>
>                                  On Thu, May 3, 2018 at 11:26
>            AM, Peter
>                       Diener
>                                  <diener at cct.lsu.edu> wrote:
>                                       Hi,
>
>                                       Any further advice on
>            this issue?
>
>                                       Should this go to the
>            developers
>                       list?
>
>                                       Cheers,
>
>                                         Peter
>
>                                       On Friday 2018-04-27
>            16:48, Peter
>                       Diener wrote:
>
>                                             Date: Fri, 27 Apr
>            2018
>                       16:48:58
>                                             From: Peter Diener
>                       <diener at cct.lsu.edu>
>                                             To: SCons users
>            mailing list
>                                  <scons-users at scons.org>
>                                             Subject: Re:
>            [Scons-users]
>                       Does SCons
>                                  work correctly
>                                             for fortran
>            submodules?
>
>                                             Hi,
>
>                                             A quick update. The
>            release
>                       version
>                                  scons-3.0.1
>                                             shows exactly the
>            same
>                       behavior.
>
>                                             Cheers,
>
>                                              Peter
>
>                                             On Friday
>            2018-04-27 16:38,
>                       Peter Diener
>                                  wrote:
>
>                                                   Date: Fri, 27
>            Apr 2018
>                       16:38:14
>                                                   From: Peter
>            Diener
>                                  <diener at cct.lsu.edu>
>                                                   Reply-To:
>            SCons users
>                       mailing list
>                                                 
>             <scons-users at scons.org>
>                                                   To: SCons
>            users mailing
>                       list
>                                                 
>             <scons-users at scons.org>
>                                                   Subject: Re:
>                       [Scons-users] Does
>                                  SCons
>                                                   work
>            correctly for
>                       fortran
>                                  submodules?
>
>                                                   Hi Bill,
>
>                                                   I first saw
>            it with an
>                       earlier
>                                  version
>                                                   of SCons. I
>            don't
>                       remember which
>                                  one.
>                                                   Before
>            reporting I
>                       wanted to check
>                                  if it
>                                                   was a bug
>            that was
>                       already fixed,
>                                  so I
>                                                   got the
>            development
>                       version. I can
>                                  try
>                                                   it with the
>            release
>                       version as
>                                  well.
>
>                                                   scons
>            --tree=prune
>
>                                                   does not give
>            me any
>                       additional
>                                                   information.
>            It gives
>                       exactly the
>                                  same
>                                                   output as
>            just scons.
>
>                                                   Cheers,
>
>                                                    Peter
>
>                                                   On Friday
>            2018-04-27
>                       14:46, Bill
>                                  Deegan
>                                                   wrote:
>
>                                                         Date:
>            Fri, 27 Apr
>                       2018
>                                                       
>             14:46:35
>                                                         From:
>            Bill Deegan
>                                                       
>                        <bill at baddogconsulting.com>
>                                                       
>             Reply-To: SCons
>                       users
>                                                         mailing
>            list
>                                                       
>                        <scons-users at scons.org>
>                                                         To:
>            SCons users
>                       mailing list
>                                                       
>                        <scons-users at scons.org>
>                                                       
>             Subject: Re:
>                       [Scons-users]
>                                                         Does
>            SCons work
>                       correctly
>                                                         for
>            fortran
>                       submodules?
>
>                                                         Peter,
>
>                                                         Any
>            reason you're
>                       using the
>                                                       
>             development
>                       version of SCons
>                                                         instead
>            of the
>                                                       
>             released version
>                       3.0.1?
>
>                                                         What
>            does scons
>                       --tree=prune
>                                                         show
>            you?
>
>                                                         -Bill
>
>                                                         On Fri,
>            Apr 27,
>                       2018 at
>                                                         12:04
>            PM, Peter
>                       Diener
>                                                       
>                        <diener at cct.lsu.edu> wrote:
>                                                            
>             Hi,
>
>                                                              Is
>            SCons
>                       supposed to
>                                                         work
>            for fortran
>                       codes that
>                                                         use
>            submodules
>                                                            
>             and type
>                       bound
>                                                       
>             procedures? I have
>                       a code
>                                                         project
>            that
>                       relies
>                                                            
>             heavily on
>                                                            
>             those
>                       features and I
>                                                         would
>            really like
>                       to use
>                                                         SCons
>            for it. I
>                                                            
>             was able
>                                                              to
>            produce a
>                       small
>                                                         example
>            code that
>                                                       
>             demonstrates the
>                       problem I
>                                                            
>             encounter (it
>                       only
>                                                         appears
>            with more
>                       than one
>                                                       
>             submodule) that I
>                                                            
>             have
>                                                            
>             attached
>                       along with the
>                                                       
>             SConstruct file I
>                       use.
>
>                                                            
>             The code
>                       example
>                                                       
>             consists of two
>                       modules,
>                                                         each
>            containing a
>                                                            
>             fortran type
>                       with 2
>                                                         type
>            bound
>                       procedures ( a
>                                                         set and
>            get for an
>                                                            
>             integer
>                       value). In the
>                                                         module
>            itself the
>                       type and
>                                                         the
>            interface
>                                                              to
>            the
>                       procedures are
>                                                         defined
>            while the
>                       actual
>                                                       
>             implementation of
>                                                            
>             the
>                       procedures are done
>                                                         in the
>            submodules.
>                       Normally
>                                                         I would
>            keep
>                                                            
>             the module
>                       and
>                                                       
>             corresponding
>                       submodule in
>                                                       
>             different files to
>                                                            
>             separate the
>                       interface
>                                                         and
>                       implementations.
>
>                                                            
>             When I run
>                       scons on
>                                                         this
>            example, I
>                       get:
>
>                                                            
>             scons:
>                       Reading
>                                                       
>             SConscript files
>                       ...
>
>                                                            
>             scons: ***
>                       Multiple
>                                                         ways to
>            build the
>                       same
>                                                         target
>            were
>                       specified
>                                                            
>             for:
>                       function.mod 
>                                                         (from
>                       ['test_1.f90'] and
>                                                         from
>                       ['test_2.f90'])
>
>                                                              Is
>            my
>                       SConstruct file
>                                                       
>             incorrect, should
>                       I not
>                                                         expect
>            SCons to be
>                                                            
>             able to
>                       handle such a
>                                                         case or
>            is this a
>                       bug?
>
>                                                              My
>            SCons is
>                       an up to
>                                                         date
>            checkout of
>                       the GitHub
>                                                       
>             repository,
>                                                            
>             i.e.
>
>                                                            
>             scons
>                       --version
>
>                                                            
>             gives:
>
>                                                            
>             SCons by
>                       Steven Knight
>                                                         et al.:
>                                                               
>                 
>                       script:
>                                                            
>                                                       
>                                
>                     
>                v3.1.0.alpha.yyyymmdd.867f762f6c1e23524cd1b0262b8e93e822b23d0c
>
>                                                            
>             Note, the
>                       example code
>                                                       
>             compiles correctly
>                       with a
>                                                       
>             sufficiently
>                                                            
>             new version
>                       of gfortran
>                                                         and the
>            command
>                       line:
>
>                                                            
>             gfortran
>                       test_1.f90
>                                                       
>             test_2.f90
>                                                       
>                        test_submodules.f90 -o
>                                                            
>                        test_submodules.x
>
>                                                            
>             Thank you in
>                       advance
>                                                         for any
>            advice.
>
>                                                            
>             Cheers,
>
>                                                               
>            Peter
>                       Diener
>
>                                                            
>                                                       
>                                
>                     
>                _______________________________________________
>                                                            
>             Scons-users
>                       mailing
>                                                         list
>                                                            
>                        Scons-users at scons.org
>                                                            
>                                                       
>                                
>                     
>                https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>
>
>
>
>                                
>                     
>              _______________________________________________
>                                  Scons-users mailing list
>                                  Scons-users at scons.org
>                                
>                     
>              https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>
>
>                     
>             _______________________________________________
>                       Scons-users mailing list
>                       Scons-users at scons.org
>                     
>             https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>
>
>            _______________________________________________
>            Scons-users mailing list
>            Scons-users at scons.org
>            https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>
>
>_______________________________________________
>Scons-users mailing list
>Scons-users at scons.org
>https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
>
>


More information about the Scons-users mailing list