mirror of https://github.com/ecmwf/eccodes.git
63 lines
2.9 KiB
Modula-2
63 lines
2.9 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;
|
|
}
|
|
}
|
|
}
|
|
|