xref: /petsc/src/mat/tests/ex120f.F90 (revision 3886731f808f6f9ca8348e6e791c818340d72f91)
1d8606c27SBarry Smith!
2d8606c27SBarry Smith!   This program tests MatCreateVecs() for Shell Matrix
3d8606c27SBarry Smith!
4d8606c27SBarry Smith      subroutine mymatgetvecs(A,x,y,ierr)
5d8606c27SBarry Smith#include <petsc/finclude/petscmat.h>
6d8606c27SBarry Smith      use petscmat
7d8606c27SBarry Smith      implicit none
8d8606c27SBarry Smith
9d8606c27SBarry Smith      PetscErrorCode ierr
10d8606c27SBarry Smith      Mat A
11d8606c27SBarry Smith      Vec x,y
12d8606c27SBarry Smith      PetscInt tw
13d8606c27SBarry Smith
14d8606c27SBarry Smith      tw = 12
15d8606c27SBarry Smith      PetscCallA(VecCreateSeq(PETSC_COMM_SELF,tw,x,ierr))
16d8606c27SBarry Smith      PetscCallA(VecCreateSeq(PETSC_COMM_SELF,tw,y,ierr))
17d8606c27SBarry Smith      end
18d8606c27SBarry Smith
19d8606c27SBarry Smith      program main
20d8606c27SBarry Smith#include <petsc/finclude/petscmat.h>
21d8606c27SBarry Smith      use petscmat
22d8606c27SBarry Smith      implicit none
23d8606c27SBarry Smith
24d8606c27SBarry Smith      PetscErrorCode ierr
25d8606c27SBarry Smith      Vec     x,y
26d8606c27SBarry Smith      Mat     m
27d8606c27SBarry Smith      PetscInt tw
28d8606c27SBarry Smith      external  mymatgetvecs
29d8606c27SBarry Smith
30d8606c27SBarry Smith      PetscCallA(PetscInitialize(ierr))
31d8606c27SBarry Smith
32d8606c27SBarry Smith      tw = 12
33d8606c27SBarry Smith      PetscCallA(MatCreateShell(PETSC_COMM_SELF,tw,tw,tw,tw,0,m,ierr))
34d8606c27SBarry Smith      PetscCallA(MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr))
35d8606c27SBarry Smith      PetscCallA(MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr))
36d8606c27SBarry Smith      PetscCallA(MatShellSetOperation(m,MATOP_CREATE_VECS,mymatgetvecs,ierr))
37d8606c27SBarry Smith      PetscCallA(MatCreateVecs(m,x,y,ierr))
38d8606c27SBarry Smith      PetscCallA(MatDestroy(m,ierr))
39d8606c27SBarry Smith      PetscCallA(VecDestroy(x,ierr))
40d8606c27SBarry Smith      PetscCallA(VecDestroy(y,ierr))
41d8606c27SBarry Smith      PetscCallA(PetscFinalize(ierr))
42d8606c27SBarry Smith      end
43d8606c27SBarry Smith
44d8606c27SBarry Smith!/*TEST
45d8606c27SBarry Smith!
46d8606c27SBarry Smith!   test:
47d8606c27SBarry Smith!      nsize: 2
48*3886731fSPierre Jolivet!      output_file: output/empty.out
49d8606c27SBarry Smith!
50d8606c27SBarry Smith!TEST*/
51