I am guessing you are somewhat new to Natural. Hence you are not aware that there are three “modes” in Natural. In addition to Structured Mode, and “strict” Reporting Mode, there is what is officially called Structured Data Mode (I call it mixed mode). Mixed Mode is a variant of Reporting Mode, but it keeps LOOP , etc)
If the program is not too mired in strict Reporting Mode (for example, if it does not introduce new variables throughout the program, but instead does a RESET of all the variables at the start of the program) it may be easiest for you to simply convert the program to Mixed Mode. Then you get to define a View of the file and use the simplified, modern form of the UPDATE statement as opposed what I am guessing you have which is something like:
UPDATE NAME = #NAME CITY = #CITY etc.
Also, there is no reason, even in strict Reporting Mode, to use MOVE INDEXED. You can simply have arrays. For example, at the start of your program you might RESET #ARRAY (A3/1:10).
Correction. If you are working in an environment with a totally ancient version of Natural, arrays may not exist. What version of Natural are you working with?
Just to add to Wolfgang’s suggestion to look at OBTAIN, you might also want to look at GET SAME.
However, transitioning to Mixed Mode would make everything much simpler.