That depends on how you get from A to B. I assume you are running them consecutively. Why do you need 2 modules? Too big?
If you CHAIN to B then use a COMMON list with the array included. The lists must be identical in both modules. CHAIN does not require the BAS or EXE extension, but both modules must be the same type to work.
CHAIN compiled EXE file programs will need BRUN45.EXE too. That is the default setting when you compile. Just include it with the program when sharing.
I don't know how PDS does it. Look in the help file, but I didn't see anything about needing anything with it. Probably uses better memory management too.
The common list goes by the variable TYPE not the name so each list must match:
Module1: COMMON first$, sec%, third!, forth#, fifth%()
Module2: COMMON sec$, forth%, first!, third#, last%()
Arrays don't need the number of elements. You can use COMMON SHARED if SUB procedures use them INSIDE of the module too.
To use CHAIN to go from ModuleA to B:
CHAIN "ModuleB"
It should keep the same screen mode and the COMMON values should work.
Just make two test modules and set the COMMON values in the first one and print them in the second one.