[petsc-users] Problem compiling with 64bit PETSc

TAY wee-beng zonexo at gmail.com
Fri Aug 31 00:52:12 CDT 2018


Hi Randy,

I was about to email why it didn't work even after changing them to 
PetscInt. Then I realise that ierr should be defined as PetscErrorCode.

Thank you very much.

Yours sincerely,

================================================
TAY Wee-Beng (Zheng Weiming) 郑伟明
Personal research webpage: http://tayweebeng.wixsite.com/website
Youtube research showcase: https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
linkedin: www.linkedin.com/in/tay-weebeng
================================================

On 31/8/2018 11:36 AM, Randall Mackie wrote:
> Don’t forget that not all integers passed into PETSc routines are 64 bit.
> For example, the error codes when called from Fortran should be 
> defined as PetscErrorCode and not PetscInt.
> It’s really good to get into the habit of correctly declaring all 
> PETSc variables according to the web pages, so that you can easily 
> switch between 32bit and 64bit integers.
>
> Randy
>
>
>> On Aug 30, 2018, at 7:43 PM, Smith, Barry F. <bsmith at mcs.anl.gov 
>> <mailto:bsmith at mcs.anl.gov>> wrote:
>>
>>
>>
>>> On Aug 30, 2018, at 9:40 PM, TAY wee-beng <zonexo at gmail.com 
>>> <mailto:zonexo at gmail.com>> wrote:
>>>
>>>
>>> On 31/8/2018 10:38 AM, Smith, Barry F. wrote:
>>>>  PetscReal is by default real(8) you can leave those alone
>>>>
>>>>   Any integer you pass to a PETSc routine needs to be declared as 
>>>> PetscInt (not integer) otherwise the 64 bit indices stuff won't work.
>>>>
>>>>   Barry
>>>>
>>> Hi,
>>>
>>> ok, I got it. Btw, is it advisable to change all integer in my code 
>>> to PetscInt?
>>>
>>> Will it cause any conflict or waste a lot of memory?
>>>
>>> Or should I only change those related to PETSc?
>>
>>    That is up to you. Since you probably pass the values between 
>> PETSc and non-PETSc part of the code it is probably easier just to 
>> make all the integer PetscInt instead. No performance difference that 
>> you can measure by keeping a few integer around.
>>
>>    Barry
>>
>>>
>>> Thanks!
>>>>> On Aug 30, 2018, at 9:35 PM, TAY wee-beng <zonexo at gmail.com 
>>>>> <mailto:zonexo at gmail.com>> wrote:
>>>>>
>>>>>
>>>>> On 31/8/2018 10:21 AM, Matthew Knepley wrote:
>>>>>> On Thu, Aug 30, 2018 at 10:17 PM TAY wee-beng <zonexo at gmail.com 
>>>>>> <mailto:zonexo at gmail.com>> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Due to my increase grid size, I have to go 64bit. I compiled the 
>>>>>> 64bit
>>>>>> PETSc w/o error. However, when I tried to compile my code using the
>>>>>> 64bit PETSc, I got the error below. May I know why is this so?
>>>>>>
>>>>>> What changes should I make?
>>>>>>
>>>>>> Is it possible that you did not declare some inputs as PetscInt, 
>>>>>> so the interface check is failing?
>>>>>>
>>>>>>   Matt
>>>>> Hi,
>>>>>
>>>>> I'm using the standard
>>>>>
>>>>> integer ::
>>>>>
>>>>> real(8) ::
>>>>>
>>>>> for some variables. For some others relating to PETSc, I use PetscInt.
>>>>>
>>>>> Should I change all to PetscInt and PetscReal?
>>>>>
>>>>> Currently, I use real(8) for all real values. If I change all to 
>>>>> PetscReal, will PetscReal be real or real(8) by default?
>>>>>
>>>>> Thanks!
>>>>>>
>>>>>> [tsltaywb at nus02 ibm3d_IIB_mpi]$ make -f makefile_2018
>>>>>> /app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90
>>>>>> -g -ip -ipo -O3 -c -fPIC  -save kinefunc.F90
>>>>>> /app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/bin/mpif90
>>>>>> -g -ip -ipo -O3 -c -fPIC  -save  -w
>>>>>> -I/home/users/nus/tsltaywb/propeller/lib/petsc-3.9.3_intel_2018_64bit_rel/include
>>>>>> -I/app/intel/xe2018/compilers_and_libraries_2018.0.128/linux/mpi/intel64/include
>>>>>> global.F90
>>>>>> global.F90(979): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>> call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> -----^
>>>>>> global.F90(989): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> global.F90(997): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> global.F90(1005): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> global.F90(1013): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> global.F90(1021): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> global.F90(1029): error #6285: There is no matching specific 
>>>>>> subroutine
>>>>>> for this generic subroutine call.   [DMDACREATE3D]
>>>>>>     call
>>>>>> DMDACreate3d(MPI_COMM_WORLD,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DMDA_STENCIL_STAR,size_x,size_y,&
>>>>>> ---------^
>>>>>> compilation aborted for global.F90 (code 1)
>>>>>>
>>>>>> --
>>>>>> Thank you very much.
>>>>>>
>>>>>> Yours sincerely,
>>>>>>
>>>>>> ================================================
>>>>>> TAY Wee-Beng (Zheng Weiming) 郑伟明
>>>>>> Personal research webpage: http://tayweebeng.wixsite.com/website
>>>>>> Youtube research showcase: 
>>>>>> https://www.youtube.com/channel/UC72ZHtvQNMpNs2uRTSToiLA
>>>>>> linkedin: www.linkedin.com/in/tay-weebeng 
>>>>>> <http://www.linkedin.com/in/tay-weebeng>
>>>>>> ================================================
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> What most experimenters take for granted before they begin their 
>>>>>> experiments is infinitely more interesting than any results to 
>>>>>> which their experiments lead.
>>>>>> -- Norbert Wiener
>>>>>>
>>>>>> https://www.cse.buffalo.edu/~knepley/ 
>>>>>> <https://www.cse.buffalo.edu/%7Eknepley/>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20180831/58f2a449/attachment-0001.html>


More information about the petsc-users mailing list