Was PETSc ./configure with --download-hypre ? Send configure.log make.log and the full error message if you still have this failure.
> On May 23, 2022, at 9:35 AM, wang yuqi <yu1299885...@outlook.com> wrote: > > Thank you very much. The problem has been solved. But I have a new problem, > when I use the PCHYPRESetType as follows: > call PCHYPRESetType(pc,'boomeramg',ierr) > The problem occurs at compile time: > > undefined reference to `pchypresettype_' > > I checked the PETSC manual, but couldn't find a reason. > I look forward to hearing from you. > Thanks again! > 从 Windows 版邮件 <https://go.microsoft.com/fwlink/?LinkId=550986>发送 > > 发件人: Barry Smith <mailto:bsm...@petsc.dev> > 发送时间: 2022年5月23日 0:44 > 收件人: wang yuqi <mailto:yu1299885...@outlook.com> > 抄送: petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov> > 主题: Re: [petsc-users] A compilation error about VecGetValues > > > This should work for at least the last three versions of PETSc. Please > upgrade to the latest PETSc version and let us know if you continue to get > this error message. > > Yes, for some PETSc versions between 3.8 and 3.14 it may generate this > error message with some Fortran compilers. > > Barry > > > > > On May 21, 2022, at 9:23 AM, wang yuqi <yu1299885...@outlook.com > <mailto:yu1299885...@outlook.com>> wrote: > > > > 从 Windows 版邮件 <https://go.microsoft.com/fwlink/?LinkId=550986>发送 > Hi, Dear developer: > I had compilation problems when using VecGetValues. My procedure is as > follows: > program main > #include <petsc/finclude/petscvec.h> > use petscvec > Vec x > PetscInt N,i,ione > PetscErrorCode ierr > PetscMPIInt rank > PetscScalar one > > call PetscInitialize(PETSC_NULL_CHARACTER,ierr) > if (ierr .ne. 0) then > print*,'PetscInitialize failed' > stop > endif > one = 1.0 > call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr) > N = rank + 1 > call VecCreateMPI(PETSC_COMM_WORLD,N,PETSC_DECIDE,x,ierr) > call VecGetSize(x,N,ierr) > call VecSet(x,one,ierr) > ione = 1 > do 100 i=0,N-rank-1 > call VecSetValues(x,ione,i,one,ADD_VALUES,ierr) > 100 continue > call VecAssemblyBegin(x,ierr) > call VecAssemblyEnd(x,ierr) > > if (rank .eq. 0) then > ione = 0 > call VecGetValues(x,ione,i,one,ierr) > endif > call VecView(x,PETSC_VIEWER_STDOUT_WORLD,ierr) > call VecDestroy(x,ierr) > > call PetscFinalize(ierr) > end PROGRAM main > > The compilation error is as follows: > mpif90 -I/root/soft/petsc/3.8.0/include -o ex2f.o ex2f.F90 > ex2f.F90(62): error #8284: If the actual argument is scalar, the dummy > argument shall be scalar unless the actual argument is of type character or > is an element of an array that is not assumed shape, pointer, or polymorphic. > [C] > call VecGetValues(x,ione,i,one,ierr) > -------------^ > ex2f.F90(62): error #8284: If the actual argument is scalar, the dummy > argument shall be scalar unless the actual argument is of type character or > is an element of an array that is not assumed shape, pointer, or polymorphic. > [D] > call VecGetValues(x,ione,i,one,ierr) > -------------^ > compilation aborted for ex2f.F90 (code 1) > And this error only appears when the Petsc version is higher than 3.8. > I look forward to hearing from you. > Thanks!