[Scilab-Dev] Question about partial fix of bug #15523
Stéphane Mottelet
stephane.mottelet at utc.fr
Thu Apr 12 12:30:55 CEST 2018
I have another question: the fix for 'rk' and 'rkf'
(http://bugzilla.scilab.org/15523) will be visible only if
http://bugzilla.scilab.org/15527 is solved before.
However, I have proposed the fix for bug 15527 in 6.0 as this bug really
breaks ode. So please tell me if you want to
-group fixes for bugs 15523, 1527 for master or
-fix bug 15527 in 6.0, wait for weekly 6.0->master merge, then fix bug
15523 on master
In any case
https://codereview.scilab.org/#/c/19946/
needs a review from the team.
S.
Le 12/04/2018 à 11:39, Clément David a écrit :
> Hello Stéphane,
>
> As this change can have an impact on existing code (even if the previous is incorrect) could please
> fix it in master ?
>
> Thanks,
>
> --
> Clément
>
> Le mercredi 11 avril 2018 à 15:40 +0200, Stéphane Mottelet a écrit :
>> I forgot to give the path to the source file:
>>
>> scilab/modules/differential_equations/src/fortran/rkf45.f
>>
>> Le 11/04/2018 à 15:36, Stéphane Mottelet a écrit :
>>> Hello devs,
>>>
>>> As I said in http://bugzilla.scilab.org/show_bug.cgi?id=15523#c4,
>>> there is a an easy fix to repair mode %ODEOPTIONS(1)=2 for the "rkf"
>>> solver. In fact, lines 189-90 of this file
>>>
>>> if(itask.eq.1) then iflag=1
>>> if(itask.eq.2) then iflag=-1
>>>
>>> appear as completely *dumb* as fortran compilers (at least gfortran on
>>> OSX) silently ignore the code following a "then" on the same line. The
>>> following program :
>>>
>>> program dumb_program
>>> flag=0
>>> if (flag.eq.0) then flag=1/flag
>>> print *,flag
>>> end program dumb_program
>>>
>>> gives the output
>>>
>>> 0.00000000
>>>
>>> Even by using -Wall no warning is produced at compilation. Anyway,
>>> there are only two allowed forms:
>>>
>>> -short form:
>>>
>>> if (flag.eq.0) flag=1/flag
>>>
>>> -long form:
>>>
>>> if (flag.eq.0) then
>>> flag=1/flag
>>> endif
>>>
>>> And the fixed program works as expected
>>>
>>> program dumb_program
>>> flag=0
>>> if (flag.eq.0) flag=1/flag
>>> print *,flag
>>> end program dumb_program
>>>
>>> as the output is
>>>
>>> Infinity
>>>
>>> Hence, my question is: can I create a small patch for "rkf" solver,
>>> commited to 6.0 branch, and keep the improvements to 'rk' solver for
>>> master ?
>>>
>>> S.
>>>
>>>
>>
> _______________________________________________
> dev mailing list
> dev at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/dev
--
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet
More information about the dev
mailing list