[petsc-users] Fortran preprocessor not work in pets-dev

Danyang Su danyang.su at gmail.com
Mon May 8 01:11:09 CDT 2023


Hi Satish,

Exactly. Something went wrong when I pull the remote content last week. I made a clean download of dev version and the problem is solved.

Thanks,

Danyang

On 2023-05-07, 7:14 AM, "Satish Balay" <balay at mcs.anl.gov <mailto:balay at mcs.anl.gov>> wrote:


Perhaps you are not using the latest 'main' (or release) branch?


I get (with current main):


$ mpiexec -n 4 ./petsc_fppflags
compiled by STANDARD_FORTRAN compiler
called by rank 0
called by rank 1
called by rank 2
called by rank 3


There was a issue with early petsc-3.19 release - here one had to reorder the lines from:


FPPFLAGS =
include ${PETSC_DIR}/lib/petsc/conf/variables
include ${PETSC_DIR}/lib/petsc/conf/rules


to


include ${PETSC_DIR}/lib/petsc/conf/variables
include ${PETSC_DIR}/lib/petsc/conf/rules
FPPFLAGS =


But this is fixed in latest release and main branches.


Satish


On Sun, 7 May 2023, Danyang Su wrote:


> Hi Satish,
> 
> Sorry, this is a typo when copy to the email. I use FPPFLAGS in the makefile. Not sure why this occurs.
> 
> Actually not only the preprocessor fails, the petsc initialize does not work either. Attached is a very simple fortran code and below is the test results. Looks like the petsc is not properly installed. I am working on macOS Monterey version 12.5 (Intel Xeon W processor).
> 
> Compiled using petsc-3.18
> (base) ➜ petsc-dev-fppflags mpiexec -n 4 ./petsc_fppflags
> compiled by STANDARD_FORTRAN compiler
> called by rank 0
> called by rank 1
> called by rank 2
> called by rank 3
> 
> compiled using petsc-dev
> (base) ➜ petsc-dev-fppflags mpiexec -n 4 ./petsc_fppflags
> called by rank 2
> called by rank 2
> called by rank 2
> called by rank 2
> 
> Thanks,
> 
> Danyang
> 
> On 2023-05-06, 10:22 PM, "Satish Balay" <balay at mcs.anl.gov <mailto:balay at mcs.anl.gov> <mailto:balay at mcs.anl.gov <mailto:balay at mcs.anl.gov>>> wrote:
> 
> 
> On Sat, 6 May 2023, Danyang Su wrote:
> 
> 
> > Hi All,
> > 
> > 
> > 
> > My code has some FPP. It works fine in PETSc 3.18 and earlier version, but stops working in the latest PETSc-Dev. For example the following FPP STANDARD_FORTRAN is not recognized. 
> > 
> > 
> > 
> > #ifdef STANDARD_FORTRAN
> > 
> > 1 format(15x,1000a15)
> > 
> > 2 format(1pe15.6e3,1000(1pe15.6e3))
> > 
> > #else
> > 
> > 1 format(15x,<ncol>a15) 
> > 
> > 2 format(1pe15.6e3,<ncol>(1pe15.6e3))
> > 
> > #endif
> > 
> > 
> > 
> > In the makefile, I define the preprocessor as PPFLAGS.
> > 
> > 
> > 
> > PPFLAGS := -DLINUX -DRELEASE -DRELEASE_X64 -DSTANDARD_FORTRAN
> 
> 
> Shouldn't this be FPPFLAGS?
> 
> 
> 
> 
> Can you send us a simple test case [with the makefile] that we can try to demonstrate this problem?
> 
> 
> Satish
> 
> 
> > 
> > …
> > 
> > exe: $(OBJS) chkopts
> > 
> > -${FLINKER} $(FFLAGS) $(FPPFLAGS) $(CPPFLAGS) -o $(EXENAME) $(OBJS) ${PETSC_LIB} ${LIS_LIB} ${DLIB} ${SLIB}
> > 
> > 
> > 
> > Any idea on this problem?
> > 
> > 
> > 
> > All the best,
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 






More information about the petsc-users mailing list