Have you seen the Moon Phases File by Meysam Mahooti? https://de.mathworks.com/matlabcentral/fileexchange/55270-moon-phases
It already calculates the Moon Phases for any given Year. I am not sure why you need the lon and lat inputs since the lunar phases (new moon, full moon, etc) only depend on the position of the earth moon and sun. They don't depend where you are on earth. It just affects the angle from which you see the moon. Of course that might make a difference but I am sure you could add this to the calculation.
I hope this helped,