Suomen sääkeskus http://www.harjuhovila.net/beehive/

Hyvä sää on makuasia
 
 
"Under the hood" - GrADS script snippets, formulas, equations, etc.
The majority of this expressions are from internet sources like Wikipedia.
Special thanks go to Oliver Schlenczek and Eerik Saarikalle for help with some special issues.

Dewpoint temperature

Calculated for 2m above ground
tc2m = temperature 2m above ground [°C]
rh2m = relative humidity 2m above ground [%]
'define dewp2m = tc2m-((14.55+0.114*tc2m)*(1-0.01*rh2m)+pow((2.5+0.007*tc2m)
                 *(1-0.01*rh2m),3)+(15.9+0.117*tc2m)*pow((1-0.01*rh2m),14))'

Equivalent Potential Temperature 850hPa

tc850mb = temperature at 850hPa [°C]
rh850mb = relative humidity at 850hPa [%]
'define dewp850mb = tc850mb-((14.55+0.114*tc850mb)*(1-0.01*rh850mb)+pow((2.5+0.007*tc850mb)
                    *(1-0.01*rh850mb),3)+(15.9+0.117*tc850mb)*pow((1-0.01*rh850mb),14))'
'define vapr850mb = 6.112*exp((17.67*dewp850mb)/(dewp850mb+243.5))'
'define e850mb    = vapr850mb*1.001+(850-100)/900*0.0034'
'define w850mb    = 0.62197*(e850mb/(850-e850mb))'
'define te850mb   = tmp850mb+(2260000*w850mb/1004)'
'define ept850mb  = (te850mb*pow((1000/850),(287/1004)))-273.16'

Equivalent Potential Temperature 500hPa

This procedure is designed for Northern / Central Europe and uses the equation for saturation pressure over ice.
tc500mb = temperature at 500hPa [°C]
rh500mb = relative humidity at 500hPa [%]
'define dewp500mb = tc500mb-((14.55+0.114*tc500mb)*(1-0.01*rh500mb)+pow((2.5+0.007*tc500mb)
                    *(1-0.01*rh500mb),3)+(15.9+0.117*tc500mb)*pow((1-0.01*rh500mb),14))'
'define vapr500mb = 6.1115*exp((23.036-dewp500mb/333.7)*dewp500mb/(279.82+dewp500mb))'
'define e500mb    = vapr500mb*1.001+(500-100)/900*0.0034'
'define w500mb    = 0.62197*(e500mb/(500-e500mb))'
'define te500mb   = tmp500mb+(2260000*w500mb/1004)'
'define ept500mb  = (te500mb*pow((1000/500),(287/1004)))-273.16'

Potential Instability

ept500mb = equivalent potential temperature at 500hPa [K]
ept850mb = equivalent potential temperature at 850hPa [K]
'd ept500mb-ept850mb'

Storm-relative Helicity 0-3km

ugrdprs,vgrdprs = u/v component of wind at given level
'define u1000=ugrdprs(lev=1000)'
'define u950=ugrdprs(lev=950)'
'define u900=ugrdprs(lev=900)'
'define u850=ugrdprs(lev=850)'
'define u800=ugrdprs(lev=800)'
'define u750=ugrdprs(lev=750)'
'define u700=ugrdprs(lev=700)'
'define u650=ugrdprs(lev=650)'
'define u600=ugrdprs(lev=600)'
'define u550=ugrdprs(lev=550)'
'define u500=ugrdprs(lev=500)'
'define u450=ugrdprs(lev=450)'
'define u400=ugrdprs(lev=400)'

'define v1000=vgrdprs(lev=1000)'
'define v950=vgrdprs(lev=950)'
'define v900=vgrdprs(lev=900)'
'define v850=vgrdprs(lev=850)'
'define v800=vgrdprs(lev=800)'
'define v750=vgrdprs(lev=750)'
'define v700=vgrdprs(lev=700)'
'define v650=vgrdprs(lev=650)'
'define v600=vgrdprs(lev=600)'
'define v550=vgrdprs(lev=550)'
'define v500=vgrdprs(lev=500)'
'define v450=vgrdprs(lev=450)'
'define v400=vgrdprs(lev=400)'

'define umean=(u1000+u950+u900+u850+u800+u750+u700+u650+u600+u550+u500+u450+u400)/13.0'
'define vmean=(v1000+v950+v900+v850+v800+v750+v700+v650+v600+v550+v500+v450+v400)/13.0'
'define ushear=u500-u1000'
'define vshear=v500-v1000'
'define shear=mag(ushear,vshear)'
'define umotion=((umean+(7.5/(shear))*vshear))'
'define vmotion=((vmean-(7.5/(shear))*ushear))'

'define srh1=((u950-umotion)*(v1000-vmotion)-(u1000-umotion)*(v950-vmotion))'
'define srh2=((u900-umotion)*(v950-vmotion)-(u950-umotion)*(v900-vmotion))'
'define srh3=((u850-umotion)*(v900-vmotion)-(u900-umotion)*(v850-vmotion))'
'define srh4=((u800-umotion)*(v850-vmotion)-(u850-umotion)*(v800-vmotion))'
'define srh5=((u750-umotion)*(v800-vmotion)-(u800-umotion)*(v750-vmotion))'
'define srh6=((u700-umotion)*(v750-vmotion)-(u750-umotion)*(v700-vmotion))'

'define srh3km=srh1+srh2+srh3+srh4+srh5+srh6'

Total Totals Index

tc500mb = temperature at 500hPa [°C]
tc850mb = temperature at 850hPa [°C]
dewp850mb = dew point temperature at 850hPa [°C]
'define ttindex = tc850mb+dewp850mb-(2*tc500mb)'

Lifting Condensation Level

dewp2m = dew point temperature at 2m above ground [K]
tmp2m = temperature at 2m above ground [K]
pressfc = surface pressure [Pa]
*Temperature at LCL
'define tlcl=(((1/(1/(dewp2m-56)+log((tmp2m/dewp2m))/800))+56)-273.16)'
*Pressure at LCL
'define plcl=(pressfc*pow(((tlcl+273.16)/tmp2m),(7/2)))/100'

Wind chill index (new method)

tc2m = temperature at 2m above ground [°C] urgd10m, vgrd10m = u/v component of wind 10m above ground
'define windchill2m = 13.12+(0.6215*tc2m)-(11.37*pow((mag(ugrd10m,vgrd10m)*3.6),0.16))
                      +(0.3965*tc2m*pow((mag(ugrd10m,vgrd10m)*3.6),0.16))'

Wind shear (low level shear 0-1km and deep layer shear 0-6km)

u500, v500 = u/v component of wind at 500hPa
u900, v900 = u/v component of wind at 900hPa
urgd10m, vgrd10m = u/v component of wind 10m above ground
'define dls = mag(abs(u500-ugrd10m),abs(v500-vgrd10m))'
'define lls = mag(abs(u900-ugrd10m),abs(v900-vgrd10m))'