Yeah - likely the reason why we default to using 'gfortran -ffree-line-length-none -ffree-line-length-0'
> include/petsc/finclude/petscsysbase.h:#define PetscCallA(func) call func; > CHKERRA(ierr) so if you are using regular "call" with line continuation, use: call DMDACreate3D(PETSC_COMM_WORLD,& DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,& DMDA_STENCIL_STAR,three,three,three,& PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,& one,& ! number of degrees of freedom per node one,& ! stencil width PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_INTEGER_ARRAY,& dm, & ! Output -- the resulting distributed array object ierr) CHKERRA(ierr) Satish On Fri, 28 Mar 2025, Zhao-Yi Yan wrote: > Dear Developers, > > > I am a Fortran programmer, and find the continue line symbol "&" in fortran > fails to work when I call the routine with PetscCallA, for example > > > The code like this > > > " PetscCallA DMDACreate3D(PETSC_COMM_WORLD,& > DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,DM_BOUNDARY_NONE,& > DMDA_STENCIL_STAR,three,three,three,& > PETSC_DECIDE,PETSC_DECIDE,PETSC_DECIDE,& > one,& ! number of degrees of freedom per node > one,& ! stencil width > > PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_INTEGER_ARRAY,PETSC_NULL_INTEGER_ARRAY,& > dm, & ! Output -- the resulting distributed array object > ierr) > " > > > could NOT pass the compiler, which would report error that > > > call DMDACreate3D(PETSC_COMM_WORLD, & DM_BOUNDARY_NONE,DM_BOUNDARY_NON > 1 > Error: Syntax error in argument list at (1) > > > A simple work-around method is to replace PetscCallA with a regular call, > which means maybe there are something wrong within PetscCallA. > > > > > > Related information: > Petsc Release Version 3.22.4 > Linux mgt1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 > x86_64 x86_64 GNU/Linux > > > Best regards, > | | > Zhao-Yi Yan > | > | > 13971216...@163.com > |