demo_user Program

Contents

Source Code


Variables

Type Attributes Name Initial
integer :: i
integer :: ierr
integer :: j
integer :: k
integer, parameter :: nx = 200
integer, parameter :: ny = 200
character(len=1) :: paws
real :: val(nx,ny)

Subroutines

subroutine lala_text_viz(a, m, n, s, t)

Arguments

Type IntentOptional Attributes Name
doubleprecision :: a(:)
integer :: m
integer :: n
doubleprecision :: s
doubleprecision :: t

Source Code

program demo_user
use M_matrix
use M_matrix__text_viz
implicit none
integer, parameter :: nx = 200, ny = 200
real               :: val(nx,ny)
integer            :: i,j,k
integer            :: ierr
character(len=1)   :: paws
call set_usersub(lala_text_viz) ! set user routine

! create a dataset in the program to pass to LALA()
   do k=1,2000
      do j=1,ny ! fill array with data
         do i=1,nx
            val(i,j) = sin(real(i)*real(k)*0.0001)*sin(real(j)*0.033)
         enddo
      enddo
      call put_into_lala('val',val,ierr)
      call lala("user(val,24,80);") ! display using user routine
      !read(*,'(a)')paws
   enddo



write(*,*)'user added routine does normalized pixelized text plot'
write(*,*)'optional parameters give character cell dimensiones'
write(*,*)'the default is the size of the array'
call lala()  ! enter interactive mode
contains

subroutine lala_text_viz(a,m,n,s,t)  ! sample usersub_placeholder routine
implicit none
integer                    :: m,n
doubleprecision            :: a(:)
doubleprecision            :: s,t
integer                    :: display_cols,display_rows

   display_rows=nint(s)
   display_cols=nint(t)
   if(display_cols.eq.0)display_cols=m
   if(display_rows.eq.0)display_rows=n
   call viz_init(display_cols,display_rows) ! initialize package and set size of plot area
   call viz_plot(reshape(real(a),[m,n]),m,n)
   call viz_done
end subroutine lala_text_viz

end program demo_user