ioread_sread.f90 Source File


Source Code

subroutine sreadA1_RR(pname,X,Y1)
  integer                             :: i,Np
  character(len=*)                    :: pname
  real(8),dimension(:)                :: X
  real(8),dimension(size(X))          :: Y1
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  Np=size(X)
  do i=1,Np
     read(unit,*)X(i),Y1(i)
  enddo
  close(unit)
end subroutine sreadA1_RR

subroutine sreadA1_RC(pname,X,Y1)
  integer                       :: i,Np
  character(len=*)              :: pname
  real(8),dimension(:)          :: X
  complex(8),dimension(size(X)) :: Y1
  real(8),dimension(size(X))    :: reY,imY
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  Np=size(X)
  do i=1,Np
     read(unit,*)X(i),imY(i),reY(i)
  enddo
  Y1=dcmplx(reY,imY)
  close(unit)
end subroutine sreadA1_RC



!----------------------------
!----------------------------
!----------------------------



subroutine sreadA2_RR(pname,X,Y1)
  integer                       :: i,j,Ny1,Ny2
  character(len=*)              :: pname
  real(8),dimension(:,:)        :: Y1
  real(8),dimension(size(Y1,2)) :: X
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  !
  do i=1,Ny1
     do j=1,Ny2
        read(unit,*)X(j),Y1(i,j)
     enddo
  enddo
  !
  close(unit)
end subroutine sreadA2_RR

subroutine sreadA2_RC(pname,X,Y1)
  integer                                  :: i,j,Ny1,Ny2
  character(len=*)                         :: pname
  complex(8),dimension(:,:)                :: Y1
  real(8),dimension(size(Y1,2))            :: X
  real(8),dimension(size(Y1,1),size(Y1,2)) :: reY,imY
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  do i=1,Ny1
     do j=1,Ny2
        read(unit,*)X(j),imY(i,j),reY(i,j)
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA2_RC


!----------------------------
!----------------------------
!----------------------------




subroutine sreadA3_RR(pname,X,Y1)
  integer                       :: i,j,k,Ny1,Ny2,Ny3
  character(len=*)              :: pname
  real(8),dimension(:,:,:)      :: Y1
  real(8),dimension(size(Y1,3)) :: X
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  !
  do i=1,Ny1
     do j=1,Ny2
        do k=1,Ny3
           read(unit,*)X(k),Y1(i,j,k)
        enddo
     enddo
  enddo
  close(unit)
end subroutine sreadA3_RR

subroutine sreadA3_RC(pname,X,Y1)
  integer                                             :: i,j,k,Ny1,Ny2,Ny3
  character(len=*)                                    :: pname
  complex(8),dimension(:,:,:)                         :: Y1
  real(8),dimension(size(Y1,3))                       :: X
  real(8),dimension(size(Y1,1),size(Y1,2),size(Y1,3)) :: reY,imY
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  !
  do i=1,Ny1
     do j=1,Ny2
        do k=1,Ny3
           read(unit,*)X(k),imY(i,j,k),reY(i,j,k)
        enddo
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA3_RC


!----------------------------
!----------------------------
!----------------------------


subroutine sreadA4_RR(pname,X,Y1)
  integer                       :: Ny1,Ny2,Ny3,Ny4
  integer                       :: i1,i2,i3,i4
  character(len=*)              :: pname
  real(8),dimension(:,:,:,:)    :: Y1
  real(8),dimension(size(Y1,4)) :: X
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              read(unit,*)X(i4),Y1(i1,i2,i3,i4)
           enddo
        enddo
     enddo
  enddo
  close(unit)
end subroutine sreadA4_RR

subroutine sreadA4_RC(pname,X,Y1)
  integer                       :: Ny1,Ny2,Ny3,Ny4
  integer                       :: i1,i2,i3,i4
  character(len=*)              :: pname
  complex(8),dimension(:,:,:,:) :: Y1
  real(8),dimension(size(Y1,4)) :: X
  real(8),dimension(&
       size(Y1,1),&
       size(Y1,2),&
       size(Y1,3),&
       size(Y1,4))              :: reY,imY
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              read(unit,*)X(i4),imY(i1,i2,i3,i4),reY(i1,i2,i3,i4)
           enddo
        enddo
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA4_RC


!----------------------------
!----------------------------
!----------------------------



subroutine sreadA5_RR(pname,X,Y1)
  integer                         :: Ny1,Ny2,Ny3,Ny4,Ny5
  integer                         :: i1,i2,i3,i4,i5
  character(len=*)                :: pname
  real(8),dimension(:,:,:,:,:)    :: Y1
  real(8),dimension(size(Y1,5))   :: X
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 read(unit,*)X(i5),Y1(i1,i2,i3,i4,i5)
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
end subroutine sreadA5_RR

subroutine sreadA5_RC(pname,X,Y1)
  integer                         :: Ny1,Ny2,Ny3,Ny4,Ny5
  integer                         :: i1,i2,i3,i4,i5
  character(len=*)                :: pname
  complex(8),dimension(:,:,:,:,:) :: Y1
  real(8),dimension(size(Y1,5))   :: X
  real(8),dimension(&
       size(Y1,1),&
       size(Y1,2),&
       size(Y1,3),&
       size(Y1,4),&
       size(Y1,5))                :: reY,imY
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 read(unit,*)X(i5),imY(i1,i2,i3,i4,i5),reY(i1,i2,i3,i4,i5)
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA5_RC


!----------------------------
!----------------------------
!----------------------------


subroutine sreadA6_RR(pname,X,Y1)
  integer                           :: Ny1,Ny2,Ny3,Ny4,Ny5,Ny6
  integer                           :: i1,i2,i3,i4,i5,i6
  character(len=*)                  :: pname
  real(8),dimension(:,:,:,:,:,:)    :: Y1
  real(8),dimension(size(Y1,6))     :: X
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  Ny6=size(Y1,6)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 do i6=1,Ny6
                    read(unit,*)X(i6),Y1(i1,i2,i3,i4,i5,i6)
                 enddo
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
end subroutine sreadA6_RR

subroutine sreadA6_RC(pname,X,Y1)
  integer                           :: Ny1,Ny2,Ny3,Ny4,Ny5,Ny6
  integer                           :: i1,i2,i3,i4,i5,i6
  character(len=*)                  :: pname
  complex(8),dimension(:,:,:,:,:,:) :: Y1
  real(8),dimension(size(Y1,6))     :: X
  real(8),dimension(&
       size(Y1,1),&
       size(Y1,2),&
       size(Y1,3),&
       size(Y1,4),&
       size(Y1,5),&
       size(Y1,6))                  :: reY,imY
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  Ny6=size(Y1,6)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 do i6=1,Ny6
                    read(unit,*)X(i6),imY(i1,i2,i3,i4,i5,i6),reY(i1,i2,i3,i4,i5,i6)
                 enddo
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA6_RC


!----------------------------
!----------------------------
!----------------------------



subroutine sreadA7_RR(pname,X,Y1)
  integer                             :: Ny1,Ny2,Ny3,Ny4,Ny5,Ny6,Ny7
  integer                             :: i1,i2,i3,i4,i5,i6,i7
  character(len=*)                    :: pname
  real(8),dimension(:,:,:,:,:,:,:)    :: Y1
  real(8),dimension(size(Y1,7))       :: X
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  Ny6=size(Y1,6)
  Ny7=size(Y1,7)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 do i6=1,Ny6
                    do i7=1,Ny7
                       read(unit,*)X(i7),Y1(i1,i2,i3,i4,i5,i6,i7)
                    enddo
                 enddo
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
end subroutine sreadA7_RR

subroutine sreadA7_RC(pname,X,Y1)
  integer                             :: Ny1,Ny2,Ny3,Ny4,Ny5,Ny6,Ny7
  integer                             :: i1,i2,i3,i4,i5,i6,i7
  character(len=*)                    :: pname
  complex(8),dimension(:,:,:,:,:,:,:) :: Y1
  real(8),dimension(size(Y1,7))       :: X
  real(8),dimension(&
       size(Y1,1),&
       size(Y1,2),&
       size(Y1,3),&
       size(Y1,4),&
       size(Y1,5),&
       size(Y1,6),&
       size(Y1,7))                    :: reY,imY
  !
  call ioread_control(pname,control)
  open(free_unit(unit),file=reg(pname))
  !
  !
  Ny1=size(Y1,1)
  Ny2=size(Y1,2)
  Ny3=size(Y1,3)
  Ny4=size(Y1,4)
  Ny5=size(Y1,5)
  Ny6=size(Y1,6)
  Ny7=size(Y1,7)
  !
  do i1=1,Ny1
     do i2=1,Ny2
        do i3=1,Ny3
           do i4=1,Ny4
              do i5=1,Ny5
                 do i6=1,Ny6
                    do i7=1,Ny7
                       read(unit,*)X(i7),imY(i1,i2,i3,i4,i5,i6,i7),reY(i1,i2,i3,i4,i5,i6,i7)
                    enddo
                 enddo
              enddo
           enddo
        enddo
     enddo
  enddo
  close(unit)
  Y1=dcmplx(reY,imY)
end subroutine sreadA7_RC