program test_petsc38 #include use petscksp implicit none !#include KSP :: ksp Mat :: Amat Vec :: b,x PetscErrorCode :: ierr PetscInt :: i,ii(1), npetscloc,low,high, ione=1,izero=0,nreal PetscScalar :: ionearr(1)=1 PetscInt, allocatable :: d_nnz(:), o_nnz(:) PetscViewer :: viewer integer :: comm !!!!misc initialization call PetscInitialize('./petsc.rc',ierr) !call PetscInitialize(PETSC_NULL_CHARACTER,ierr) comm = PETSC_COMM_WORLD !!!!create Amat call MatCreate(comm,Amat,ierr) call MatSetType(Amat,MATAIJ,ierr) !instead of trying to recreate Amat, read in directly from previous XGC call PetscViewerBinaryOpen(comm,'Amat.dat',FILE_MODE_READ,viewer,ierr) call MatLoad(Amat,viewer,ierr) call PetscViewerDestroy(viewer,ierr) !!!!setup ksp call KSPCreate(comm,ksp,ierr) call KSPSetFromOptions(ksp,ierr) !call KSPSetOperators(ksp,Amat,Amat,SAME_NONZERO_PATTERN,ierr) call KSPSetOperators(ksp,Amat,Amat,ierr) ! setup solver now that matrix is complete !!!!!!!!NOTE: This is the call where an error is thrown call KSPSetUp(ksp,ierr) print *,'KSPSetUp finished' !!!!solve ! call KSPSolve(ksp,b,x) call PetscFinalize(ierr) end program test_petsc38