Re: gtk_init breaks fortran data operation



Yes, you are right. Adding
>setlocale(LC_NUMERIC, "en_US.utf8");
after gtk_init solved the problem.
Thanks a lot!

28.11.2010 17:58, Jean Bréfort пишет:
> gtk_init sets the locale. I suppose that the data file contains the
> numbers as strings. If your locale uses a comma as decimal separator,
> the parser can't interpret the dot and just loads the integer part of
> the first number.
>
> Regards,
> Jean
>
> Le dimanche 28 novembre 2010 à 17:20 +0300, Alexander Varnin a écrit :
>> Hello.
>> I'm writing an application, that combines GTK calls (from C source)
>> and fortran subroutine.
>> Behavior of subroutine depends on when it gets called - before
>> gtk_init or after.
>> If it is called before gtk_init, subroutine works OK. If subroutine is
>> called after gtk_init, fortran behaves very strange: it reads floating
>> point value from file, but it gets only integer part of it. In first,
>> correct case, it reads normal floating point value.
>>
>> Code
>>> printf("This call is correct:\n");
>>> main_in_ ();
>>> gtk_init (&args_length1, &args);
>>> printf("And this is already broken:\n");
>>> main_in_ ();
>> Gives following output
>>> This call is correct:
>>> dt ==   7.30000019E-11
>>> And this is already broken:
>>> dt ==    7.0000000 
>> Why does gtk_init affect fortran way of reading value? How it can be
>> fixed?
>> Small testcase attached.
>> _______________________________________________
>> gtk-list mailing list
>> gtk-list gnome org
>> http://mail.gnome.org/mailman/listinfo/gtk-list
>
>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]