High Performance Fortran (HPF) is the de facto standard language for writing data parallel programs. In case of applications
that use indirect addressing on distributed arrays, HPF compilers have limited capabilities for optimizing such codes on distributed
memory architectures, especially for optimizing communication and reusing communication schedules between subroutine boundaries.
This paper describes a dynamic approach for optimizing unstructured communication in codes with indirect addressing. The basic
idea is that runtime data reflecting the communication patterns will be reused if possible. The user has only to specify which
data in the program has to be traced for modifications. The experiments and results show the effectiveness of the chosen approach.