void read_rainbow_header(Rainbow_hdr *rainbow_header, FILE *fp) { /* Reads parameters from Rainbow file header into a rainbow header structure. */ char buf[BUFSIZE]; int label; /* Read each line of the header and extract parameters according to the * label. The label is a single alphabetic character at the beginning * of the line which indicates a category of parameters. */ while ((label = read_hdr_line(buf, BUFSIZE, fp)) != ETX && label > 0) { switch (label) { case 'H': H_label(rainbow_header, buf); break; case 'P': P_label(rainbow_header, buf); break; case 'W': W_label(rainbow_header, buf); break; case 'F': F_label(rainbow_header, buf); break; case 'R': R_label(rainbow_header, buf); break; case 'A': A_label(rainbow_header, buf); break; case 'N': rainbow_header->product = get_param_int(buf); break; case 'X': /* X_label(rainbow_header, buf); */ break; } } }
void unknown::get_stencil_values(const label& wet_label, double& u_E, double& u_W, double& u_N, double& u_S) { unsigned int lx = wet_label(0); unsigned int ly = wet_label(1); label E_label(lx+1, ly); label W_label(lx-1, ly); label N_label(lx, ly+1); label S_label(lx, ly-1); u_E = get_stencil_value(wet_label, unknown_position::E, true); u_W = get_stencil_value(wet_label, unknown_position::W, false); u_N = get_stencil_value(wet_label, unknown_position::N, false); u_S = get_stencil_value(wet_label, unknown_position::S, false); }