I am experiencing a strange behavior with Intel(R) Visual Fortran Compiler XE on IA-32, version 12.1.6 Package ID: w_fcompxe_2011.12.369.
I have a file which compiles and works fine with CVF 6.6c. Hoever when I try to compile the same file with the Intel compiler I get the error #8284: If the actual argument is scalar, the dummy argument shall be scalar unless the actual argument is of type character or is an element of an array that is not assumed shape, pointer, or polymorphic.
I understand what does this means, but what I don't understand is why the error is generated.
The file I try to compile is probably too complex to send it as is so I will try to explain what I am doing.
The file contains one subroutine in which I have two arrays of doubles, one being declared as allocatable with the target attribute (PARG) and the second one is declared with the pointer trribute (PAR).
real(8), allocatable, target :: PARG(:) real(8), pointer :: PAR(:)
During the execution, the PAR array is mapped to the PARG array:
PAR => PARG(1:NPTS(K))
I have a lot of calls to other subroutines in which some of the arguments are passed as part of the PAR array (let say PAR(JP) for example),
In the called subroutines, the dummy argument is declared as an array (let say P(N) for example) and is in fact a sub-array of the main array PAR and this is the source of the compiler error.
What I don't understand is why I cannot do like this (I guess that if the PAR array did not have the pointer or allocatable attribute the error will not be triggered).
As mentioned at the beginning, this is working fine with CVF 6.6c. Is it really an error? or is it possible to ignore it ?