我用fortran调用matlab的特征值分解函数EIG,报错说
status = engEvalString(ep, ' A=reA+j*imA;一行有错,Unterminated character constant
这是什么问题啊?谢谢各位大牛

程序如下

      subroutine ftom(A,b,te,N)
     
!     (pointer) Replace integer by integer*8 on 64-bit platforms
      integer engOpen, mxCreateDoubleMatrix, engPutVariable
      integer mxGetPr
      integer engGetVariable, engEvalString, engClose
      integer ep, status

      integer reA_ptr, imA_ptr
      integer reb_ptr, imb_ptr
      integer rete_ptr, imte_ptr

      integer,intent(in) ::N
      complex(8),intent(in) ::A(N,N)
      integer p,q
      real(8) ::reA(N,N),imA(N,N),reb(N,N),imb(N,N),rete(N,N),imte(N,N)
      complex(8),intent(out)::b(N,N),te(N,N)
!----------------------------------------------------------------------

      ep = engOpen('matlab')
      if(ep .eq. 0) then
         write(6,*) 'Can''t start MATLAB engine'
         stop
      end if
!--------------------------------------
      do p=1,N
       do q=1,N
       reA(p,q)=real(A(p,q))
              imA(p,q)=imag(A(p,q))          
       end do
    end do
     
      reA_ptr = mxCreateDoubleMatrix(N, N, 0)
      imA_ptr = mxCreateDoubleMatrix(N, N, 0)
      reb_ptr = mxCreateDoubleMatrix(N, N, 0)
      imb_ptr = mxCreateDoubleMatrix(N, N, 0)
      rete_ptr = mxCreateDoubleMatrix(N, N, 0)
      imte_ptr = mxCreateDoubleMatrix(N, N, 0)
!
!     Fortran --> Ptr
!
      call mxCopyReal8ToPtr(reA, mxGetPr(reA_ptr), N*N)
      call mxCopyReal8ToPtr(imA, mxGetPr(imA_ptr), N*N)
      
!
!     Ptr --> Matlab   (将实数传入maltlab实部虚部分别传)
!
      status = engPutVariable(ep, 'reA', reA_ptr)
      status = engPutVariable(ep, 'imA', imA_ptr)
!
!     in Matlab ...
!
      status = engEvalString(ep, ' A=reA+j*imA;                                 [B te]=eig(A);         
                     rete=real(te);
                                   imte=imag(te);
                                   reb=real(B);
                                   imb=imag(B);                          ' )
!
!     Matlab --> Ptr 
!
    reb_ptr = engGetVariable(ep, 'reb')
    imb_ptr = engGetVariable(ep, 'imb')
    rete_ptr = engGetVariable(ep, 'rete')
    imte_ptr = engGetVariable(ep, 'imte')
!
!     Ptr--> Fortran
!
    call mxCopyPtrToReal8(mxGetPr(reb_ptr), reb, N*N)
    call mxCopyPtrToReal8(mxGetPr(imb_ptr), imb, N*N)
    call mxCopyPtrToReal8(mxGetPr(rete_ptr), rete, N*N)
    call mxCopyPtrToReal8(mxGetPr(imte_ptr), imte, N*N)
!--------------------------------------
      do p=1,N
       do q=1,N
       b(p,q)=cmplx(reb(p,q),imb(p,q))
             te(p,q)=cmplx(rete(p,q),imte(p,q))         
       end do
    end do
         
    call mxDestroyArray(reA_ptr)
    call mxDestroyArray(imA_ptr)
    call mxDestroyArray(reb_ptr)
    call mxDestroyArray(imb_ptr)
    call mxDestroyArray(rete_ptr)
    call mxDestroyArray(imte_ptr)

      return
      end subroutine ftom