[R-pkg-devel] is Fortran write still strictly forbidden?
Berend Hasselman
bhh @end|ng |rom x@4@||@n|
Thu May 9 13:08:10 CEST 2024
Hi,
Have a look at package nleqslv to see how you can avoid Fortran write completely.
Look at the file src/nwout.c and the calls of various functions therein in the other fortran files.
regards,
Berend Hasselman
> On 08-05-2024, at 10:37, Jisca Huisman <jisca.huisman using gmail.com> wrote:
>
> Hello,
>
> I like to use write() in Fortran code to combine text with some integers
> & doubles, to pass runtime information to R in a way that is prettier
> and more legible than with intpr() & dblepr(). In the past any calls to
> write() were strictly forbidden in Fortran code, as apparently it messed
> something up internally (I cannot recall the details). But from 'writing
> R extensions' it seems that there have been quite a few changes with
> respect to support for Fortran code, and it currently reads:
>
>
> 6.5.1 Printing from Fortran
>
> On many systems Fortran|write|and|print|statements can be used, but the
> output may not interleave well with that of C, and may be invisible
> onGUIinterfaces. They are not portable and best avoided.
>
>
> To be more specific, would the subroutine below be allowed? Is it needed
> to declare R >= 4.0 (?) in the package DESCRIPTION (& then use labelpr()
> instead of intpr() ?) Is there an alternative without write() to get the
> same result?
>
>
> subroutine Rprint_pretty(iter, x)
> integer, intent(IN) :: iter
> double precision, intent(IN) :: x
> integer :: date_time_values(8), nchar, IntDummy(0)
> character(len=8) :: time_now
> character(len=200) :: msg_to_R
>
> call date_and_time(VALUES=date_time_values)
> write(time_now, '(i2.2,":",i2.2,":",i2.2)') date_time_values(5:7)
> write(msg_to_R, '(a8, " i: ", i5, " value: ", f8.2)') time_now,
> iter, x
>
> nchar = len(trim(msg_to_R))
> call intpr(trim(msg_to_R), nchar, IntDummy, 0)
>
> end subroutine Rprint_pretty
>
>
> Thanks!
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
More information about the R-package-devel
mailing list