13 QIO_String *xml_file_in;
17 iflag.serpar = serpar;
18 iflag.volfmt = volfmt;
21 xml_file_in = QIO_string_create();
24 infile = QIO_open_read(xml_file_in, filename, &
layout, NULL, &iflag);
26 printf(
"%s(%d): QIO_open_read returns NULL.\n",myname,
this_node);
31 printfQuda(
"%s: User file info is \"%s\"\n", myname, QIO_string_ptr(xml_file_in));
33 QIO_string_destroy(xml_file_in);
39 QIO_RecordInfo *rec_info = QIO_create_record_info(0, NULL, NULL, 0,
"",
"", 0, 0, 0, 0);
40 QIO_String *xml_file = QIO_string_create();
41 int status = QIO_read_record_info(infile, rec_info, xml_file);
42 int prec = *QIO_get_precision(rec_info);
43 QIO_destroy_record_info(rec_info);
44 QIO_string_destroy(xml_file);
51 QIO_String *xml_record_in;
52 QIO_RecordInfo rec_info;
57 size_t rec_size = file_prec*count*18;
60 xml_record_in = QIO_string_create();
65 status = QIO_read(infile, &rec_info, xml_record_in, vputM<double,double,18>,
68 status = QIO_read(infile, &rec_info, xml_record_in, vputM<double,float,18>,
73 status = QIO_read(infile, &rec_info, xml_record_in, vputM<float,double,18>,
76 status = QIO_read(infile, &rec_info, xml_record_in, vputM<float,float,18>,
81 printfQuda(
"%s: QIO_read_record_data returns status %d\n", myname, status);
82 if(status != QIO_SUCCESS)
return 1;
89 int sites_on_node = 0;
90 QMP_thread_level_t provided;
91 char myname[] =
"qio_load";
97 int lattice_volume = 1;
98 for (
int d=0; d<4; d++) {
105 {
printfQuda(
"Setup layout failed\n"); exit(0); }
106 printfQuda(
"%s layout set for %d nodes\n", myname, QMP_get_number_of_nodes());
116 layout.volume = lattice_volume;
117 layout.sites_on_node = sites_on_node;
119 layout.number_of_nodes = QMP_get_number_of_nodes();
123 if(infile == NULL) { printf(
"Open file failed\n"); exit(0); }
126 printfQuda(
"%s: reading su3 field\n",myname); fflush(stdout);
128 if(status) { printf(
"read_su3_field failed %d\n", status); exit(0); }
131 QIO_close_read(infile);
132 printfQuda(
"%s: Closed file for reading\n",myname);