sreadM_II Subroutine

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

Arguments

Type IntentOptional Attributes Name
character(len=*) :: pname
integer, dimension(size(Y1,2)) :: X
integer, dimension(:,:) :: Y1
integer, optional, dimension(size(Y1,1),size(Y1,2)) :: Y2
integer, optional, dimension(size(Y1,1),size(Y1,2)) :: Y3
integer, optional, dimension(size(Y1,1),size(Y1,2)) :: Y4

Source Code

subroutine sreadM_II(pname,X,Y1,Y2,Y3,Y4)
  integer                                  :: i,j,Np,Ny1,Ny2
  character(len=*)                         :: pname
  integer,dimension(:,:)                   :: Y1
  integer,dimension(size(Y1,1),size(Y1,2)),optional :: Y2,Y3,Y4
  integer,dimension(size(Y1,2))            :: X
  Ny1=size(Y1,1) ; Ny2=size(Y1,2)
  open(719,file=adjustl(trim(pname)))
  if(present(Y4))then
     do i=1,Ny1
        do j=1,Ny2
           write(719,'(5(I15))')X(j),Y1(i,j),Y2(i,j),Y3(i,j),Y4(i,j)
        enddo
     enddo
  elseif(present(Y3))then
     do i=1,Ny1
        do j=1,Ny2
           write(719,'(4(I15))')X(j),Y1(i,j),Y2(i,j),Y3(i,j)
        enddo
     enddo
  elseif(present(Y2))then
     do i=1,Ny1
        do j=1,Ny2
           write(719,'(3(I15))')X(j),Y1(i,j),Y2(i,j)
        enddo
     enddo
  else
     do i=1,Ny1
        do j=1,Ny2
           read(719,*)X(j),Y1(i,j)
        enddo
     enddo
  endif
  close(719)
end subroutine sreadM_II