ignore order of data arrays in namelist
The data arrays are read from the namelist and the DataArray and TranferHelper types are initialized in a loop there. If a DataArray references another DataArray with a higher index in the list, an error
Data array '<dataarray2>' is not found in available data arrays. Add the data array in the file mpr.nml for DataArray 'dataarray1' is raised.
It would be good to ignore that, e.g. do not call
check_and_set_input_field_names during init, but only after all dataarrays are read. Maybe setting a flag in case there is a missing dataarray, then check for the flag after all dataarrays are initialized and revisit that again.