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 |
|