xref: /petsc/src/mat/tests/ex209f.F90 (revision d8606c274c09e255c003062beb17b1be973467bc)
1c4762a1bSJed Brown!
2c4762a1bSJed Brown!
3c4762a1bSJed Brown!
4c4762a1bSJed Brown      program main
5c4762a1bSJed Brown#include <petsc/finclude/petscmat.h>
6c4762a1bSJed Brown      use petscmat
7c4762a1bSJed Brown      implicit none
8c4762a1bSJed Brown
9c4762a1bSJed Brown      Mat      A
10c4762a1bSJed Brown      PetscErrorCode ierr
11c4762a1bSJed Brown      PetscScalar, pointer :: km(:,:)
12c4762a1bSJed Brown      PetscInt three,one
13c4762a1bSJed Brown      PetscInt idxm(1),i,j
14c4762a1bSJed Brown      PetscScalar v
15c4762a1bSJed Brown
16*d8606c27SBarry Smith      PetscCallA(PetscInitialize(ierr))
17c4762a1bSJed Brown
18*d8606c27SBarry Smith      PetscCallA(MatCreate(PETSC_COMM_WORLD,A,ierr))
19c4762a1bSJed Brown      three = 3
20*d8606c27SBarry Smith      PetscCallA(MatSetSizes(A,three,three,three,three,ierr))
21*d8606c27SBarry Smith      PetscCallA(MatSetBlockSize(A,three,ierr))
22*d8606c27SBarry Smith      PetscCallA(MatSetType(A, MATSEQBAIJ,ierr))
23*d8606c27SBarry Smith      PetscCallA(MatSetUp(A,ierr))
24c4762a1bSJed Brown
25c4762a1bSJed Brown      one = 1
26c4762a1bSJed Brown      idxm(1) = 0
27c4762a1bSJed Brown      allocate (km(three,three))
28c4762a1bSJed Brown      do i=1,3
29c4762a1bSJed Brown        do j=1,3
30c4762a1bSJed Brown          km(i,j) = i + j
31c4762a1bSJed Brown        enddo
32c4762a1bSJed Brown      enddo
33c4762a1bSJed Brown
34*d8606c27SBarry Smith      PetscCallA(MatSetValuesBlocked(A, one, idxm, one, idxm, km, ADD_VALUES, ierr))
35*d8606c27SBarry Smith      PetscCallA(MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,ierr))
36*d8606c27SBarry Smith      PetscCallA(MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,ierr))
37*d8606c27SBarry Smith      PetscCallA(MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr))
38c4762a1bSJed Brown
39c4762a1bSJed Brown      j = 0
40*d8606c27SBarry Smith      PetscCallA(MatGetValues(A,one,j,one,j,v,ierr))
41c4762a1bSJed Brown
42*d8606c27SBarry Smith      PetscCallA(MatDestroy(A,ierr))
43c4762a1bSJed Brown
44c4762a1bSJed Brown      deallocate(km)
45*d8606c27SBarry Smith      PetscCallA(PetscFinalize(ierr))
46c4762a1bSJed Brown      end
47c4762a1bSJed Brown
48c4762a1bSJed Brown!/*TEST
49c4762a1bSJed Brown!
50c4762a1bSJed Brown!     test:
51c4762a1bSJed Brown!       requires: double !complex
52c4762a1bSJed Brown!
53c4762a1bSJed Brown!TEST*/
54