[petsc-users] AIJ ftn-kernels update

Vijay S. Mahadevan vijay.m at gmail.com
Tue Feb 3 17:38:52 CST 2015


When using configure options: --with-fortran-kernels=1
--with-fortran=1, the build fails with the following errors.

/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c: In function
'PetscErrorCode MatMultTransposeAdd_SeqAIJ(Mat, Vec, Vec, Vec)':
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1265:52: error:
invalid conversion from 'const void*' to 'void*' [-fpermissive]
   fortranmulttransposeaddaij_(&m,x,a->i,a->j,a->a,y);
                                                    ^
In file included from
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1240:0:
/home/vijaysm/code/petsc/include/../src/mat/impls/aij/seq/ftn-kernels/fmult.h:14:19:
error:   initializing argument 2 of 'void
fortranmulttransposeaddaij_(PetscInt*, void*, PetscInt*, PetscInt*,
void*, void*)' [-fpermissive]
 PETSC_EXTERN void
fortranmulttransposeaddaij_(PetscInt*,void*,PetscInt*,PetscInt*,void*,void*);
                   ^
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c: In function
'PetscErrorCode MatMultAdd_SeqAIJ(Mat, Vec, Vec, Vec)':
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1601:41: error:
invalid conversion from 'const PetscInt* {aka const int*}' to
'PetscInt* {aka int*}' [-fpermissive]
     fortranmultaddaij_(&m,x,ii,aj,aa,y,z);
                                         ^
In file included from
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1562:0:
/home/vijaysm/code/petsc/include/../src/mat/impls/aij/seq/ftn-kernels/fmultadd.h:11:19:
error:   initializing argument 3 of 'void
fortranmultaddaij_(PetscInt*, const void*, PetscInt*, PetscInt*, const
MatScalar*, void*, void*)' [-fpermissive]
 PETSC_EXTERN void fortranmultaddaij_(PetscInt*,const
void*,PetscInt*,PetscInt*,const MatScalar*,void*,void*);
                   ^
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1601:41: error:
invalid conversion from 'const PetscInt* {aka const int*}' to
'PetscInt* {aka int*}' [-fpermissive]
     fortranmultaddaij_(&m,x,ii,aj,aa,y,z);
                                         ^
In file included from
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/aij.c:1562:0:
/home/vijaysm/code/petsc/include/../src/mat/impls/aij/seq/ftn-kernels/fmultadd.h:11:19:
error:   initializing argument 4 of 'void
fortranmultaddaij_(PetscInt*, const void*, PetscInt*, PetscInt*, const
MatScalar*, void*, void*)' [-fpermissive]
 PETSC_EXTERN void fortranmultaddaij_(PetscInt*,const
void*,PetscInt*,PetscInt*,const MatScalar*,void*,void*);
                   ^
         CXX standalone_test/obj/src/mat/impls/aij/seq/cholmod/aijcholmod.o
         CXX standalone_test/obj/src/mat/impls/aij/seq/ftn-auto/aijf.o
         CXX standalone_test/obj/src/mat/impls/aij/seq/crl/crl.o
gmake[2]: *** [standalone_test/obj/src/mat/impls/aij/seq/aij.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/crl/crl.c: In function
'PetscErrorCode MatMult_AIJCRL(Mat, Vec, Vec)':
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/crl/crl.c:133:43:
error: invalid conversion from 'const PetscScalar* {aka const
double*}' to 'PetscScalar* {aka double*}' [-fpermissive]
   fortranmultcrl_(&m,&rmax,x,y,icols,acols);
                                           ^
In file included from
/home/vijaysm/code/petsc/src/mat/impls/aij/seq/crl/crl.c:94:0:
/home/vijaysm/code/petsc/include/../src/mat/impls/aij/seq/crl/ftn-kernels/fmultcrl.h:10:19:
error:   initializing argument 3 of 'void fortranmultcrl_(PetscInt*,
PetscInt*, PetscScalar*, PetscScalar*, PetscInt*, PetscScalar*)'
[-fpermissive]
 PETSC_EXTERN void
fortranmultcrl_(PetscInt*,PetscInt*,PetscScalar*,PetscScalar*,PetscInt*,PetscScalar*);
                   ^
gmake[2]: *** [standalone_test/obj/src/mat/impls/aij/seq/crl/crl.o] Error 1

Looks like some const related changes in the API didn't propagate onto
the fortran kernels. The attached patch fixes it. If you need any
logs, let me know.

Vijay
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ftnkernel_const_fix.patch
Type: text/x-patch
Size: 1764 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150203/392b519b/attachment.bin>


More information about the petsc-users mailing list