subroutine sreadP_IC(pname,X,Y1,Y2,Y3,Y4)
character(len=*) :: pname
integer :: X
complex(8) :: Y1
complex(8),optional :: Y2,Y3,Y4
real(8) :: reY1,imY1
real(8) :: reY2,imY2,reY3,imY3,reY4,imY4
open(719,file=trim(adjustl(trim(pname))))
if(present(Y4))then
read(719,"(I15,8(F21.12))")X,reY1,imY1,reY2,imY2,reY3,imY3,reY4,imY4
Y1=cmplx(reY1,imY1);Y2=cmplx(reY2,imY2);Y3=cmplx(reY3,imY3);Y4=cmplx(reY4,imY4)
elseif(present(Y3))then
read(719,"(I15,8(F21.12))")X,reY1,imY1,reY2,imY2,reY3,imY3
Y1=cmplx(reY1,imY1);Y2=cmplx(reY2,imY2);Y3=cmplx(reY3,imY3)
elseif(present(Y2))then
read(719,"(I15,8(F21.12))")X,reY1,imY1,reY2,imY2
Y1=cmplx(reY1,imY1);Y2=cmplx(reY2,imY2)
else
read(719,*)X,reY1,imY1 ; Y1=cmplx(reY1,imY1)
endif
close(719)
end subroutine sreadP_IC