title: Type of the actual argument differs from the type of the dummy argument
body: <p>I have some demonstrative Fortran code (which is supposed to be successfully compiled) and try to compile in Intel Visual Fortran + VS2013. But I got an error during compilation</p>
  
  <pre><code> error #6633: The type of the actual argument differs from the type of the dummy argument
  </code></pre>
  
  <p>It seems the code in line 6 has some problem, but I cannot figure it out exactly</p>
  
  <p>Aside: I can compile this code successfully within command line, so it's highly possible due to Visual studio setting. But I cannot figure out which option is responsible. Some solution suggest disabling the <code>Check Routine Interface</code> option, but it seems too dangerous.</p>
  
  <pre><code>SUBROUTINE FUNARR (A,N)
          IMPLICIT NONE
          INTEGER:: N
          REAL,DIMENSION(N):: A
  
          WRITE(*,*)"FUNARR VECTOR SUBSCRIPT....IN"
          WRITE(*,'(10F12.6)')A(:N)
          WRITE(*,*)"FUNARR VECTOR SUBSCRIPT....OUT"
          A(:N)=A(:N)-100
  
      END SUBROUTINE
  
      PROGRAM WWW_FCODE_CN
          IMPLICIT NONE
  
          INTEGER,PARAMETER:: NMAX=100
          REAL,PARAMETER:: PI=3.14159265
          REAL,DIMENSION(NMAX):: ARR
          INTEGER,DIMENSION(5):: VECSUBSCP=(/1,4,6,7,5/)
          INTEGER:: NARR,I
  
          NARR=10
  
          ARR=1.
          ARR(:NARR)=1.   
          WRITE(*,*)"ASSIGN TOTAL"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
          ARR(1)=-1.
          WRITE(*,*)"ASSIGN ELEMENT"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
          ARR(2:4)=(/(SIN(PI*(I-1.)/(NARR-1)),I=2,4)/)
          WRITE(*,*)"ASSIGN SLICE"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
          CALL FUNARR(ARR(2:4),3)
          WRITE(*,*)"FUNARR SLICE"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
          ARR(VECSUBSCP(:3))=0.5
          WRITE(*,*)"ASSIGN VECTOR SUBSCRIPT"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
      ! ACTUAL ARGUMENT IS AN ARRAY SECTION WITH A VECTOR SUBSCRIPT
      ! DISCONTINUE,COPY,UNKNOWN POSITION,CANNOT BE INTENT(OUT)
          CALL FUNARR(ARR(VECSUBSCP(3:5)),3)
          WRITE(*,*)"FUNARR VECTOR SUBSCRIPT"
          WRITE(*,'(10F12.6)')ARR(:NARR)
          WRITE(*,*)
  
          STOP
  
      END PROGRAM WWW_FCODE_CN
  </code></pre>