New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fortran: Collaboration diagram (Origin: bugzilla #637099) #4050

Closed
doxygen opened this Issue Jul 2, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@doxygen
Owner

doxygen commented Jul 2, 2018

status VERIFIED severity normal in component general for ---
Reported in version unspecified on platform Other
Assigned to: Dimitri van Heesch

Original attachment names and IDs:

On 2010-12-12 19:06:04 +0000, albert wrote:

Created attachment 176306
Input and result described bug

When creating a collaboration diagram for the type typ1:

module prec_mod
integer, parameter :: prec = kind(1.d0)
end
module tst1
use prec_mod, only: prec
type typ1
integer :: Press1
real(prec) :: Mass1
end type typ1
end module tst1

The collaboration diagram states that Mass1 is of type prec and not of real(prec).
When changing the use statement into "use prec_mod" the collaboration diagram is OK.
Note that in the data fields list the type is correct, looks like somewhere in the generating of th dot file a replacement is made.

On 2010-12-12 19:45:26 +0000, albert wrote:

Created attachment 176312
Input and results for second part of bug message

On 2010-12-12 19:46:17 +0000, albert wrote:

Extension to the above bug (comment 1):

  • when using: "integer, pointer :: Press1(:)" the collaboration diagram for this variable is OK but the description is missing the (:) / dimension(:)
  • when using: "integer, pointer,dimension(:) :: Press2" the description is OK but the collaboration diagram contains as data type: "),pointer"
    See also 2nd attachment

On 2010-12-23 21:27:02 +0000, Daniel Franke wrote:

Confirmed.

Should the standard data types should show up in the collaboration diagram to begin with? For C it seems to be struct/class, i.e. derived type, only?!

Further, should the attributes be kept in the collaboration diagram?
E.g.

TYPE :: aa
END TYPE

TYPE :: bb
TYPE(aa), DIMESION(:), POINTER :: a
END TYPE

Here, bb should only show a link to aa, nothing else (attributes are not relevant), no?

On 2010-12-24 17:25:59 +0000, Daniel Franke wrote:

With the latest update (r751), this seems to be fixed?!
Albert, can you confirm?

On 2011-01-02 14:37:15 +0000, albert wrote:

Unfortunately, the bug is not fixed in r751. I still see just the word prec in the collaboration diagram and not real(prec).

On 2011-01-02 14:45:00 +0000, Daniel Franke wrote:

(In reply to comment # 5)

Unfortunately, the bug is not fixed in r751. I still see just the word prec in
the collaboration diagram and not real(prec).

Here, I don't see any REAL any more, only TYPEs?
Is this configurable?

On 2011-01-02 14:49:00 +0000, albert wrote:

The problem is that I don't see the REAL, this should be there and not just the word prec..
The type of the variable is REAL(prec) where prec signals the KIND type of the variable.

On 2011-01-02 15:11:49 +0000, Daniel Franke wrote:

Ok, I doule checked again. Now, I again got all members of the TYPE in the graph, including intrinsic types (REAL, INTEGER, ...)?! Errr ...

However, I'd prefer it if we could omit intrinsic types and their variants (w/o dimension, w/o allocatable, ...) and only show the TYPEs. I believe, that's how it is done for C/C++.

On 2011-01-02 15:19:18 +0000, albert wrote:

I think the KIND information is basic information required in the collaboration diagram. Same accounts more or less for the dimension information (in a condensed form like INTEGER(:,:) or for C **int).
I agree that the modifiers should appear in the collaboration diagram.

On 2011-01-02 15:29:59 +0000, Daniel Franke wrote:

(In reply to comment # 8)

I'd prefer it if we could omit intrinsic types and their variants (w/o
dimension, w/o allocatable, ...) and only show the TYPEs.

(In reply to comment # 9)

I agree that the modifiers should appear in the collaboration diagram.

You agree to disagree? Please clarify ;)

On 2011-01-02 15:39:22 +0000, albert wrote:

Oops word not disappeared in the last sentence.

I think the KIND information is basic information required in the collaboration
diagram. Same accounts more or less for the dimension information (in a
condensed form like INTEGER(:,:) or for C **int).

I agree that the modifiers (words like allocatable, pointer) should not appear in the collaboration diagram.

On 2011-01-02 16:01:37 +0000, Daniel Franke wrote:

(In reply to comment # 6)

Here, I don't see any REAL any more, only TYPEs?
Is this configurable?

HIDE_UNDOC_RELATIONS = YES|NO

If set to YES, the intrinsic types are omitted.
With this I agree, one should have the whole (intrinsic) type available.

Back to square one. With above config option enabled, the types are still partially wrong.

On 2011-02-20 14:54:36 +0000, albert wrote:

Created attachment 181409
Patch file for collaboration diagram

This file contains a patch for the problems with the Fortran collaboration diagrams.

  • fixing problem with substitution names in use statements
  • fixing single colon (:) problem
  • fixing having variable names in bottom part (function part) of collaboration diagrams

On 2011-05-15 09:36:44 +0000, Dimitri van Heesch wrote:

Thanks Albert,

I'll include this patch in the next subversion update.

On 2011-08-14 14:04:54 +0000, Dimitri van Heesch wrote:

This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.7.5. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information
that you think can be relevant.

@doxygen doxygen closed this Jul 19, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment