I have a main program in **Fortran**. I am using Intel Visual Fortran XE 2011 on Visual Studio 2010. I would like to use a function which is coded in **C++**. The function I'm using is getting several arrays (input - set from the main fortran program) and use them to form an output array (to be returned to the main fortran program).
I've taken the following steps:

1)I created a Fortran project with the Fortran main program and module and I set it as "startup project".

2)I created a C++ project of type "static library".

3)I added `$(IFORT_COMPILERvv)\compiler\lib\ia32` as explained here <http://software.intel.com/en-us/articles/configuring-visual-studio-for-mixed-language-applications>

The C++ static library is build with no problem.
The errors I get is about the declaration of the `real(8)` variables in the fortran program.

I get the following two errors for all real(8) declarations, i.e. 6 errors in total:

> 
> error #5082: Syntax error, found '(' when expecting one of: :: %FILL , TYPE BYTE CHARACTER CLASS DOUBLE DOUBLECOMPLEX DOUBLEPRECISION ...
> 
> 
> error #5082: Syntax error, found '::' when expecting one of: ( \* , ; [ / = =>
> 
> 
> 

Here is the code I used:

Main Fortran Program:

```
Program Fort_call_C

use iso_c_binding

implicit none

interface 

   subroutine vec_sum_c(a,b,c) bind (C, name = "vec_sum_c")

      use iso_c_binding

      implicit none

      real(8) (c_double), intent (in), dimension (*) :: a,b
      real(8) (c_double), intent (out), dimension (*) :: c

   end subroutine get_filled_ar

end interface  

integer:: i
integer (c_int)::m
real(8)(c_double),dimension(:):: a, b, c

open(unit=10, file="input_arrays.txt",status="unknown")
read(10,*) m
allocate(a(m),b(m),c(m))

do i=1,m
   read(10,*)a(i),b(i)
end do
close(10)

call vec_sum_c(m,a,b,c)

do i=1,m
   print*, c(i)
end do

pause

end program

```

And the C++ function is:

```
extern"C" void vec_sum_c(int *m, double *a, double *b, double *c){
    int mm = *m;
    for(int i=0;i<=m-1;i++){
        c[i]=a[i]+b[i];
     }
}

```

Could anybody please help me with this issue?
And would you please let me know if the idea of sending a whole array from a fortran program to a c++ routine is a safe or problematic (better-to-be-avoided) attempt?