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@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/dev

Reply via email to