int read_su3_field(QIO_Reader *infile, int count, suN_matrix *field_in[], char *myname) { QIO_String *xml_record_in; QIO_RecordInfo rec_info; int status; /* Create the record XML */ xml_record_in = QIO_string_create(); /* Read the field record */ status = QIO_read(infile, &rec_info, xml_record_in, vput_M, sizeof(suN_matrix)*count, sizeof(float), field_in); printf("%s(%d): QIO_read_record_data returns status %d\n", myname,this_node,status); if(status != QIO_SUCCESS)return 1; return 0; }
/* Read random number state */ int read_S_to_site(QIO_Reader *infile, QIO_String *xml_record_in, field_offset dest) { QIO_RecordInfo rec_info; int status; int count = 1; int datum_size = sizeof(double_prn); int word_size = sizeof(float); /* Read the field record */ status = QIO_read(infile, &rec_info, xml_record_in, vput_S_to_site, datum_size*count, word_size, (void *)&dest); node0_printf("Record info \n\"%s\"\n",QIO_string_ptr(xml_record_in)); if(status != QIO_SUCCESS)return 1; node0_printf("Checksums %x %x\n", QIO_get_reader_last_checksuma(infile), QIO_get_reader_last_checksumb(infile)); return 0; }
int read_real_global(QIO_Reader *infile, int count, float array_in[], char *myname) { QIO_String *xml_record_in; QIO_RecordInfo rec_info; int status; /* Create the record XML */ xml_record_in = QIO_string_create(); /* Read the global array record */ status = QIO_read(infile, &rec_info, xml_record_in, vput_r, sizeof(float)*count, sizeof(float), array_in); printf("%s(%d): QIO_read returns status %d\n", myname,this_node,status); if(status != QIO_SUCCESS)return 1; printf("%s(%d): User record info is \"%s\"\n",myname,this_node, QIO_string_ptr(xml_record_in)); QIO_string_destroy(xml_record_in); return 0; }