### 58.1 Package f90

Categories:Share packages ·Package f90 ·

Option variable: f90_output_line_length_max

  Default value: 65

  `f90_output_line_length_max` is the maximum number of characters of Fortran code which are output by `f90` per line. Longer lines of code are divided, and printed with an ampersand `&` at the end of an output line and an ampersand at the beginning of the following line.

  `f90_output_line_length_max` must be a positive integer.

  Example:

      (%i1) load ("f90")$
      (%i2) foo : expand ((xxx + yyy + 7)^4);
               4            3         3        2    2             2
      (%o2) yyy  + 4 xxx yyy  + 28 yyy  + 6 xxx  yyy  + 84 xxx yyy
                2        3             2
       + 294 yyy  + 4 xxx  yyy + 84 xxx  yyy + 588 xxx yyy + 1372 yyy
            4         3          2
       + xxx  + 28 xxx  + 294 xxx  + 1372 xxx + 2401
      (%i3) f90_output_line_length_max;
      (%o3)                          65
      (%i4) f90 ('foo = foo);
      foo = yyy**4+4*xxx*yyy**3+28*yyy**3+6*xxx**2*yyy**2+84*xxx*yyy**2&
      &+294*yyy**2+4*xxx**3*yyy+84*xxx**2*yyy+588*xxx*yyy+1372*yyy+xxx**&
      &4+28*xxx**3+294*xxx**2+1372*xxx+2401
      (%o4)                         false
      (%i5) f90_output_line_length_max : 40 $
      (%i6) f90 ('foo = foo);
      foo = yyy**4+4*xxx*yyy**3+28*yyy**3+6*xx&
      &x**2*yyy**2+84*xxx*yyy**2+294*yyy**2+4*x&
      &xx**3*yyy+84*xxx**2*yyy+588*xxx*yyy+1372&
      &*yyy+xxx**4+28*xxx**3+294*xxx**2+1372*xx&
      &x+2401
      (%o6)                         false

  Categories:Global variables ·Translation and compilation ·Package f90 ·

Function: f90 (expr_1, …, expr_n)

  Prints one or more expressions expr_1, …, expr_n as a Fortran 90 program. Output is printed to the standard output.

  `f90` prints output in the so-called "free form" input format for Fortran 90: there is no special attention to column positions. Long lines are split at a fixed width with the ampersand `&` continuation character; the number of output characters per line, not including ampersands, is specified by `f90_output_line_length_max`. `f90` outputs an ampersand at the end of a split line and another at the beginning of the next line.

  `load("f90")` loads this function. See also the function `fortran`.

  Examples:

      (%i1) load ("f90")$
      (%i2) foo : expand ((xxx + yyy + 7)^4);
               4            3         3        2    2             2
      (%o2) yyy  + 4 xxx yyy  + 28 yyy  + 6 xxx  yyy  + 84 xxx yyy
                2        3             2
       + 294 yyy  + 4 xxx  yyy + 84 xxx  yyy + 588 xxx yyy + 1372 yyy
            4         3          2
       + xxx  + 28 xxx  + 294 xxx  + 1372 xxx + 2401
      (%i3) f90 ('foo = foo);
      foo = yyy**4+4*xxx*yyy**3+28*yyy**3+6*xxx**2*yyy**2+84*xxx*yyy**2&
      &+294*yyy**2+4*xxx**3*yyy+84*xxx**2*yyy+588*xxx*yyy+1372*yyy+xxx**&
      &4+28*xxx**3+294*xxx**2+1372*xxx+2401
      (%o3)                         false

  Multiple expressions. Capture standard output into a file via the `with_stdout` function.

      (%i1) load ("f90")$
      (%i2) foo : sin (3*x + 1) - cos (7*x - 2);
      (%o2)              sin(3 x + 1) - cos(7 x - 2)
      (%i3) with_stdout ("foo.f90",
                         f90 (x=0.25, y=0.625, 'foo=foo, 'stop, 'end));
      (%o3)                         false
      (%i4) printfile ("foo.f90");
      x = 0.25
      y = 0.625
      foo = sin(3*x+1)-cos(7*x-2)
      stop
      end
      (%o4)                        foo.f90

  Categories:Translation and compilation ·Package f90 ·