<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hello, <br></div><div>I work on a Fortran software that uses PETSc for linear solvers. Therefore, we have a PETSc interface to convert our matrices to PETSc Mat. <br></div><div dir="ltr">I have noticed several compiler warnings ( I use gfortran with -Wimplicit-interface)  during compilation. The warnings point out that some (but not all) fortran interfaces are missing.  <br><br>The behaviour is the same when I compile a PETSC example. Below is src/vec/vec/examples/tutorials/ex9f.F compiled with gfortran.  <br><br>mpif90 -c -fPIC -Wall -ffree-line-length-0 
-Wno-unused-dummy-argument -Wimplicit-interface  -g -O    
-I/home/H03755/Librairies/petsc-3.10.1/include 
-I/home/H03755/Librairies/petsc-3.10.1/linux-opt-mumps-ml-hypre-superlu/include
 
-I/home/H03755/dev/codeaster-prerequisites/v14/prerequisites/Mumps-512_consortium_aster3/MPI/include
 -I/home/H03755/local/petsc/petsc-3.10.1/include    -o ex9f.o ex9f.F90<br>ex9f.F90:34.53:<br><br>      call PetscInitialize(PETSC_NULL_CHARACTER,ierr)<br>                                                     1<br>Warning: Procedure 'petscinitialize' called with an implicit interface at (1)<br>ex9f.F90:42.91:<br><br>     
 if (size .ne. 2) then; call PetscError(PETSC_COMM_WORLD,1,0,'Requires 2
 processors'); call MPIU_Abort(PETSC_COMM_WORLD,1); endif<br>                                                                                           1<br>Warning: Procedure 'petscerror' called with an implicit interface at (1)<br>ex9f.F90:42.128:<br><br>     
 if (size .ne. 2) then; call PetscError(PETSC_COMM_WORLD,1,0,'Requires 2
 processors'); call MPIU_Abort(PETSC_COMM_WORLD,1); endif<br>                                                                                                                               
 1<br>Warning: Procedure 'mpiu_abort' called with an implicit interface at (1)<br>ex9f.F90:81.56:<br><br>     &        PETSC_DECIDE,nghost,ifrom,tarray,gxs,ierr)<br>                                                        1<br>Warning: Procedure 'veccreateghostwitharray' called with an implicit interface at (1)<br>ex9f.F90:99.53:<br><br>       call VecGetOwnershipRange(gx,rstart,rend,ierr)<br>                                                     1<br>Warning: Procedure 'vecgetownershiprange' called with an implicit interface at (1)<br>ex9f.F90:115.93:<br><br>       call PetscViewerGetSubViewer(PETSC_VIEWER_STDOUT_WORLD,PETSC_COMM_SELF,subviewer,ierr)<br>                                                                                             1<br>Warning: Procedure 'petscviewergetsubviewer' called with an implicit interface at (1)<br>ex9f.F90:117.97:<br><br>       call PetscViewerRestoreSubViewer(PETSC_VIEWER_STDOUT_WORLD,PETSC_COMM_SELF,subviewer,ierr)<br>                                                                                                 1<br>Warning: Procedure 'petscviewerrestoresubviewer' called with an implicit interface at (1)<br>ex9f.F90:121.31:<br><br>       call PetscFinalize(ierr)<br>                               1<br>Warning: Procedure 'petscfinalize' called with an implicit interface at (1)<br><br><br></div><div>Why does the compiler complain  ? <br></div><div>Did I miss something when I compiled PETSc library ? Is there a way to properly generate all the Fortran interfaces in the compiled library ?<br></div><div>Or is it normal that PETSc only generates some interfaces but not all ? <br></div><div>In this case, is there a way to know which interfaces are explicitly and automatically  defined  in PETSc library ?  So that I can provide manually the missing ones in my code ? <br><br></div><div>Thanks a lot for your help !<br></div><div>Best regards, <br></div><div>Natacha <br> <br><br></div><div><br></div><br></div></div></div>