[petsc-users] Compilation error with ifort: invalid return statement in main
Smith, Barry F.
bsmith at mcs.anl.gov
Sun Nov 19 09:48:55 CST 2017
In some of the Fortran examples we have code like
call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
if (ierr .ne. 0) then
print*,'Unable to initialize PETSc'
stop
endif
Eventually we should update all the examples with this, or something even better.
Barry
> On Nov 19, 2017, at 6:12 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
>
>
>> El 19 nov 2017, a las 13:08, Matthew Knepley <knepley at gmail.com> escribió:
>>
>> On Sun, Nov 19, 2017 at 4:43 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
>>
>>> El 19 nov 2017, a las 10:16, Praveen C <cpraveen at gmail.com> escribió:
>>>
>>> Dear all
>>>
>>> In the main program, if I have a line like
>>>
>>> call PetscInitialize('param.in', ierr); CHKERRQ(ierr)
>>>
>>> compiling with mpifort gives
>>>
>>> main.f95(17): error #6353: A RETURN statement is invalid in the main program.
>>> call PetscInitialize('param.in', ierr); if (ierr .ne. 0) then ; call PetscErrorF(ierr); return; endif
>>> —————————————————————————————————————————————^
>>>
>>> It compiles fine with gfortran. What can I do for the ifort case ?
>>>
>>> Thanks
>>> praveen
>>
>> Use CHKERRA(ierr) in the main program and CHKERRQ(ierr) in the subroutines.
>>
>> On the other hand, you should not use CHKERRA(ierr) after PetscInitialize
>>
>> Do you mean after PetscFinalize()? You should not call any PETSc functions after this.
>
> I mean to check the error code returned by PetscInitialize().
> In C examples it is done this way
> ierr = PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr;
> instead of with CHKERRQ.
>
>>
>> Thanks,
>>
>> Matt
>>
>> because it assumes that MPI has been correctly initialized.
>>
>> Jose
>>
>>
>>
>>
>> --
>> 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/
>
More information about the petsc-users
mailing list