diff options
Diffstat (limited to 'src/Panda/Attribute.C')
-rw-r--r-- | src/Panda/Attribute.C | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/src/Panda/Attribute.C b/src/Panda/Attribute.C index 0c50f04..31947e1 100644 --- a/src/Panda/Attribute.C +++ b/src/Panda/Attribute.C @@ -22,17 +22,17 @@ Attribute::Attribute() void Attribute::init(char *name) { - int len = strlen(name); + int i, len = strlen(name); name_ = (char *)malloc(sizeof(char) * (len + 1)); - for (int i=0; i<len; i++) name_[i] = name[i]; + for (i=0; i<len; i++) name_[i] = name[i]; name_[i] = '\0'; } void Attribute::init(char *name, int esize, int count, void *data) { - int len = strlen(name); + int i, len = strlen(name); name_ = (char *)malloc(sizeof(char) * (len + 1)); - for (int i=0; i<len; i++) name_[i] = name[i]; + for (i=0; i<len; i++) name_[i] = name[i]; name_[i] = '\0'; esize_ = esize; count_ = count; @@ -118,12 +118,19 @@ void Attribute::read(char *fname, char *n) MPIFS_global_obj->send_attr_schema(this, fname, READ_TIMESTEP); MPIFS_global_obj->receive_attr_schema(); - int len = strlen(fname); + int i, len = strlen(fname); char *name = (char *)malloc(sizeof(char) * (len+1)); - char *name1 = (char *)malloc(sizeof(char) * (len+6)); - for (int i=0; i<len; i++) name[i] = fname[i]; + char *name1 = (char *)malloc(sizeof(char) * (len+16)); + for (i=0; i<len; i++) name[i] = fname[i]; name[i] = '\0'; - sprintf(name1, "%s.%d", name, MPIFS_global_obj->my_rank(IO_NODE)); + if (MPIFS_global_obj->app_size(IO_NODE) > 1) + { + sprintf(name1, "%s.file_%d.ieee", name, MPIFS_global_obj->my_rank(IO_NODE)); + } + else + { + sprintf(name1, "%s.ieee", name); + } fp = MPIFS_global_obj->open_file(name1, READ_TIMESTEP); read_data(fp); if (MPIFS_global_obj->am_master_io_node()) { @@ -150,12 +157,19 @@ void Attribute::write(char *fname, char *n, int esize, int count, void *data) MPIFS_global_obj->receive_attr_schema(); IOFile fp; - int len = strlen(fname); + int i, len = strlen(fname); char *name = (char *)malloc(sizeof(char) * (len+1)); - char *name1 = (char *)malloc(sizeof(char) * (len+6)); - for (int i=0; i<len; i++) name[i] = fname[i]; + char *name1 = (char *)malloc(sizeof(char) * (len+16)); + for (i=0; i<len; i++) name[i] = fname[i]; name[i] = '\0'; - sprintf(name1, "%s.%d", name, MPIFS_global_obj->my_rank(IO_NODE)); + if (MPIFS_global_obj->app_size(IO_NODE) > 1) + { + sprintf(name1, "%s.file_%d.ieee", name, MPIFS_global_obj->my_rank(IO_NODE)); + } + else + { + sprintf(name1, "%s.ieee", name); + } fp = MPIFS_global_obj->open_file(name1, TIMESTEP); |