Exemplo n.º 1
0
/*
 * HEADER:-1:code_table_4.7:inv:0:code table 4.7 derived forecast
 */
int f_code_table_4_7(ARG0) {
    int val, center;
    const char *string;
    if (mode >= 0) {
	val = code_table_4_7(sec);
	center = GB2_Center(sec);
        if (val >= 0) {
            string = NULL;
            switch(val) {
#include "CodeTable_4.7.dat"
            }
            if (string == NULL) sprintf(inv_out,"code table 4.7=%d", val);
            else sprintf(inv_out,"code table 4.7=%d %s", val, string);
        }
    }
    return 0;
}
Exemplo n.º 2
0
int f_ens(ARG0) {
    int type, typefcst, pdt, center;
    const char *string;
    if (mode >= 0) {
	typefcst = code_table_4_7(sec);
	type = code_table_4_6(sec);
	center = GB2_Center(sec);
        pdt =  GB2_ProdDefTemplateNo(sec);

	if (type >= 0) {
	    switch(type) {
	        case 0: sprintf(inv_out,"ENS=hi-res ctl"); break;
	        case 1: sprintf(inv_out,"ENS=low-res ctl"); break;
	        case 2: 
			sprintf(inv_out,"ENS=-%d", perturbation_number(sec)); break;
	        case 3: 
			sprintf(inv_out,"ENS=+%d", perturbation_number(sec)); break;
	        case 4: 
			sprintf(inv_out,"MM-ENS=%d", perturbation_number(sec)); break;
	        default:
			sprintf(inv_out,"ENS=? table4.6=%d pert=%d",type,perturbation_number(sec)); break;
	    }
	    inv_out += strlen(inv_out);
	    if (typefcst >= 0) {
		*inv_out++=' ';
		*inv_out=0;
	    }
	}
	if (typefcst >= 0) {
	    string = "unknown derived fcst";
	    switch(typefcst) {
	        case 0: string = "ens mean"; break;
	        case 1: string = "wt ens mean"; break;
	        case 2: if ((pdt == 2) || (pdt == 12)) {
			    string = "ens std dev"; break;
			}
			string = "cluster std dev"; break;
	        case 3: if ((pdt == 2) || (pdt == 12)) {
			    string = "normalized ens std dev"; break;
			}
			string = "normalized cluster std dev"; break;
	        case 4: string = "ens spread"; break;
	        case 5: string = "ens large anom index"; break;
	        case 6: if ((pdt == 2) || (pdt == 12)) {
			    string = "unwt ens mean"; break;
			}
			string = "unwt cluster mean"; break;
	        case 7: string = "25%-75% range"; break;
	        case 8: string = "min all members"; break;
	        case 9: string = "max all members"; break;
	        case 192: if (center == NCEP)  string = "unwt mode all members"; break;
	        case 193: if (center == NCEP)  string = "10% all members"; break;
	        case 194: if (center == NCEP)  string = "50% all members"; break;
	        case 195: if (center == NCEP)  string = "90% all members"; break;
	        case 196: if (center == NCEP)  string = "stat. weight for each members"; break;
	        case 197: if (center == NCEP)  string = "percentile from climate distribution"; break;
	    }
	    sprintf(inv_out,"%s", string);
	    inv_out += strlen(inv_out);
	}
    }
    return 0;
}