FLEXPATH doesn't read constants in array dimensions
Closed this issue · 2 comments
burlen commented
Given the following write side code
535 std::string path = dataset_id + "/extent";
536 adios_define_var(gh, path.c_str(), "", adios_integer, "6", "6", "0");
537
538 path = dataset_id + "/origin";
539 adios_define_var(gh, path.c_str(), "", adios_double, "3", "3", "0");
540
541 path = dataset_id + "/spacing";
542 adios_define_var(gh, path.c_str(), "", adios_double, "3", "3", "0");
the read side fails when using FLEXPATH printing
ERROR: Could not find fieldname: 6
ERROR: Could not find fieldname: 3
ERROR: Could not find fieldname: 3
However, no error code is returned from adios_perform_reads, which gives us no way to know that things didn't work out.
It seems that FLEXPATH read doesn't recognize constants in global array dimensions. FLEXPATH write does handle this, as does MPI/BP read/write.
It would be nice if constants were handled on the FLEXPATH read side. A work around is to add some dummy field to hold the fixed lengths, but this adds clutter.
burlen commented
@eisenhauer @mw70 level of severity == inconvenience
eisenhauer commented
I've fixed this in GitHub master.