ierr is of type 'PetscErrorCode' - not 'PetscInt' Perhaps the dmdavecgetarrayf90 issue is also due to the difference in types used for parameters
Satish On Tue, 17 Nov 2015, Randall Mackie wrote: > I ran into a problem yesterday where a call to DMDACreate3d gave an error > message about the size being too big and that I should use > —with-64-bit-indices. > > So I recompiled PETSc (latest version, 3.6.2) with that option, but when I > recompiled my code, I found the following errors: > > > call VecGetArrayF90(vSeqZero,ptr_a,ierr) > 1 > Error: Type mismatch in argument 'ierr' at (1); passed INTEGER(8) to > INTEGER(4) > > call VecRestoreArrayF90(vSeqZero,ptr_a,ierr) > 1 > Error: Type mismatch in argument 'ierr' at (1); passed INTEGER(8) to > INTEGER(4) > > call DMDAVecGetArrayF90(da,J,ptr_j,ierr) > 1 > Error: There is no specific subroutine for the generic 'dmdavecgetarrayf90' > at (1) > > > So strangely, even though all my variables are defined like PetscInt, > PetscReal, etc, VecGetArrayF90 is still expecting a 4 byte integer, which is > easy enough for me to do, but there seems to be a problem with > DMDAVecGetArrayF90. In the meantime, I’ll switch to VecGetArrayF90, and retry > my code, but I thought I’d pass along these error messages. > > > Randy M.