[petsc-users] Compiling program with program files dependencies (SLEPC )

Barry Smith bsmith at mcs.anl.gov
Thu Apr 24 21:58:29 CDT 2014


  Try .F files instead of .F90 some Fortran compilers handle preprocessing in different ways for .F and .F90

   Please also send configure.log and make.log so we know what compilers etc you are using.

  Barry

  Note that we are using C pre processing directives, 

On Apr 24, 2014, at 7:57 PM, Steve Ndengue <steve.ndengue at gmail.com> wrote:

> The results is the same with lower case letters...
> 
> 
> On 04/24/2014 07:39 PM, Matthew Knepley wrote:
>> On Thu, Apr 24, 2014 at 8:36 PM, Steve Ndengue <steve.ndengue at gmail.com> wrote:
>> Thank you for the quick reply.
>> 
>> It partly solved the problem; the PETSC and SLEPC files are now included in the compilation.
>> 
>> However the Warning are now error messages!
>> ***
>> pgm_hatom_offaxis_cyl.F90:880:0: error: invalid preprocessing directive #INCLUDE
>> pgm_hatom_offaxis_cyl.F90:887:0: error: invalid preprocessing directive #IF
>> pgm_hatom_offaxis_cyl.F90:890:0: error: invalid preprocessing directive #ELSE
>> pgm_hatom_offaxis_cyl.F90:893:0: error: invalid preprocessing directive #ENDIF
>> ***
>> 
>> These should not be capitalized.
>> 
>>   Matt
>>  
>> And the corresponding code lines are:
>> ***
>> #INCLUDE <finclude/slepcepsdef.h>
>>         USE slepceps
>> 
>> !
>>  IMPLICIT NONE
>> !----------------------
>> !
>> #IF DEFINED(PETSC_USE_FORTRAN_DATATYPES)
>>         TYPE(Mat)                                          A
>>         TYPE(EPS)                                          solver
>> #ELSE
>>         Mat                                                A
>>         EPS                                                solver
>> #ENDIF
>> ***
>> 
>> Sincerely.
>> 
>> On 04/24/2014 07:25 PM, Satish Balay wrote:
>>> On Thu, 24 Apr 2014, Steve Ndengue wrote:
>>> 
>>> 
>>>> Dear all,
>>>> 
>>>> I am having trouble compiling a code with some dependencies that shall call
>>>> SLEPC.
>>>> The compilation however goes perfectly for the various tutorials and tests in
>>>> the package.
>>>> 
>>>> A sample makefile looks like:
>>>> 
>>>> ***
>>>> 
>>>> /default: code//
>>>> //routines: Rout1.o Rout2.o Rout3.o Module1.o//
>>>> //code: PgmPrincipal//
>>>> //sources=Rout1.f Rout2.f Rout3.f Module1.f90//
>>>> 
>>> Its best to rename your sourcefiles .F/.F90 [and not .f/.f90
>>> [this enables using default targets from petsc makefiles - and its
>>> the correct notation for preprocessing - which is required by petsc/slepc]
>>> 
>>> 
>>>> //objets=Rout1.o Rout2.o Rout3.o Module1.o Pgm//Principal//.o//
>>>> //
>>>> //%.o: %.f//
>>>> //        -${FLINKER} -c $<//
>>>> 
>>> And you shouldn't need to create the above .o.f target.
>>> 
>>> Satish
>>> 
>>> 
>>> 
>>>> //
>>>> //Module1_mod.mod Module1.o: //Module1//.f90//
>>>> //        -${FLINKER} -c //Module1//.f90//
>>>> //
>>>> //include ${SLEPC_DIR}/conf/slepc_common//
>>>> //
>>>> //Pgm//Principal//: ${objets} chkopts//
>>>> //        -${FLINKER} -o $@ ${objets} ${SLEPC_LIB}//
>>>> //
>>>> //.PHONY: clean//
>>>> //        ${RM} *.o *.mod Pgm//Principal//
>>>> /
>>>> ***
>>>> 
>>>> The code exits with Warning and error messages of the type:
>>>> 
>>>> *Warning: Pgm**Principal**.f90:880: Illegal preprocessor directive**
>>>> **Warning: Pgm**Principal**.f90:889: Illegal preprocessor directive**
>>>> **Warning: Pgm**Principal**.f90:892: Illegal preprocessor directive**
>>>> **Warning: Pgm**Principal**.f90:895: Illegal preprocessor directive*
>>>> 
>>>> and
>>>> 
>>>> *USE slepceps**
>>>> **                    1**
>>>> **Fatal Error: Can't open module file 'slepceps.mod' for reading at (1): No
>>>> such file or directory
>>>> 
>>>> 
>>>> *I do not get these errors with the tests and errors files.
>>>> 
>>>> 
>>>> Sincerely,
>>>> 
>>>> 
>>>> 
>> 
>> 
>> -- 
>> Steve 
>> 
>> 
>> 
>> 
>> -- 
>> 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
> 
> 
> -- 
> Steve 
> 
> 
> 



More information about the petsc-users mailing list