<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://www.iran-pedia.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AWeatherBox</id>
	<title>پودمان:WeatherBox - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://www.iran-pedia.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AWeatherBox"/>
	<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:WeatherBox&amp;action=history"/>
	<updated>2026-04-06T00:52:25Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:WeatherBox&amp;diff=19637&amp;oldid=prev</id>
		<title>Mahan: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:WeatherBox&amp;diff=19637&amp;oldid=prev"/>
		<updated>2017-12-23T20:30:40Z</updated>

		<summary type="html">&lt;p&gt;۱ نسخه واردشده&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fa&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ نسخهٔ قدیمی‌تر&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;نسخهٔ ‏۲۳ دسامبر ۲۰۱۷، ساعت ۲۲:۳۰&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fa&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(بدون تفاوت)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Mahan</name></author>
	</entry>
	<entry>
		<id>https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:WeatherBox&amp;diff=19636&amp;oldid=prev</id>
		<title>Mahan در ‏۱۰ مارس ۲۰۱۵، ساعت ۱۲:۱۳</title>
		<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:WeatherBox&amp;diff=19636&amp;oldid=prev"/>
		<updated>2015-03-10T12:13:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;w = {};&lt;br /&gt;
math_mod = require( &amp;quot;Module:Math&amp;quot; );&lt;br /&gt;
wbc = require( &amp;quot;Module:WeatherBoxColors&amp;quot; );&lt;br /&gt;
local supportPersian = require(&amp;quot;Module:Numeral converter&amp;quot;).convert&lt;br /&gt;
&lt;br /&gt;
function checkFlag( flag )&lt;br /&gt;
    if flag == nil then&lt;br /&gt;
        return nil;&lt;br /&gt;
    elseif type( flag ) == &amp;#039;boolean&amp;#039; then&lt;br /&gt;
        return flag;        &lt;br /&gt;
    elseif type( flag ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
        flag = flag:lower();&lt;br /&gt;
        if flag == &amp;#039;0&amp;#039; or flag == &amp;#039;false&amp;#039; or&lt;br /&gt;
                flag == &amp;#039;&amp;#039; or flag == &amp;#039;no&amp;#039; or&lt;br /&gt;
                flag == &amp;#039;n&amp;#039; then&lt;br /&gt;
            return false;&lt;br /&gt;
        else&lt;br /&gt;
            return true;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return error( &amp;#039;نوع پرچم معتبر نیست&amp;#039; );&lt;br /&gt;
    end    &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function w.buildRow( frame )&lt;br /&gt;
    local mode = (frame.args.mode or &amp;#039;basic&amp;#039;):lower();&lt;br /&gt;
    local group_name = frame.args.group_name;&lt;br /&gt;
    local first_value_string, second_value_string;&lt;br /&gt;
    local first_value_number, second_value_number, color_values;&lt;br /&gt;
    local color_scheme = frame.args.color_scheme or &amp;#039;t&amp;#039;;&lt;br /&gt;
    local scale_factor = math_mod._cleanNumber( frame.args.scale_factor) or 1;&lt;br /&gt;
    local date_mode = checkFlag( frame.args.date_mode or false );&lt;br /&gt;
    local label = frame.args.label or &amp;#039;&amp;#039;;&lt;br /&gt;
    local annual_mode = (frame.args.annual_mode or &amp;#039;avg&amp;#039;):lower();&lt;br /&gt;
    local include_space = checkFlag( frame.args.include_space or true );&lt;br /&gt;
    local second_line = checkFlag( frame.args.second_line ) or false;&lt;br /&gt;
    local prefer_cm = checkFlag( frame.args.prefer_cm ) or false;&lt;br /&gt;
    local result;&lt;br /&gt;
&lt;br /&gt;
    local pframe = frame:getParent();&lt;br /&gt;
    local imperial_first = checkFlag( frame.args[&amp;#039;imperial first&amp;#039;] );&lt;br /&gt;
    if imperial_first == nil then imperial_first = checkFlag( pframe.args[&amp;#039;imperial first&amp;#039;] ); end&lt;br /&gt;
        &lt;br /&gt;
    local metric_first = checkFlag( frame.args[&amp;#039;metric first&amp;#039;] );&lt;br /&gt;
    if metric_first == nil then metric_first = checkFlag( pframe.args[&amp;#039;metric first&amp;#039;] ); end&lt;br /&gt;
&lt;br /&gt;
    local single_line = checkFlag( frame.args[&amp;#039;single line&amp;#039;] );&lt;br /&gt;
    if single_line == nil then single_line = checkFlag( pframe.args[&amp;#039;single line&amp;#039;] ); end&lt;br /&gt;
&lt;br /&gt;
    if imperial_first == nil and metric_first ~= nil then&lt;br /&gt;
        imperial_first = not metric_first;&lt;br /&gt;
    else&lt;br /&gt;
        imperial_first = true;&lt;br /&gt;
    end    &lt;br /&gt;
&lt;br /&gt;
    if mode == &amp;#039;basic&amp;#039; then&lt;br /&gt;
        first_value_string, first_value_number = getInputs( pframe, group_name, &lt;br /&gt;
            nil, include_space );&lt;br /&gt;
        second_value_string = nil;&lt;br /&gt;
        second_value_number = nil;&lt;br /&gt;
    elseif mode == &amp;#039;temperature&amp;#039; then&lt;br /&gt;
        first_value_string, first_value_number = getInputs( pframe, group_name, &lt;br /&gt;
            {&amp;#039;C&amp;#039;}, include_space );&lt;br /&gt;
        second_value_string, second_value_number = getInputs( pframe, group_name, &lt;br /&gt;
            {&amp;#039;F&amp;#039;}, include_space );&lt;br /&gt;
        first_value_string, first_value_number, second_value_string, second_value_number =&lt;br /&gt;
            reconcileTemperature( first_value_string, first_value_number, &lt;br /&gt;
                second_value_string, second_value_number )&lt;br /&gt;
    elseif mode == &amp;quot;precipitation&amp;quot; then&lt;br /&gt;
        first_value_string, first_value_number, variant = getInputs( pframe, group_name, &lt;br /&gt;
            {&amp;#039;cm&amp;#039;, &amp;#039;mm&amp;#039;}, include_space );&lt;br /&gt;
        second_value_string, second_value_number = getInputs( pframe, group_name, &lt;br /&gt;
            {&amp;#039;inch&amp;#039;}, include_space );        &lt;br /&gt;
        first_value_string, first_value_number, second_value_string, second_value_number,&lt;br /&gt;
            variant =&lt;br /&gt;
            reconcilePrecipitation( first_value_string, first_value_number, &lt;br /&gt;
                second_value_string, second_value_number, variant, prefer_cm )&lt;br /&gt;
    else&lt;br /&gt;
        error( &amp;#039;حالت درخواست‌شده شناخته‌شده نیست&amp;#039; );&lt;br /&gt;
    end  &lt;br /&gt;
    &lt;br /&gt;
    local good = false;&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        if first_value_string[i] ~= nil and first_value_string[i] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            good = true;&lt;br /&gt;
            break;&lt;br /&gt;
        end&lt;br /&gt;
    end        &lt;br /&gt;
    if not good then&lt;br /&gt;
        return &amp;#039;&amp;#039;;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if first_value_string[13] == nil or first_value_string[13] == &amp;#039;&amp;#039; then&lt;br /&gt;
        first_value_string[13], first_value_number[13] = getAnnualValue( first_value_number, annual_mode );&lt;br /&gt;
    end&lt;br /&gt;
    if second_value_string ~= nil then&lt;br /&gt;
        if second_value_string[13] == nil or second_value_string[13] == &amp;#039;&amp;#039; then&lt;br /&gt;
            second_value_string[13], second_value_number[13] = getAnnualValue( second_value_number, annual_mode );&lt;br /&gt;
        end&lt;br /&gt;
        if mode == &amp;#039;precipitation&amp;#039; then&lt;br /&gt;
            for i = 1,12 do&lt;br /&gt;
                if variant[i] ~= 0 then&lt;br /&gt;
                    variant[13] = variant[i];&lt;br /&gt;
                    break;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end                        &lt;br /&gt;
    end   &lt;br /&gt;
&lt;br /&gt;
    color_scheme = wbc.interpret_color_code( color_scheme );&lt;br /&gt;
&lt;br /&gt;
    color_values = {};&lt;br /&gt;
    month_adj = { 31/30, 28/30, 31/30, 1, 31/30, 1, &lt;br /&gt;
        31/30, 31/30, 1, 31/30, 1, 31/30, 12.175 };&lt;br /&gt;
    local adj;&lt;br /&gt;
    for i = 1,13 do        &lt;br /&gt;
        if first_value_number[i] ~= nil and first_value_number[i] ~= -9999 then&lt;br /&gt;
            adj = scale_factor;&lt;br /&gt;
            if date_mode then &lt;br /&gt;
                adj = adj / month_adj[i];&lt;br /&gt;
            end&lt;br /&gt;
            if mode == &amp;quot;precipitation&amp;quot; then&lt;br /&gt;
                if variant[i] == 1 then&lt;br /&gt;
                    adj = adj * 10;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            table.insert( color_values, color_scheme( first_value_number[i] * adj ) );               &lt;br /&gt;
        else&lt;br /&gt;
            table.insert( color_values, color_scheme( nil ) );&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local lang = mw.getContentLanguage();&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        if first_value_number[i] ~= nil and first_value_number[i] ~= -9999 then&lt;br /&gt;
            if math.abs(first_value_number[i]) &amp;gt;= 1000 then&lt;br /&gt;
                first_value_string[i] = lang:formatNum( math.abs(first_value_number[i]) );&lt;br /&gt;
                if first_value_number[i] &amp;lt; 0 then&lt;br /&gt;
                    first_value_string[i] = &amp;#039;−&amp;#039; .. first_value_string[i];&lt;br /&gt;
                end&lt;br /&gt;
            elseif first_value_number[i] &amp;lt; 0 then&lt;br /&gt;
                first_value_string[i] = &amp;#039;−&amp;#039; .. first_value_string[i]:sub(2);&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if second_value_number ~= nil then&lt;br /&gt;
            if second_value_number[i] ~= nil and second_value_number[i] ~= -9999 then&lt;br /&gt;
                if math.abs(first_value_number[i]) &amp;gt;= 1000 then&lt;br /&gt;
                    second_value_string[i] = lang:formatNum( math.abs(second_value_number[i]) );&lt;br /&gt;
                    if second_value_number[i] &amp;lt; 0 then&lt;br /&gt;
                        second_value_string[i] = &amp;#039;−&amp;#039; .. second_value_string[i];&lt;br /&gt;
                    end&lt;br /&gt;
                elseif second_value_number[i] &amp;lt; 0 then&lt;br /&gt;
                    second_value_string[i] = &amp;#039;−&amp;#039; .. second_value_string[i]:sub(2);&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end              &lt;br /&gt;
&lt;br /&gt;
    if imperial_first and second_value_string ~= nil then&lt;br /&gt;
        local t = first_value_string;&lt;br /&gt;
        first_value_string = second_value_string;&lt;br /&gt;
        second_value_string = t;&lt;br /&gt;
    end    &lt;br /&gt;
&lt;br /&gt;
    if not single_line then&lt;br /&gt;
        if second_line and second_value_string ~= nil then&lt;br /&gt;
            first_value_string = second_value_string;&lt;br /&gt;
        end&lt;br /&gt;
        second_value_string = nil;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return makeLine( label, first_value_string, second_value_string, color_values, color_scheme );&lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
function makeLine( label, first_value_string, second_value_string, color_values, color_scheme )&lt;br /&gt;
    local result, color_str, value_str;&lt;br /&gt;
    &lt;br /&gt;
    result = {&amp;#039;|- \n! height=&amp;quot;16&amp;quot; | &amp;#039;, label,  &amp;quot;\n&amp;quot;}&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        color_str = color_values[i];&lt;br /&gt;
&lt;br /&gt;
        if i == 13 then&lt;br /&gt;
            table.insert( result, table.concat( {&amp;#039;|style=&amp;quot;&amp;#039;, color_str, &amp;#039; border-left-width:medium&amp;quot; | &amp;#039;} ) );&lt;br /&gt;
        else&lt;br /&gt;
            table.insert( result, table.concat( {&amp;#039;|style=&amp;quot;&amp;#039;, color_str, &amp;#039;&amp;quot; | &amp;#039;} ) );&lt;br /&gt;
        end                &lt;br /&gt;
&lt;br /&gt;
        value_str = first_value_string[i];&lt;br /&gt;
        if value_str ~= &amp;#039;&amp;#039; and value_str ~= nil then &lt;br /&gt;
            table.insert( result, supportPersian(&amp;quot;fa&amp;quot;, value_str, true) );&lt;br /&gt;
            if second_value_string ~= nil then&lt;br /&gt;
                value_str = second_value_string[i];&lt;br /&gt;
                if value_str ~= &amp;#039;&amp;#039; and value_str ~= nil then &lt;br /&gt;
                    table.insert( result, &amp;quot;&amp;lt;br /&amp;gt; (&amp;quot; .. supportPersian(&amp;quot;fa&amp;quot;, value_str, true) .. &amp;quot;)&amp;quot; );&lt;br /&gt;
                end    &lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            table.insert( result, &amp;#039;—&amp;#039; );&lt;br /&gt;
        end        &lt;br /&gt;
    &lt;br /&gt;
        table.insert( result, &amp;quot;\n&amp;quot; ); &lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return table.concat( result );&lt;br /&gt;
end  &lt;br /&gt;
&lt;br /&gt;
function getInputs( frame, group_name, suffix, include_space )&lt;br /&gt;
    local month_names = { &amp;#039;Jan&amp;#039;, &amp;#039;Feb&amp;#039;, &amp;#039;Mar&amp;#039;, &amp;#039;Apr&amp;#039;, &amp;#039;May&amp;#039;, &amp;#039;Jun&amp;#039;, &amp;#039;Jul&amp;#039;, &amp;#039;Aug&amp;#039;, &amp;#039;Sep&amp;#039;, &amp;#039;Oct&amp;#039;, &amp;#039;Nov&amp;#039;, &amp;#039;Dec&amp;#039;, &amp;#039;year&amp;#039; };&lt;br /&gt;
    local str, str2, val;&lt;br /&gt;
    &lt;br /&gt;
    local output_string = {};&lt;br /&gt;
    local output_value = {};&lt;br /&gt;
    local variant = {};&lt;br /&gt;
    if suffix == nil then&lt;br /&gt;
        for _, mon in ipairs( month_names ) do&lt;br /&gt;
            if include_space then&lt;br /&gt;
                str = ( frame.args[ mon .. &amp;#039; &amp;#039; .. group_name ] or &amp;#039;&amp;#039; );&lt;br /&gt;
            else&lt;br /&gt;
                str = ( frame.args[ mon .. group_name ] or &amp;#039;&amp;#039; );&lt;br /&gt;
            end                &lt;br /&gt;
            val, str2 = math_mod._cleanNumber( supportPersian(&amp;quot;en&amp;quot;, str) );&lt;br /&gt;
            if val ~= nil then &lt;br /&gt;
                table.insert( output_string, supportPersian(&amp;quot;fa&amp;quot;, str2, true) );&lt;br /&gt;
                table.insert( output_value, val );&lt;br /&gt;
            else&lt;br /&gt;
                table.insert( output_string, supportPersian(&amp;quot;fa&amp;quot;, str, true) );&lt;br /&gt;
                table.insert( output_value, -9999 );&lt;br /&gt;
            end                &lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        local updated = false;&lt;br /&gt;
        for _, mon in ipairs( month_names ) do&lt;br /&gt;
            updated = false;&lt;br /&gt;
            for i, suf in ipairs( suffix ) do&lt;br /&gt;
                if include_space then&lt;br /&gt;
                    str = frame.args[ mon .. &amp;#039; &amp;#039; .. group_name .. &amp;#039; &amp;#039; .. suf ];&lt;br /&gt;
                else&lt;br /&gt;
                    str = frame.args[ mon .. group_name .. &amp;#039; &amp;#039; .. suf ];&lt;br /&gt;
                end                    &lt;br /&gt;
                if str ~= nil and str ~= &amp;#039;&amp;#039; then &lt;br /&gt;
                    val, str2 = math_mod._cleanNumber( supportPersian(&amp;quot;en&amp;quot;, str) );&lt;br /&gt;
                    if val ~= nil then &lt;br /&gt;
                        table.insert( output_string, supportPersian(&amp;quot;fa&amp;quot;, str2, true) );&lt;br /&gt;
                        table.insert( output_value, val );&lt;br /&gt;
                    else&lt;br /&gt;
                        table.insert( output_string, supportPersian(&amp;quot;fa&amp;quot;, str, true) );&lt;br /&gt;
                        table.insert( output_value, -9999 );&lt;br /&gt;
                    end                &lt;br /&gt;
                    table.insert( variant, i );&lt;br /&gt;
                    updated = true;&lt;br /&gt;
                    break;&lt;br /&gt;
                end                &lt;br /&gt;
            end&lt;br /&gt;
            if not updated then&lt;br /&gt;
                table.insert( output_string, &amp;#039;&amp;#039; );&lt;br /&gt;
                table.insert( output_value, -9999 );&lt;br /&gt;
                table.insert( variant, 0 );&lt;br /&gt;
            end            &lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
        &lt;br /&gt;
    return output_string, output_value, variant;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getAnnualValue( values, mode )&lt;br /&gt;
    local total = 0;&lt;br /&gt;
    local val = 0;&lt;br /&gt;
    &lt;br /&gt;
    if mode == &amp;#039;avg&amp;#039; or mode == &amp;#039;sum&amp;#039; then&lt;br /&gt;
        local p1, p2;&lt;br /&gt;
        p1 = 0;&lt;br /&gt;
        for i = 1, 12 do&lt;br /&gt;
            val = values[i];&lt;br /&gt;
            if val == -9999 then&lt;br /&gt;
                return &amp;#039;&amp;#039;, -9999;&lt;br /&gt;
            end            &lt;br /&gt;
            &lt;br /&gt;
            p2 = math_mod._precision( val );&lt;br /&gt;
            if p2 &amp;gt; p1 then&lt;br /&gt;
                p1 = p2;&lt;br /&gt;
            end&lt;br /&gt;
            &lt;br /&gt;
            total = total + val;&lt;br /&gt;
        end&lt;br /&gt;
        if mode == &amp;#039;avg&amp;#039; then&lt;br /&gt;
            total = math_mod._round( total / 12, p1 + 1 );&lt;br /&gt;
        end&lt;br /&gt;
        return tostring( total ), total;&lt;br /&gt;
    elseif mode == &amp;#039;min&amp;#039; then&lt;br /&gt;
        local min_val = nil;&lt;br /&gt;
        for i = 1, 12 do&lt;br /&gt;
            val = values[i];&lt;br /&gt;
            if val ~= -9999 then&lt;br /&gt;
                if min_val == nil or val &amp;lt; min_val then&lt;br /&gt;
                    min_val = val;&lt;br /&gt;
                end                &lt;br /&gt;
            end            &lt;br /&gt;
        end&lt;br /&gt;
        return tostring( min_val ), min_val;&lt;br /&gt;
    elseif mode == &amp;#039;max&amp;#039; then&lt;br /&gt;
        local max_val = nil;&lt;br /&gt;
        for i = 1, 12 do&lt;br /&gt;
            val = values[i];&lt;br /&gt;
            if val ~= -9999 then&lt;br /&gt;
                if max_val == nil or val &amp;gt; max_val then&lt;br /&gt;
                    max_val = val;&lt;br /&gt;
                end                &lt;br /&gt;
            end            &lt;br /&gt;
        end&lt;br /&gt;
        return tostring(max_val), max_val;&lt;br /&gt;
    else&lt;br /&gt;
        error( &amp;#039;حالت سالانه ناشناخته است&amp;#039; );&lt;br /&gt;
    end&lt;br /&gt;
end        &lt;br /&gt;
&lt;br /&gt;
function reconcileTemperature( C_degree_strings, C_degree_values, F_degree_strings, F_degree_values )&lt;br /&gt;
    local p;&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        if C_degree_strings[i] == &amp;#039;&amp;#039; then&lt;br /&gt;
            if F_degree_values[i] ~= -9999 then&lt;br /&gt;
                p = math.max( 0, math_mod._precision( F_degree_strings[i] ) );&lt;br /&gt;
                C_degree_values[i] = math_mod._round( (F_degree_values[i] - 32)*5/9, p );&lt;br /&gt;
                C_degree_strings[i] = tostring( C_degree_values[i] );&lt;br /&gt;
            end            &lt;br /&gt;
        elseif F_degree_strings[i] == &amp;#039;&amp;#039; then&lt;br /&gt;
            if C_degree_values[i] ~= -9999 then&lt;br /&gt;
                p = math.max( 0, math_mod._precision( C_degree_strings[i] ) );&lt;br /&gt;
                F_degree_values[i] = math_mod._round( C_degree_values[i]*9/5 + 32, p );&lt;br /&gt;
                F_degree_strings[i] = tostring( F_degree_values[i] );&lt;br /&gt;
            end                        &lt;br /&gt;
        end        &lt;br /&gt;
    end&lt;br /&gt;
    return C_degree_strings, C_degree_values, F_degree_strings, F_degree_values;&lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
function reconcilePrecipitation( M_degree_strings, M_degree_values, &lt;br /&gt;
        I_degree_strings, I_degree_values, variant, prefer_cm )&lt;br /&gt;
    local p;&lt;br /&gt;
    &lt;br /&gt;
    local v_class = 0;&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        if variant[i] == 1 then&lt;br /&gt;
            v_class = 1;&lt;br /&gt;
        elseif variant[i] == 2 then&lt;br /&gt;
            v_class = 2;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if v_class == 0 then&lt;br /&gt;
        if prefer_cm then&lt;br /&gt;
            v_class = 1;&lt;br /&gt;
        else&lt;br /&gt;
            v_class = 2;&lt;br /&gt;
        end        &lt;br /&gt;
    end&lt;br /&gt;
    for i = 1,13 do&lt;br /&gt;
        if M_degree_strings[i] == &amp;#039;&amp;#039; then&lt;br /&gt;
            if I_degree_values[i] ~= -9999 then&lt;br /&gt;
                if v_class == 1 then &lt;br /&gt;
                    p = math.max( 0, math_mod._precision( I_degree_strings[i] ) );&lt;br /&gt;
                    M_degree_values[i] = math_mod._round( I_degree_values[i]*2.54, p );&lt;br /&gt;
                    variant[i] = v_class;&lt;br /&gt;
                else &lt;br /&gt;
                    p = math.max( 0, math_mod._precision( I_degree_strings[i] ) ) - 1;&lt;br /&gt;
                    M_degree_values[i] = math_mod._round( I_degree_values[i]*25.4, p );&lt;br /&gt;
                    variant[i] = v_class;&lt;br /&gt;
                end                &lt;br /&gt;
                M_degree_strings[i] = tostring( M_degree_values[i] );&lt;br /&gt;
            end            &lt;br /&gt;
        elseif I_degree_strings[i] == &amp;#039;&amp;#039; then&lt;br /&gt;
            if M_degree_values[i] ~= -9999 then&lt;br /&gt;
                if variant[i] == 1 then&lt;br /&gt;
                    p = math.max( 0, math_mod._precision( M_degree_strings[i] ) ) + 1;&lt;br /&gt;
                    I_degree_values[i] = M_degree_values[i]/2.54;&lt;br /&gt;
                else&lt;br /&gt;
                    p = math.max( 0, math_mod._precision( M_degree_strings[i] ) ) + 2;&lt;br /&gt;
                    I_degree_values[i] = M_degree_values[i]/25.4;&lt;br /&gt;
                end                    &lt;br /&gt;
                I_degree_values[i] = math_mod._round( I_degree_values[i], p );&lt;br /&gt;
                I_degree_strings[i] = tostring( I_degree_values[i] );&lt;br /&gt;
            end                        &lt;br /&gt;
        end  &lt;br /&gt;
    end&lt;br /&gt;
    return M_degree_strings, M_degree_values, I_degree_strings, I_degree_values, variant;&lt;br /&gt;
end    &lt;br /&gt;
&lt;br /&gt;
return w;&lt;/div&gt;</summary>
		<author><name>Mahan</name></author>
	</entry>
</feed>