sreadM_RC Subroutine

subroutine sreadM_RC(pname, X, Y1, Y2)

Arguments

Type IntentOptional Attributes Name
character(len=*) :: pname
real(kind=8), dimension(size(Y1,2)) :: X
complex(kind=8), dimension(:,:) :: Y1
complex(kind=8), optional, dimension(size(Y1,1),size(Y1,2)) :: Y2

Source Code

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