eccodes/definitions/taf/clouds.def

63 lines
2.6 KiB
Modula-2

if (substr(g,0,3) is "FEW" || substr(g,0,3) is "SCT" ||
substr(g,0,3) is "BKN" || substr(g,0,3) is "OVC") {
rename(g,clouds1);
group g : dump; non_alpha na;
cloudsAbbreviation1=to_string(clouds1,0,3);
cloudsCode1=dict_search("metar/clouds.table",cloudsAbbreviation1,1);
cloudsTitle1=dict_search("metar/clouds.table",cloudsAbbreviation1,2) : string_type;
cloudsBaseCoded1=to_integer(clouds1,3,3);
meta cloudsBase1 evaluate(cloudsBaseCoded1 * 100 );
if (substr(g,0,3) is "FEW" || substr(g,0,3) is "SCT" ||
substr(g,0,3) is "BKN" || substr(g,0,3) is "OVC") {
rename(g,clouds2);
group g : dump; non_alpha na;
cloudsAbbreviation2=to_string(clouds2,0,3);
cloudsCode2=dict_search("metar/clouds.table",cloudsAbbreviation2,1);
cloudsTitle2=dict_search("metar/clouds.table",cloudsAbbreviation2,2) : string_type;
cloudsBaseCoded2=to_integer(clouds2,3,3);
meta cloudsBase2 evaluate(cloudsBaseCoded2 * 100 );
}
if (substr(g,0,3) is "FEW" || substr(g,0,3) is "SCT" ||
substr(g,0,3) is "BKN" || substr(g,0,3) is "OVC") {
rename(g,clouds3);
group g : dump; non_alpha na;
cloudsAbbreviation3=to_string(clouds3,0,3);
cloudsCode3=dict_search("metar/clouds.table",cloudsAbbreviation3,1);
cloudsTitle3=dict_search("metar/clouds.table",cloudsAbbreviation3,2) : string_type;
cloudsBaseCoded3=to_integer(clouds3,3,3);
meta cloudsBase3 evaluate(cloudsBaseCoded3 * 100 );
}
if (substr(g,0,3) is "FEW" || substr(g,0,3) is "SCT" ||
substr(g,0,3) is "BKN" || substr(g,0,3) is "OVC") {
rename(g,clouds4);
group g : dump; non_alpha na;
cloudsAbbreviation4=to_string(clouds4,0,3);
cloudsCode4=dict_search("metar/clouds.table",cloudsAbbreviation4,1);
cloudsTitle4=dict_search("metar/clouds.table",cloudsAbbreviation4,2) : string_type;
cloudsBaseCoded4=to_integer(clouds4,3,3);
meta cloudsBase4 evaluate(cloudsBaseCoded4 * 100 );
}
} else {
if ( g is "SKC" || g is "CLR" ) {
rename(g,skyClear);
group g : dump; non_alpha na;
} else {
if ( substr(g,0,2) is "VV" && length(g)==5) {
rename(g,verticalVisibilityElement);
group g : dump; non_alpha na;
verticalVisibilityCoded=to_integer(verticalVisibilityElement,2,3);
meta verticalVisibility evaluate(verticalVisibilityCoded * 100);
}
if ( g is "NSC" ) {
rename(g,noSignificantClouds);
group g : dump; non_alpha na;
}
if ( g is "NCD" ) {
rename(g,noCloudsDetected);
group g : dump; non_alpha na;
}
}
}