Silverfrost Forums

Welcome to our forums

Problems with %eb and FTN95 8.10

6 Mar 2017 1:19 #18981

I have a problem with the new compiler version FTN95 8.10.

In my source code I have this call of %eb:

    RC=WINIO@ ('%^78.15`eb[VSCROLLBAR,UNDO]&',CBUFF,NBUFF,EDIT_INFO,EB_CHANGED)

The declaration of the parameter EDIT_INFO is made in a modul:

  INTEGER*4 EDIT_INFO(24)

When compiling in 32-bit mode I get this error message:

*** EDIT_INFO was ambiguously declared in more than one MODULE, so cannot be used

In 64-bit mode it compiles without error. Also with FTN95 8.05 there was no error in both modes.

Astonishing:

I renamed EDIT_INFO to EDIT_INFOX and the compilation with FTN95 8.10 gave no errors in both modes.

Detlef Pannhorst

6 Mar 2017 1:36 #18982

I wonder if you just need to rebuild all of your modules.

The EDIT_INFO array/structure has a different size for 64 bits because it contains addresses. You can use an array but it is recommended that you use the 'TYPE edit_info' that is defined in clearwin.ins and is available via 'USE clrwin'. If you use an array of size 24 then the size should be increased to (say) 48.

6 Mar 2017 1:51 #18983

I have rebuild all files of my project with the new compiler version.

The problem comes with compiling in 32-bit mode. So I think the structure size of 24 should be OK.

I wonder why renaming solves the problem?

I will try to use the 'TYPE edit_info'.

6 Mar 2017 5:46 #18986

I don't find any description of TYPE / END TYPE structure in the FTN95 help and how to use this structure.

7 Mar 2017 7:27 #18989

Your original problem may be due to a conflict between the name of your array and the name of the new TYPE(edit_info). If so then you might consider changing the names of all your EDIT_INFO arrays.

Otherwise TYPE(edit_info) is defined in clearwin.ins and you could write something like:

INCLUDE <clearwin.ins> TYPE(edit_info) inf iw = winio@('%`eb', .... inf)

if(inf%modification_flag)then ....

Please login to reply.