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

Trying to compile code using INTEL64. IA32 is successful and INTEL64 fails

Brian_A_
Novice
376 Views
I am trying to compile our code in 64bit mode and run inot an error. It compiles and runs just fine in 32bit mode.
[bash]ifort -nologo -c   -auto -Qansi_alias- -pad_source -traceback  -fltconsistency -fpconstant -nogen-interfaces -module:o  -Io -Ienvrl -Imatpro -Irelap -Iscdap  -Igraphics -object:relap\rnewp.o relap\rnewp.for
relap\rnewp.for(308): error #6284: There is no matching specific function for this generic function reference.   [CREATETHREAD][/bash]
0 Kudos
1 Reply
Steven_L_Intel1
Employee
376 Views
Not as much information as I'd like to see, normally, but this one is pretty easy. CreateThread has some arguments that change size based on the address size of the architecture. If you have improperly declared these as INTEGER or INTEGER*4, then you'll get this error on Intel 64 because that won't match the declaration.

I'm going to do my Carnack the Magnificent impersonation and predict that it is the dwStackSize argument that is the culprit, though it might be lpStartAddress. Or both. dwStackSize you might not have guessed - MSDN says it is SIZE_T, which is C speak for an integer that can hold the maximum size of an array (or any other item.) On Intel 64, this is 64-bits. You can use INTEGER(SIZE_T) - SIZE_T is properly declared in IFWINTY. If you're passing a constant, then use 100000_SIZE_T or similar.

The start address also needs to be an address-sized integer.
0 Kudos
Reply