@@ -267,18 +267,22 @@ def _get_raw_data(self, name):
267267 if fieldfile .is_file ():
268268 parsed_data = stagyyparsers .fields (fieldfile )
269269 elif self .step .sdat .hdf5 and self ._filesh5 :
270- for filestem , list_fvar in self ._filesh5 .items ():
271- if name in list_fvar :
270+ # files in which the requested data can be found
271+ files = [(stem , fvars ) for stem , fvars in self ._filesh5 .items ()
272+ if name in fvars ]
273+ for filestem , list_fvar in files :
274+ if filestem in phyvars .SFIELD_FILES_H5 :
275+ xmff = 'Data{}.xmf' .format (
276+ 'Bottom' if name .endswith ('bot' ) else 'Surface' )
277+ header = self ._header
278+ else :
279+ xmff = 'Data.xmf'
280+ header = None
281+ parsed_data = stagyyparsers .read_field_h5 (
282+ self .step .sdat .hdf5 / xmff , filestem ,
283+ self .step .isnap , header )
284+ if parsed_data is not None :
272285 break
273- if filestem in phyvars .SFIELD_FILES_H5 :
274- xmff = 'Data{}.xmf' .format (
275- 'Bottom' if name .endswith ('bot' ) else 'Surface' )
276- header = self ._header
277- else :
278- xmff = 'Data.xmf'
279- header = None
280- parsed_data = stagyyparsers .read_field_h5 (
281- self .step .sdat .hdf5 / xmff , filestem , self .step .isnap , header )
282286 return list_fvar , parsed_data
283287
284288 def _set (self , name , fld ):
0 commit comments