
  PROGRAM caller

  USE wrapper

  INTEGER :: flag = 0

  DOUBLE PRECISION, DIMENSION(3,3) :: a 
  DOUBLE PRECISION, DIMENSION(3)   :: b = (/1, 2, 3/)
  DOUBLE PRECISION, DIMENSION(3)   :: x

  a(1,1) = 4;  a(1,2) = 5;  a(1,3) = 6
  a(2,1) = 7;  a(2,2) = 8;  a(2,3) = 9
  a(3,1) = 1;  a(3,2) = 2;  a(3,3) = 9

  CALL F04ATF_W(a, b, x, flag)

  WRITE (*,*) "flag (after) = ", flag
  WRITE (*,*) 
  WRITE (*,*) x(1), x(2), x(3)
  WRITE (*,*) 

  ENDPROGRAM caller
