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

EM64T (8.1.019) character len question

ipattielgc
Beginner
516 Views
Anyone hve any idea why the len intrinsic below is returning zero instead of 3 billion for this EM64T app? Setting local ints to 8 bytes via /4I8 does not seem to help. I'm trying to determine if the hidden length argument passed with characters are kind=4 or 8 on EM64T. I've looked in the docs plenty, but am notquite sure if rules about such things apply equally to IA64 and EM64T.
System is Windows XP x64 release version, AMD 64, SDK 3790.
Thanks in advance, Ian.
program main
integer(int_ptr_kind()), parameter :: nclen=3000000000
character(len=nclen) :: cmsg
print*,len(cmsg,8),nclen
stop
end

d: tengine>ifort /4I8 hello.f90
Intel Fortran Compiler for Intel EM64T-based applications, Version 8.1 Build 20050518 Packa
ge ID: w_fce_pc_8.1.019
Copyright (C) 1985-2005 Intel Corporation. All rights reserved.
Microsoft Incremental Linker Version 8.00.40310.39
Copyright (C) Microsoft Corporation. All rights reserved.
-out:hello.exe
-subsystem:console
-entry:mainCRTStartup
hello.obj
d: tengine>hello
0 3000000000
d: tengine>
0 Kudos
3 Replies
Steven_L_Intel1
Employee
516 Views
Looks like a bug - please report it. When you do, please reference T55818.

Message Edited by sblionel on 06-08-2005 03:40 PM

0 Kudos
ipattielgc
Beginner
516 Views
Submitted. But, would you know if the hidden character length passed by value followinga character variable address usingthe em64T compiler in a call like:
call sub( cvar )
is int_ptr_kind() or integer(4) ? I looked at some assembler, and I think its int_ptr_kind() same as the address, regardless of the compile integer setting.
The docs say IA64 is integer(8), so em64t is?
Thanks, Ian
0 Kudos
Steven_L_Intel1
Employee
516 Views
It is 8 bytes on EM64T, same as Itanium.
0 Kudos
Reply