program demo_M_matrix
use M_matrix, only : lala, put_into_lala, get_from_lala, ifin_lala
!real,allocatable :: r
!complex,allocatable :: cvec(:)
integer,allocatable :: iarr(:,:)
character(len=:),allocatable :: t(:)
integer :: ierr
integer :: i
! store some data into lala(3)
call put_into_lala('A',[1,2,3,4,5]*10.5,ierr)
write(*,*)'is A defined in LALA?',ifin_lala('A')
call lala('A/2.0')
! pass some commands to lala(3f)
call lala([character(len=80) :: &
&'PI=atan(1)*4 ', &
&"mytitle='this is my title';", &
&'littlearray=< ', &
&' 1 2 3; ', &
&' 4 5 6; ', &
&' 7 8 9; ', &
&'> ', &
&'S=sum(A) ', &
&'I=inv(littlearray); ', &
&'B=littlearray*sin(PI/3) ', &
&"save('keepB',B) ", &
&''])
! read a file containing lala(3f) commands
call lala("exec('mycommands');")
! interactively interact with lala(3f) interpreter
call lala()
! get some data from LALA into the calling program
call get_from_lala('littlearray',iarr,ierr)
write(*,'(a)')'IN CALLING PROGRAM IARR='
write(*,'(1x,*(g0,1x))')(IARR(i,:),new_line('A'),i=1,size(iarr,dim=1))
call get_from_lala('mytitle',t,ierr)
write(*,*)'IN CALLING PROGRAM T=',t
end program demo_M_matrix