subroutine data_readA3_C(pname,Y1,X)
integer :: i,j,k,Ny1,Ny2,Ny3
character(len=*) :: pname
complex(8),dimension(:,:,:) :: Y1
real(8),optional,dimension(:) :: X(size(Y1,3))
real(8) :: reY,imY
Ny1=size(Y1,1) ; Ny2=size(Y1,2) ; Ny3=size(Y1,3)
call data_open(trim(pname))
include "ioread_control.f90"
open(719,file=str(pname))
do i=1,Ny1
do j=1,Ny2
do k=1,Ny3
if(present(X))then
read(719,*)X(k),imY,reY
else
read(719,*)imY,reY
endif
Y1(i,j,k)=dcmplx(reY,imY)
enddo
enddo
enddo
close(719)
call data_store(pname)
end subroutine data_readA3_C