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 <[email protected]> wrote:
>
>
>> El 19 nov 2017, a las 13:08, Matthew Knepley <[email protected]> escribió:
>>
>> On Sun, Nov 19, 2017 at 4:43 AM, Jose E. Roman <[email protected]> wrote:
>>
>>> El 19 nov 2017, a las 10:16, Praveen C <[email protected]> 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/
>