Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

This symbol has too many characters

Escarela-Perez__Rafa
1,843 Views

Does anyone know how to solve the following error or its meaning?

My program used to be correctlycompiled by CVF.

ifort /c /warn:stderrors /stand:f03 /check:bounds /O2 /libs:qwin /nologo /I e:fldsml generic.f90
generic.f90(21) : Error: This symbol has too many characters. [T_IMAGE_RESOURCE_DIRECTORY_STRING]
CONTAINS

Thanks

0 Kudos
6 Replies
Steven_L_Intel1
Employee
1,843 Views
You didn't use /stand:f03 with CVF, did you? Or any /stand at all?

C:Documents and SettingsSteve>df /c /stand t.f90
Compaq Visual Fortran Optimizing Compiler Version 6.6 (Update C)
Copyright 2003 Compaq Computer Corp. All rights reserved.

t.f90
t.f90(1) : Warning: This symbol has too many characters. [T_IMAGE_RESOURCE_DIRECTORY_STRING]
integer T_IMAGE_RESOURCE_DIRECTORY_STRING
--------^

This is a standards violation diagnostic saying that the identifier has more characters than allowed by the standard. It would normally be a warning but you also said /warn:stderrors to force it to be an error.

The only problem here is that this diagnostic is inappropriate with /stand:f03 (it would be correct for CVF and /stand:f90 or f95). In F90/95, identifiers are limited to 31 characters, yours has 33. However, Fortran 2003 raises this limit to 63 characters and this seems to be a distinction we missed updating. I'll report it.

The easiest way out is to turn off /warn:stderrors or perhaps /stand:f03. You could also shorten the name by two characters.
0 Kudos
Escarela-Perez__Rafa
1,843 Views

Thanks for your helpful answers.You are right, I didn't use any /stand at all with CVF. However, I don't know how to shorten the name because the code of my fortran module does not contain this T_IMAGE_RESOURCE_DIRECTORY_STRING symbol. Is this symbol hidden in another way? I don't see problem in reducing it but I don't find a string within my code with more than 31 characters.

Thanks

0 Kudos
Steven_L_Intel1
Employee
1,843 Views
Ah, I see. This symbol is defined in module IFWINTY. I assume that there is a USE statement somewhere that names one of the Win32 API modules. It is a bit surprising to me that a USE of a module with a long name would trigger the warning. I can't reproduce that. Can you post a small but complete source that shows the problem?

Or - hmm. Do you have an INCLUDE that defines Win32 API things?

One way around this is to use an ONLY clause on the USE to bring in only those names you are interested in. For example:

use kernel32, only: GetlastError, HANDLE, TRUE, FALSE

Or just drop the /stand for now.
0 Kudos
Escarela-Perez__Rafa
1,843 Views
Thanks Steve for your prompt answer. I am using IFWIN (Previously DFWIN) in a module which was compiled without /warn:stderrors. Iam ssuming that the error is reproduced later beausemy other module isusing this one. I have added an only clause as follows:

USE

IFWin, only: loadcursor, idc_cross

This too many characterserror has gone now. Thank you.

I have another problem with MKL. I am traying to test the mkl installation but I have linking problems. First, I am opening the Build Environment for applications running on IA-32 and set the mkl environment with mklvars32.bat.After this procedure, I want to complie and link the dss_sym_f90.f90 located in the E:Program FilesIntelMKL10.0.2.019examplessolversource with:

ifort dss_sym_f90.f90 mkl_c.lib libguide.lib

I get the following result:

Intel Visual Fortran Compiler for applications running on IA-32, Version 10.1 Build 20080312 Package ID: w_fc_p_10.1.021
Copyright (C) 1985-2008 Intel Corporation. All rights reserved.

Microsoft Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.

-out:dss_sym_f90.exe
-subsystem:console
dss_sym_f90.obj
mkl_c.lib
libguide.lib
mkl_intel_c.lib(_dss_create.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_create referenced in function _DSS_CREATE
mkl_intel_c.lib(_dss_define_structure.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_define_structure referenced in function _DSS_DEFINE_STRUCTURE
mkl_intel_c.lib(_dss_reorder.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_reorder referenced in function _DSS_REORDER
mkl_intel_c.lib(_dss_factor_real.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_factor_real referenced in function _DSS_FACTOR_REAL
mkl_intel_c.lib(_dss_solve_real.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_solve_real referenced in function _DSS_SOLVE_REAL
mkl_intel_c.lib(_dss_delete.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_delete referenced in function _DSS_DELETE
mkl_intel_c.lib(_mkl_cvt_to_null_terminated_str.obj) : error LNK2019: unresolved external symbol _mkl_solver_cvt_to_null_terminated_str referenced in function _MKL_CVT_TO_NULL_TERMINATED_STR
mkl_intel_c.lib(_dss_statistics.obj) : error LNK2019: unresolved external symbol _mkl_solver_dss_statistics referenced in function _DSS_STATISTICS
dss_sym_f90.exe : fatal error LNK1120: 8 unresolved externals

Could you help me?

Thanks again!!!!!!

0 Kudos
Steven_L_Intel1
Employee
1,843 Views
I'm going to have to check out that module issue - that's weird.

I'd prefer you ask the MKL question over in the MKL forum, where the MKL experts hang out.
0 Kudos
Escarela-Perez__Rafa
1,843 Views

Thanks !!!!!. I found what mkl library must be used.

0 Kudos
Reply