Hong, This should be enough to reproduce the problem:
call KSPCreate(PETSC_COMM_WORLD,ksp,ierr);CHKERRQ(ierr) call KSPSetOperators(ksp,A,A,DIFFERENT_NONZERO_PATTERN,ierr);CHKERRQ(ierr) call KSPSetType(ksp,KSPPREONLY,ierr);CHKERRQ(ierr) call KSPGetPC(ksp,pc,ierr);CHKERRQ(ierr) call PCSetType(pc,PCCHOLESKY,ierr);CHKERRQ(ierr) call PCFactorSetMatSolverPackage(pc,MATSOLVERMUMPS,ierr);CHKERRQ(ierr) call PCFactorSetUpMatSolverPackage(pc,ierr);CHKERRQ(ierr) call PCFactorGetMatrix(pc,F,ierr);CHKERRQ(ierr) call KSPSetFromOptions(ksp,ierr);CHKERRQ(ierr) icntl = 2; ival = 0; call MatMumpsSetIcntl(F,icntl,ival,ierr); Regards, Alexander On 30.11.2011 23:43, Hong Zhang wrote: >> Sorry if I wasn't clear. "c" example works fine, I know, what I meant is >> that if you try to implement lines 150-171 from it on FORTRAN you will see >> the problem I reported. >> If you need particularly my FORTRAN code I can send it tomorrow. > This would save my time :-) > Appreciate. > > Hong >> Regards, >> Alexander >> >> >> ----- Reply message ----- >> From: "Hong Zhang"<hzhang at mcs.anl.gov> >> To: "PETSc users list"<petsc-users at mcs.anl.gov> >> Subject: [petsc-users] MatMumpsSetIcntl from Fortran >> Date: Wed, Nov 30, 2011 9:37 pm >> >> >> Alexander : >> >>> I just rewrote code concerning mumps from this example (lines 150-170): >>> >>> http://www.mcs.anl.gov/petsc/petsc-dev/src/ksp/ksp/examples/tutorials/ex52.c.html >> Where is your Fortran code? ex52.c works fine. >> Hong >> >>> On 30.11.2011 17:40, Hong Zhang wrote: >>>> Alexander: >>>> >>>>> Has anybody tried to use MatMumpsSetIcntl from Fortran? >>>> We are not aware of it. >>>> >>>>> Because when I try to call it I fall into infinite recursion in >>>>> function: >>>> Can you give me a short Fortran code that repeats this error for >>>> investigating? >>>> Meanwhile, you can use runtime option '-mat_mumps_icntl_xxx<>' to get >>>> your code run. >>>> >>>> Hong >>>>> PetscErrorCode MatMumpsSetIcntl(Mat F,PetscInt icntl,PetscInt ival) >>>>> { >>>>> PetscErrorCode ierr; >>>>> >>>>> PetscFunctionBegin; >>>>> PetscValidLogicalCollectiveInt(F,icntl,2); >>>>> PetscValidLogicalCollectiveInt(F,ival,3); >>>>> ierr = >>>>> >>>>> >>>>> PetscTryMethod(F,"MatMumpsSetIcntl_C",(Mat,PetscInt,PetscInt),(F,icntl,ival));CHKERRQ(ierr); >>>>> PetscFunctionReturn(0); >>>>> } >>>>> >>>>> At the moment when program crashes call stack looks like: >>>>> >>>>> __libc_memalign, >>>>> FP=7fff342ca010 >>>>> PetscMallocAlign, FP=7fff342ca080 >>>>> PetscTrMallocDefault, FP=7fff342ca180 >>>>> PetscStrallocpy, FP=7fff342ca230 >>>>> PetscFListGetPathAndFunction, FP=7fff342cb2e0 >>>>> PetscFListFind, FP=7fff342cb520 >>>>> PetscObjectQueryFunction_Petsc, FP=7fff342cb590 >>>>> PetscObjectQueryFunction, FP=7fff342cb620 >>>>> MatMumpsSetIcntl, FP=7fff342cb720 >>>>> MatMumpsSetIcntl, FP=7fff342cb820 >>>>> MatMumpsSetIcntl, FP=7fff342cb920 >>>>> MatMumpsSetIcntl, FP=7fff342cba20 >>>>> MatMumpsSetIcntl, FP=7fff342cbb20 >>>>> MatMumpsSetIcntl, FP=7fff342cbc20 >>>>> MatMumpsSetIcntl, FP=7fff342cbd20 >>>>> MatMumpsSetIcntl, FP=7fff342cbe20 >>>>> MatMumpsSetIcntl, FP=7fff342cbf20 >>>>> ... (Hundreds of MatMumpsSetIcntl) ... >>>>> >>>>> What can I do about that? >>>>> >>>>> Regards, >>>>> Alexander >>>
