1program tests
2
3  use tst_utils
4
5  implicit none
6
7  type(variable_t) :: va
8  real(dp) :: a, b(2), c(2,2)
9  real(dp), pointer :: pa =>null(), pb(:)=>null(), pc(:,:)=>null()
10  logical :: success
11
12#include "variable_declarations_.inc"
13
14  a      = 1.0_dp
15  b(:)   = 2._dp
16  c(:,:) = 3._dp
17
18  ! do 'va = a'
19  call assign(va,a)
20  pd0 = transfer(va%enc,pd0)
21  print '(a2,tr1,f4.2)',va%t,pd0%p
22  ! associate pa with va 'pa => va'
23  call associate(pa,va,success=success)
24  if ( success ) then
25     print *,'Success: ',pa
26  end if
27  if ( associatd(pa,va) ) then
28     print *,'Associated: ',pa
29  end if
30  call associate(pb,va,success=success)
31  if ( .not. success ) then
32     print *,'Success, not associated'
33  end if
34
35  call assign(va,b)
36  call assign(b,va)
37  pd1 = transfer(va%enc,pd1)
38  print '(a2,2(tr1,f4.2))',va%t,pd1%p
39
40  call assign(va,c)
41  pd2 = transfer(va%enc,pd2)
42  print '(a2,4(tr1,f4.2))',va%t,pd2%p
43
44  call assign(va,1)
45  pi0 = transfer(va%enc,pi0)
46  print '(a2,tr1,i0)',va%t,pi0%p
47
48  call delete(va)
49
50end program tests
51