- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello All
While porting over some code from CVF6.1 to IVF9.0.30, I received several warning messages from the compiler about global names being too long. The code below illustrates the problem. There is a blank main routine and two modules:
Code:
The warning message displayed is :
program UseClause implicit none end program UseClause module m_module1_for_use_clause implicit none private public :: m_module1_for_use_clause_call contains subroutine m_module1_for_use_clause_call () use m_module2_for_use_clause call m_module2_for_use_clause_call () end subroutine end module module m_module2_for_use_clause implicit none private public :: m_module2_for_use_clause_call contains subroutine m_module2_for_use_clause_call () integer :: j_integer_test_variable common /testcommon/j_integer_test_variable end subroutine end module
The warning message displayed is :
D:ProjectsJocastsv5_0Intel CompilerUseClausemodule1.F90(1) : Warning: Global name too long, shortened from: M_MODULE1_FOR_USE_CLAUSE_mp_M_MODULE1_FOR_USE_CLAUSE_CALL$BLK.M_MODULE2_FOR_USE_CLAUSE_mp_J_INTEGER_TEST_VARIABLE to: _CLAUSE_mp_M_MODULE1_FOR_USE_CLAUSE_CALL$BLK.M_MODULE2_FOR_USE_CLAUSE_mp_J_INTEGER_TEST_VARIABLE
Can anybody explain why the restriction for module name/routine length impacts on thelength of a common block variable name when used in this way?
Thanks
Ranbir Shoker
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The compiler "decorates" names to create unique global symbols. In your case, the decoration includes not only the COMMON name but also the module name and the contained procedure name, though to be honest, some of this doesn't seem necessary. There's a limit on how long a global symbol name can be in the object language (defined here by the Microsoft COFF format).
I suggest filing this as a support request with Intel Premier Support. COMMON global names don't need to be decorated so much since they are global to the program and this may in fact be a bug.
I suggest filing this as a support request with Intel Premier Support. COMMON global names don't need to be decorated so much since they are global to the program and this may in fact be a bug.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The compiler "decorates" names to create unique global symbols. In your case, the decoration includes not only the COMMON name but also the module name and the contained procedure name, though to be honest, some of this doesn't seem necessary. There's a limit on how long a global symbol name can be in the object language (defined here by the Microsoft COFF format).
I suggest filing this as a support request with Intel Premier Support. COMMON global names don't need to be decorated so much since they are global to the program and this may in fact be a bug.
I suggest filing this as a support request with Intel Premier Support. COMMON global names don't need to be decorated so much since they are global to the program and this may in fact be a bug.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for the help...I have passed it on to Intel Premier support
R

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page