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);
enum QudaPrecision_s QudaPrecision
void get_coords(int x[], int node, int index)
int read_su3_field(QIO_Reader *infile, int count, void *field_in[], QudaPrecision cpu_prec, char *myname)
QIO_Reader * open_test_input(char *filename, int volfmt, int serpar, char *myname)
__device__ unsigned int count
void read_gauge_field(char *filename, void *gauge[], QudaPrecision precision, int *X, int argc, char *argv[])
int setup_layout(int len[], int nd, int numnodes)
QudaPrecision get_prec(QIO_Reader *infile)
Main header file for the QUDA library.
int node_index(const int x[])
int node_number(const int x[])