示例#1
0
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;
}
示例#2
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;
}
示例#3
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;
}
示例#4
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;
}