- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Intel,
ifort 15.0.3 (with no options given) aborts with an error on the code below. The error seems to be related to the intent(out) attribute on a "class" polymorphic dummy argument (which is not declared allocatable). I encountered the problem with intent(out) passed dummy arguments, but it doesn't have to be a passed dummy to trigger the error (e.g. as in my example).
I am using
Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.3.187 Build 20150407
Best regards,
Ferdinand
module m implicit none public ! Some derived type type :: t end type contains ! Derived type is polymorphic intent(out) dummy arg. subroutine sub(arg) class(t), intent(out) :: arg end subroutine end module program p implicit none ! Error: ! /scratch/ifort857Jqq.o: In function `sub': ! [...]/test.f90:12: undefined reference to `for_dealloc_all_nopdtlen' end program
PS: I searched the forum but couldn't find any post related to this issue, even though it seems to be very basic.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It appears something is suspicious about either the compiler installation and/or maybe your shell environment setup. The missing routines are from the Intel Fortran run-time library libifcore.a. The libraries will be under a default path like: /opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64
I expect you did source the compilervars.sh/csh to set up your environment?
You could compile with -watch and capture the output of both stdout/stderr to a file (e.g. ifort -watch test.f90 &> out.txt) and attach the file to a reply and that might help shed some clues.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ferdinand - Something seems to be missing. I do not suffer an error like what is noted in the code comments.
$ ifort -V Intel(R) Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.3.187 Build 20150407 Copyright (C) 1985-2015 Intel Corporation. All rights reserved. $ ifort u593296.f90 u593296.f90(12): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [ARG] subroutine sub(arg) -----------------------^ $
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for checking so quickly, Mr. Davis.
My command line was just "ifort test.f90" (the latter being the name of the program with the above code). It was also important to not to move the code into a standalone module or into the program (without module) to reproduce the error on my machine.
The system is a Red Hat Enterprise Linux 6:
$uname -a
Linux uc1n996 2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
I encountered additional, possibly related issues, e.g. here is an other example
program p implicit none character(len=:), allocatable :: str str = "a" str = str // "b" print *, str ! ERROR when compiled with "-check all": ! ! /scratch/ifort75ujA5.o: In function `MAIN__': ! test.f90:(.text+0x278): undefined reference to `for__rtc_uninit_use_src' ! test.f90:(.text+0x3f5): undefined reference to `for__rtc_uninit_use_src' end program
Could these undefined references come from linked system libraries such as the c-library, or else (for=fortran? Is it Intel/ifort-specific?) ? Any pointers might help. Perhaps the installation isn't correct (although most of my programs compile and run fine).
Thank you, best regards
Ferdinand
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It appears something is suspicious about either the compiler installation and/or maybe your shell environment setup. The missing routines are from the Intel Fortran run-time library libifcore.a. The libraries will be under a default path like: /opt/intel/composer_xe_2013_sp1.3.174/compiler/lib/intel64
I expect you did source the compilervars.sh/csh to set up your environment?
You could compile with -watch and capture the output of both stdout/stderr to a file (e.g. ifort -watch test.f90 &> out.txt) and attach the file to a reply and that might help shed some clues.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Mr. Davis,
your information and the "-watch" option helped me spot the problem!
In fact, my LIBRARY_PATH was configured incorrectly.
Compiler and libraries had been loaded into the environment via the "modules" system, so I didn't have to source the compilervars.sh manually. However, I actually also loaded the MKL after loading the compiler, which messed up the LIBRARY_PATH (by prepending a path to an older version (14.0.4) intel64 libraries, which are obviously incompatible). So the error is in the module settings here.
Thank you very much,
Ferdinand
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Good detective work! Glad to hear you resolved it.

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