sreadP_IC Subroutine

subroutine sreadP_IC(pname, X, Y1, Y2, Y3, Y4)

Arguments

Type IntentOptional Attributes Name
character(len=*) :: pname
integer :: X
complex(kind=8) :: Y1
complex(kind=8), optional :: Y2
complex(kind=8), optional :: Y3
complex(kind=8), optional :: Y4

Source Code

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