GRPF: Global complex roots and poles finding algorithm. The aim of the GRPF algorithm is to find all the zeros and poles of the function in the fixed region. A wide class of analytic functions can be analyzed, and any arbitrarily shaped search region can be considered. High flexibility and effectiveness of this program is demonstrated in the attached examples. These examples are focused on microwave and optical applications, however the algorithm is not limited to computational electrodynamics and can be used for similar problems e.g. in acoustics, control theory and quantum mechanics.