Research Article
Using Coarrays to Parallelize Legacy Fortran Applications: Strategy and Case Study
module abstract_tensor_class | type, abstract :: tensor | contains | procedure(return_computed_results), deferred :: & | computed_results | procedure(return_expected_results), deferred :: & | expected_results | procedure :: verify_result | end type | abstract interface | pure function return_computed_results(this) & | result(computed_values) | import :: tensor | class(tensor), intent(in) :: this | real, allocatable :: computed_values(:) | end function | ! return_expected_results interface omitted | end abstract interface | contains | pure function verify_result(this) & | result(all_tests_passed) | class(tensor), intent(in) :: this | logical :: all_tests_passed | all_tests_passed = all(tests_passed( & | this%computed_results(), this%expected_results())) | end function | end module |
|