Re : formule voor verzadigd-adiabatisch optillen

Bericht van: Ben (Lelystad) , 03-05-2006 12:11 

Het lijkt wel alsof je functie in Excel nog niet helemaal goed is. Als je een luchtpakketje per 1 hPa met behulp van onderstaande (PHP, lijkt sterk op C, ik heb 'm ook in VB ergens) functie omhoog brengt krijg je een kromme zoals de dunne blauwe in het figuur onderaan.

Gr. Ben

[code]
function RaiseWet($startp, $startt, $endp)
{
$po = 1000;
$to = 273.15;
$epsilon = 0.622;
$e0 = 6.11;
$b1 = 17.2694;
$t1 = 273.16;
$t2 = 35.86;
$a = 0.28571;
$b = 13500000;
$c = 2488.4;

$oldt = $startt;
$oldp = $startp;

// omhoogbrengen per 1hPa
if($startp < $endp)
{
for($i=($startp+1); $i<$endp; $i+=1)
{
$es = $e0*exp($b1*(($to+$oldt)-$t1)/(($to+$oldt)-$t2));
$rs = ($epsilon*$es)/($i-$es);
$tp = ($a*($to+$oldt)+$c*$rs)/($i*(1+($b*$rs/pow($to+$oldt,2))));
$newt = ($to+$oldt)+(($i - $oldp)*$tp)-$to;
$oldt = $newt;
$oldp = $i;
}
} else {
for($i=($startp-1); $i>=$endp; $i-=1)
{
$es = $e0*exp($b1*(($to+$oldt)-$t1)/(($to+$oldt)-$t2));
$rs = ($epsilon*$es)/($i-$es);
$tp = ($a*($to+$oldt)+$c*$rs)/($i*(1+($b*$rs/pow($to+$oldt,2))));
$newt = ($to+$oldt)+(($i - $oldp)*$tp)-$to;
$oldt = $newt;
$oldp = $i;
}
}

return $newt;
}
[/code]


Bericht laatst bijgewerkt: 03-05-2006 12:18

nat-adiabatische lapse rate...   ( 185)
Dirk (Utrecht) -- 03-05-2006 11:49
het is niet waar wat ik zeg   ( 92)
Dirk (Utrecht) -- 03-05-2006 11:56
het is wel waar wat ik zeg   ( 63)
Dirk (Utrecht) -- 03-05-2006 12:14
Re : formule voor verzadigd-adiabatisch optillen   ( 95)
Ben (Lelystad) ( 13m) -- 03-05-2006 12:11
Op die manier doe ik het ook   ( 43)
Saskia (Wageningen) ( 11m) -- 03-05-2006 12:58
Re : nat-adiabatische lapse rate...   ( 64)
Jorr(Utrecht) -- 03-05-2006 12:13
Re : nat-adiabatische lapse rate...   ( 43)
Dirk (Utrecht) -- 03-05-2006 12:15
Re : nat-adiabatische lapse rate...   ( 37)
Jorr(Utrecht) -- 03-05-2006 12:21
Re : nat-adiabatische lapse rate...   ( 46)
Jorr(Utrecht) -- 03-05-2006 12:17
Hier de link   ( 33)
Jorr(Utrecht) -- 03-05-2006 12:25