[Scilab-Dev] Question about partial fix of bug #15523
Stéphane Mottelet
stephane.mottelet at utc.fr
Wed Apr 11 15:36:49 CEST 2018
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.
--
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