Microsoft KB Archive/149751

= BUG: FOR3294 Error Using Module Inside Module Procedure =

PSS ID Number: 149751

Article Last Modified on 11/2/1999

-

The information in this article applies to:


 * Microsoft Fortran PowerStation for Windows 95 and Windows NT 4.0

-



This article was previously published under Q149751



SYMPTOMS
Referencing a user-defined data type, defined in one module, at another module's internal procedure level causes the compiler to fail to recognize the user-defined data type. Specifically, this occurs when the module and main program sources are contained in different files. The following compiler error is generated under these circumstances:

error FOR3294: derived type referenced but not declared



RESOLUTION
Do one of the following:


 * Use the module containing the user-defined data type at the module level, not at the module's internal procedure level. -or-


 * Combine the module and program source code into one source file.



STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.



Steps to Reproduce Problem

 * 1) Using the sample code provided, create a module and program file.
 * 2) Compile and link the module and program files together.

Sample Code to Illustrate Problem and Workaround
! Compile options needed: none

! --- mods.for ---

module types type my_type real :: x       end type my_type end module types

module funcs !    use types               ! uncomment this line for first workaround contains function my_func(z1) result(z2) use types        ! comment this line for first workaround implicit none real z1           type(my_type) z2            z2 % x = z1        end function my_func end module funcs

! --- prog.for ---

program test use types use funcs implicit none real a       type (my_type) :: b

a = 1.0 b = my_func(a) end program test

Additional query words: 4.00

Keywords: kbLangFortran KB149751

Technology: kbAudDeveloper kbFORTRANPower400NT kbFortranSearch kbZNotKeyword8

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© 2004 Microsoft Corporation. All rights reserved.