subroutine sreadM_RC(pname,X,Y1,Y2)
integer :: i,j,Ny1,Ny2
character(len=*) :: pname
complex(8),dimension(:,:) :: Y1
complex(8),dimension(size(Y1,1),size(Y1,2)),optional :: Y2
real(8),dimension(size(Y1,2)) :: X
real(8),allocatable,dimension(:,:,:) :: reY,imY
Ny1=size(Y1,1) ; Ny2=size(Y1,2)
open(719,file=adjustl(trim(pname)))
if(present(Y2))then
allocate(reY(2,size(Y1,1),size(Y1,2)) ,&
imY(2,size(Y1,1),size(Y1,2)))
do i=1,Ny1
do j=1,Ny2
read(719,"(F21.12,4(F21.12))")X(j),imY(1,i,j),reY(1,i,j),imY(2,i,j),reY(2,i,j)
enddo
enddo
Y1=cmplx(reY(1,:,:),imY(1,:,:),8)
Y2=cmplx(reY(2,:,:),imY(2,:,:),8)
else
allocate(reY(2,size(Y1,1),size(Y1,2)))
do i=1,Ny1
do j=1,Ny2
read(719,*)X(j),imY(1,i,j),reY(1,i,j)
enddo
enddo
Y1=cmplx(reY(1,:,:),imY(1,:,:),8)
endif
close(719)
end subroutine sreadM_RC