int write_real_field_subset(QIO_Writer *outfile, int count, float *field_out[], int lower[], int upper[], int dim, char *myname){ QIO_String *xml_record_out; char xml_write_field[] = "Dummy user record XML for subset of real field"; int status; QIO_RecordInfo *rec_info; /* Create the record info for the field */ rec_info = QIO_create_record_info(QIO_HYPER, lower, upper, dim, "QDP_F_Real", "F", 0, 0, sizeof(float), count); /* Create the record XML for the field */ xml_record_out = QIO_string_create(); QIO_string_set(xml_record_out,xml_write_field); /* Write the record for the field */ status = QIO_write(outfile, rec_info, xml_record_out, vget_R, count*sizeof(float), sizeof(float), field_out); printf("%s(%d): QIO_write returns status %d\n",myname,this_node,status); if(status != QIO_SUCCESS)return 1; QIO_destroy_record_info(rec_info); QIO_string_destroy(xml_record_out); return 0; }
int write_su3_field(QIO_Writer *outfile, int count, suN_matrix *field_out[], char *myname){ QIO_String *xml_record_out; char xml_write_field[] = "Dummy user record XML for su3 field"; int status; QIO_RecordInfo *rec_info; /* Create the record info for the field */ rec_info = QIO_create_record_info(QIO_FIELD, NULL, NULL, 0, "QDP_F3_ColorMatrix", "F", 3, 0, sizeof(suN_matrix), count); /* Create the record XML for the field */ xml_record_out = QIO_string_create(); QIO_string_set(xml_record_out,xml_write_field); /* Write the record for the field */ status = QIO_write(outfile, rec_info, xml_record_out, vget_M, count*sizeof(suN_matrix), sizeof(float), field_out); printf("%s(%d): QIO_write returns status %d\n",myname,this_node,status); if(status != QIO_SUCCESS)return 1; QIO_destroy_record_info(rec_info); QIO_string_destroy(xml_record_out); return 0; }
int write_S_from_site(QIO_Writer *outfile, QIO_String *xml_record_out, field_offset src){ int status; QIO_RecordInfo *rec_info; char qdptype[] = "MILC_RandomState"; char prec[] = ""; int datum_size = sizeof(double_prn); int word_size = sizeof(float); int count = 1; /* Create the record info for the field */ rec_info = QIO_create_record_info(QIO_FIELD, 0, 0, 0, qdptype, prec, 0, 0, datum_size, count); /* Write the record for the field */ status = QIO_write(outfile, rec_info, xml_record_out, vget_S_from_site, count*datum_size, word_size, (void *)&src); if(status != QIO_SUCCESS)return 1; QIO_destroy_record_info(rec_info); return 0; }
int write_real_global(QIO_Writer *outfile, int count, float array_out[], char *myname){ QIO_String *xml_record_out; char xml_write_global[] = "Dummy user record XML for global"; int status; QIO_RecordInfo *rec_info; /* Create the record info for the global array */ xml_record_out = QIO_string_create(); QIO_string_set(xml_record_out,xml_write_global); rec_info = QIO_create_record_info(QIO_GLOBAL, NULL, NULL, 0, "QLA_F_Real", "F", 0, 0, sizeof(float), count); /* Write the array to a file */ status = QIO_write(outfile, rec_info, xml_record_out, vget_r, count*sizeof(float), sizeof(float), array_out); printf("%s(%d): QIO_write returns status %d\n",myname,this_node,status); if(status != QIO_SUCCESS)return 1; QIO_destroy_record_info(rec_info); QIO_string_destroy(xml_record_out); return 0; }