Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Warning Message

pze593
Beginner
632 Views
Hi Guys!

I need your help, I'mdebuggingmy code in the following way:

ifort -O0 -check all -c random_module.f90

when I check all I'm having the following warning message thousands of times (I don's care about that warning), how I can turn it off?

forrtl: warning (402): fort: (1): In call to INTERPOLATION_NEG, an array temporary was created for argument #6


Thanks

Juan
0 Kudos
1 Solution
Steven_L_Intel1
Employee
632 Views

You could try:

-check all -check noarg_temp_created

I am not certain that will work.

If you are passing a POINTER array or an array slice such as A(1:10:2) so that the array elements are not known to be contiguous, and there is not an explicit interface visible telling the compiler that the called routine accepts the array as assumed-shape (:), then the compiler may need to create a temporary copy of the array values, pass the copy, and then copy the results back.

If you are using POINTERs just for dynamic allocation, please use ALLOCATABLE instead. This will eliminate that issue.

View solution in original post

0 Kudos
4 Replies
rreis
New Contributor I
632 Views

the quickest way to do that would be to remove the "-check all" flag...
0 Kudos
Steven_L_Intel1
Employee
632 Views

In particular, -check arg_temp_created is enabling this warning. It is telling you that you are passing a non-contiguous array to a routine expecting a contiguous array and that the compiler made a copy of the argument on the stack. This hurts performance so you might want to know about it.
0 Kudos
pze593
Beginner
632 Views

In particular, -check arg_temp_created is enabling this warning. It is telling you that you are passing a non-contiguous array to a routine expecting a contiguous array and that the compiler made a copy of the argument on the stack. This hurts performance so you might want to know about it.

Thank you very much for your prompt response guys!

There is a way to keep check all and turn off that message, and my following question is: what do you mean Steve with non-continuos argument? any way to fix it?
0 Kudos
Steven_L_Intel1
Employee
633 Views

You could try:

-check all -check noarg_temp_created

I am not certain that will work.

If you are passing a POINTER array or an array slice such as A(1:10:2) so that the array elements are not known to be contiguous, and there is not an explicit interface visible telling the compiler that the called routine accepts the array as assumed-shape (:), then the compiler may need to create a temporary copy of the array values, pass the copy, and then copy the results back.

If you are using POINTERs just for dynamic allocation, please use ALLOCATABLE instead. This will eliminate that issue.
0 Kudos
Reply