eccodes/definitions/metar/rvr3.def

41 lines
1.5 KiB
Modula-2

if (substr(g,0,1) is "R" && ( substr(g,3,1) is "/" || substr(g,3,2) is "C/"
|| substr(g,3,2) is "L/" || substr(g,3,2) is "R/") ) {
rename(g,RVR3);
group g : dump; non_alpha na;
if (substr(RVR3,3,1) is "/") {
runwayDesignatorRVR3=to_string(RVR3,1,2);
if (substr(RVR3,4,1) is "P" || substr(RVR3,4,1) is "M") {
extremeValuesRVR3=to_string(RVR3,4,1);
RVR3_1=to_string(RVR3,5);
} else {
RVR3_1=to_string(RVR3,4);
}
} else {
runwayDesignatorRVR3=to_string(RVR3,1,3);
meanValueRVR3=to_string(RVR3,5,4);
if (substr(RVR3,5,1) is "P" || substr(RVR3,5,1) is "M") {
ExtremeValuesRVR3=to_string(RVR,5,1);
RVR3_1=to_string(RVR3,6);
} else {
RVR3_1=to_string(RVR3,5);
}
}
if (length(RVR3_1)==4 || length(RVR3_1)==5) {
meanRVR3=to_string(RVR3_1,0,4);
} else {
if (substr(RVR3_1,4,1) is "V") {
oneMinuteMeanMinimumRVR3=to_string(RVR3_1,0,4);
if (substr(RVR3_1,5,1) is "P" || substr(RVR3_1,5,1) is "M") {
ExtremeValuesInMaximumRVR3=to_string(RVR_1,5,1);
oneMinuteMeanMaximumRVR3=to_string(RVR3_1,6,4);
} else {
oneMinuteMeanMaximumRVR3=to_string(RVR3_1,5,4);
}
}
}
if (substr(RVR3,-1,1) is "U" ) { constant pastTendencyRVR3="UPWARD"; }
if (substr(RVR3,-1,1) is "D" ) { constant pastTendencyRVR3="DOWNWARD"; }
if (substr(RVR3,-1,1) is "N" ) { constant pastTendencyRVR3="NO_CHANGE"; }
}