MPICH error when using petsc-3.0.0-p4

Wee-Beng TAY zonexo at gmail.com
Sun Apr 12 11:02:52 CDT 2009


Hi Satish,

I now used

#include "finclude/petsc.h"
#include "finclude/petscvec.h"
#include "finclude/petscmat.h"
#include "finclude/petscksp.h"
#include "finclude/petscpc.h"
#include "finclude/petscsys.h"

for global.F and

#include "finclude/petscdef.h"
#include "finclude/petscvecdef.h"
#include "finclude/petscmatdef.h"
#include "finclude/petsckspdef.h"
#include "finclude/petscpcdef.h"

for flux_area.f90 and it's working now. Can you explain what's 
happening? Is this the correct way then?

Thank you very much and have a nice day!

Yours sincerely,

Wee-Beng Tay



Satish Balay wrote:
> 2 changes you have to make for 3.0.0
>
> 1. "include/finclude.. -> "finclude..."
>
> 2. PETSC_AVOID_DECLARATIONS should be removed - and use petscdef.h
> equivalnet files.
> i.e
>
> change:
> #define PETSC_AVOID_DECLARATIONS
> #include "include/finclude/petsc.h"
> #include "include/finclude/petscvec.h"
> #include "include/finclude/petscmat.h"
> #include "include/finclude/petscksp.h"
> #include "include/finclude/petscpc.h"
> #undef PETSC_AVOID_DECLARATIONS
>
> to:
> #include "finclude/petscdef.h"
> #include "finclude/petscvecdef.h"
> #include "finclude/petscmatdef.h"
> #include "finclude/petsckspdef.h"
> #include "finclude/petscpcdef.h"
>
> Satish
>
> On Sun, 12 Apr 2009, Wee-Beng TAY wrote:
>
>   
>> Hi Satish,
>>
>> I am now using the PETSc ex2f example. I tried "make ex2f" and manage to build
>> and run the file. Then I used the options as a reference for my visual fortran
>> and it worked.
>>
>> The options are:
>>
>> /compile_only /debug:full /include:"Debug/"
>> /include:"d:\cygwin\codes\petsc-3.0.0-p4\win32_mpi_debug\include"
>> /include:"d:\cygwin\codes\petsc-3.0.0-p4\include"
>> /include:"E:\cygwin\codes\MPICH\SDK\include" /nologo /threads /warn:nofileopt
>> /module:"Debug/" /object:"Debug/" /pdbfile:"Debug/DF60.PDB" /fpp:"/m"
>>
>> and
>>
>> ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
>> advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib
>> odbccp32.lib libpetscts.lib libpetscsnes.lib libpetscksp.lib libpetscdm.lib
>> libpetscmat.lib libpetscvec.lib libpetsc.lib mpich.lib libfblas.lib
>> libflapack.lib /nologo /subsystem:console /incremental:yes
>> /pdb:"Debug/ex2f.pdb" /debug /machine:I386 /out:"Debug/ex2f.exe" /pdbtype:sept
>> /libpath:"d:\cygwin\codes\petsc-3.0.0-p4\win32_mpi_debug\lib"
>> /libpath:"E:\cygwin\codes\MPICH\SDK\lib"
>>
>> Now I add my own file called global.F and tried to compile, using the same
>> options.But now it failed. The error is:
>>
>> --------------------Configuration: ex2f - Win32 Debug--------------------
>> Compiling Fortran...
>> ------------------------------------------------------------------------
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F:
>>    7: #include "include/finclude/petsc.h"
>>        ^
>> ** error  on line 7 in D:\cygwin\codes\pets: cannot find file specified
>>     in include directive.
>>    8: #include "include/finclude/petscvec.h"
>>        ^
>> ** error  on line 8 in D:\cygwin\codes\pets: cannot find file specified
>>     in include directive.
>>    9: #include "include/finclude/petscmat.h"
>>        ^
>> ** error  on line 9 in D:\cygwin\codes\pets: cannot find file specified
>>     in include directive.
>>   10: #include "include/finclude/petscksp.h"
>>        ^
>> ** error  on line 10 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>   11: #include "include/finclude/petscpc.h"
>>        ^
>> ** error  on line 11 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>   12: #include "include/finclude/petscsys.h"
>>        ^
>> ** error  on line 12 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>   97: #include "include/finclude/petsc.h"
>>        ^
>> ** error  on line 97 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>   98: #include "include/finclude/petscvec.h"
>>        ^
>> ** error  on line 98 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>   99: #include "include/finclude/petscmat.h"
>>        ^
>> ** error  on line 99 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>  100: #include "include/finclude/petscksp.h"
>>        ^
>> ** error  on line 100 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>  101: #include "include/finclude/petscpc.h"
>>        ^
>> ** error  on line 101 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>>  102: #include "include/finclude/petscsys.h"
>>        ^
>> ** error  on line 102 in D:\cygwin\codes\pets: cannot find file
>>     specified in include directive.
>> global.i
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(65) : Error:
>> Syntax error, found ',' when expecting one of: ( : % . = =>
>> Vec    xx,b_rhs,xx_uv,b_rhs_uv
>> -----------------^
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(67) : Error:
>> Syntax error, found ',' when expecting one of: ( : % . = =>
>> Mat    A_mat,A_mat_uv    !  /* sparse matrix */
>> --------------------^
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(69) : Error:
>> Syntax error, found ',' when expecting one of: ( : % . = =>
>> KSP   ksp,ksp_uv    !/* linear solver context */
>> -----------------^
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(71) : Error:
>> Syntax error, found ',' when expecting one of: ( : % . = =>
>> PC pc,pc_uv
>> ------------------^
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(73) : Error:
>> Syntax error, found END-OF-STATEMENT when expecting one of: ( : % . = =>
>> PCType      ptype
>> -------------------------^
>> D:\cygwin\codes\petsc-3.0.0-p4\projects\fortran\ksp\ex2f\global.F(75) : Error:
>> Syntax error, found END-OF-STATEMENT when expecting one of: ( : % . = =>
>> KSPType  ksptype....
>>
>>
>> I can get it to compile if I use :
>>
>> Debug/;d:\cygwin\codes\petsc-3.0.0-p4;d:\cygwin\codes\petsc-3.0.0-p4\include;d:\cygwin\codes\petsc-3.0.0-p4\win32_mpi_debug\include;E:\cygwin\codes\MPICH\SDK\include
>>
>> Compared to the original one above which is:
>>
>> Debug/;d:\cygwin\codes\petsc-3.0.0-p4\win32_mpi_debug\include;d:\cygwin\codes\petsc-3.0.0-p4\include;E:\cygwin\codes\MPICH\SDK\include
>>
>> Hence, there is an additional "d:\cygwin\codes\petsc-3.0.0-p4"
>>
>> I have attached my global.F. I wonder if this is the cause of the MPICH error.
>>
>> Currently, I have removed all other f90 files, except for global.F and
>> flux_area.f90. It's when I 'm compiling flux_area.f90 that I got the MPI error
>> stated below. I got the same error if I compile under cygwin using the same
>> parameters.
>>
>> Hope you can help.
>>
>> Thank you very much and have a nice day!
>>
>> Yours sincerely,
>>
>> Wee-Beng Tay
>>
>>
>>
>> Satish Balay wrote:
>>     
>>> Do you get these errors with PETSc f90 examples?
>>>
>>> what 'USE statement' do you have in your code?
>>>
>>> I guess you'll have to check your code to see how you are using f90
>>> modules/includes.
>>>
>>> If you can get a minimal compileable code that can reproduce this
>>> error - send us the code so that we can reproduce the issue
>>>
>>> Satish
>>>
>>> On Thu, 9 Apr 2009, Wee-Beng TAY wrote:
>>>
>>>   
>>>       
>>>> Hi,
>>>>
>>>> I just built petsc-3.0.0-p4 with mpich and after that, I reinstalled my
>>>> windows xp and installed mpich in the same directory. I'm using CVF
>>>>
>>>> Now, I found that when I'm trying to compile my code, I got the error:
>>>>
>>>> :\cygwin\codes\MPICH\SDK\include\mpif.h(105) : Error: The attributes of
>>>> this
>>>> name conflict with those made accessible by a USE statement.
>>>> [MPI_STATUS_SIZE]
>>>>      INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
>>>> --------------------------------^
>>>> E:\cygwin\codes\MPICH\SDK\include\mpif.h(106) : Error: The attributes of
>>>> this
>>>> name conflict with those made accessible by a USE statement.
>>>> [MPI_STATUS_SIZE]
>>>>      INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE)
>>>> ----------------------------------^
>>>> E:\cygwin\codes\petsc-3.0.0-p4\include/finclude/petsc.h(154) : Error: The
>>>> attributes of this name conflict with those made accessible by a USE
>>>> statement.   [MPI_DOUBLE_PRECISION]
>>>>      parameter(MPIU_SCALAR = MPI_DOUBLE_PRECISION)
>>>> ------------------------------^
>>>> Error executing df.exe.
>>>>
>>>> flux_area.obj - 3 error(s), 0 warning(s)
>>>>
>>>> My include option is :
>>>>
>>>> Debug/;$(PETSC_DIR);$(PETSC_DIR)\$(PETSC_ARCH)\;$(PETSC_DIR)\$(PETSC_ARCH)\include;$(PETSC_DIR)\include;E:\cygwin\codes\MPICH\SDK\include
>>>>
>>>>
>>>> Interestingly, when I change my PETSC_DIR to petsc-dev, which correspond
>>>> to an
>>>> old build of petsc-2.3.3-p13, there is no problem.
>>>>
>>>> May I know what's wrong? Btw, I've converted my mpif.h from using "C" as
>>>> comments to "!".
>>>>
>>>> Thank you very much and have a nice day!
>>>>
>>>> Yours sincerely,
>>>>
>>>> Wee-Beng Tay
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>
>
>   


More information about the petsc-users mailing list