istomoya - 2012-07-19

Changes made in FRUIT 2.9.1

+ Selective build

When there are several *_test.f90 files in a directory,
all these tester files were compiled to build fruit driver.
One may want to run only few of the tester files.
To compile only selected tester files,
method "process_only" is added to fruit_processor.
New sample "sample_selective" demonstrates it.
File(s) to compile is given in

 fp.process_only = FileList["mydict_test.f90"]

line of sample_selective/rakefile.

+ When main file exists in directory

Building fruit driver used to be failed when there was a main program
(.f90 file with "program" … "end program" statements).
Build becomes possible by adding a line

$main = "fruit_driver_gen.f90"

to rakefile. It's demonstrated in samples
  * sample_single_dir
  * sample_selective
In these samples main file (dummy_main.f90) is
successfully ignored.

+ Estimation of dependencies

When there was dependency between fortran files,
it had to be written it in rakefile.
In this release, a new script "rake_estimate.rb" is added.
It scans "module …" lines and "use …" lines
and estimates dependencies between Fortran files.
To use it, include it from rakefile.
Examples are
  * sample/test/rakefile
  * sample_selective/rakefile
  * sample_single_dir/rakefile

+ descriptions of rake target

Descriptions of rake target is added to rakefile.
Try "rake -T" to see the list of descriptions.

+ Self-tests

A number of self-tests for fruit.f90 are added as self_test/various_asserts_test.f90

+ Generator of fruit.f90

To support various assertions for various types
(logical, real, double, complex-double, integer),
dimensions (0d, 1d, 2d) and equals/not-equals,
fruit.f90 is now generated using
src/fruit_f90_generator.rb and src/fruit_f90_source.txt.

+ Deallocate

Array for messages used in fruit.f90 was allocated but
not deallocated. Some compiler report it as memory error.
For deallocation of it, subroutine "fruit_finalize" is added to fruit.f90.
It deallocates the array for messages.
Corresponding memory leak while running self-test is fixed.

+ Error fixed

There was regression in FRUIT 2.9.
When Fortran source is updated and older corresponding
object file exists, rake did not recompile the source.
To fix it, relation between Fortran files and object files
are confirmed in rake_base.rb.

+ ruby 1.9.3

In addition to ruby 1.8.7, FRUIT works on ruby 1.9.3.