McIDAS Programmer's Manual
Scientific utilities
The McIDAS-X library provides a set of scientific utilities for computing meteorological parameters such as potential temperature, equivalent potential temperature, and mixing ratio.
The table below provides an alphabetical listing of the scientific utilities provided in McIDAS-X.
|
|
|
not available
|
lab
|
computes potential and equivalent potential temperature and mixing ratio, given the temperature, dew point, pressure, and station elevation
|
McAdvectParm
|
mcadvectparm
|
advects a gridded parameter
|
McBeta
|
mcbeta
|
computes beta parameter

|
McCape
|
mccape
|
computes Convective Available Potential Energy
|
McCoriolis
|
mccorfor
|
computes the coriolis parameter (f=2Ω)
|
McDewpt
|
mcdewpt
|
computes dewpoint
|
McDirec
|
mcdirec
|
computes meteorological direction of wind for u- and v-components
|
McDiver
|
mcdiver
|
computes divergence

|
McDivergeParm
|
mcdivergeparm
|
compute divergence of gridded parameter
|
McHeatIndex
|
mcheatindex
|
computes the heat index, given the temperature and dewpoint
|
McHelic
|
mchelic
|
computes helicity
|
McHypsoP
|
mchypsop
|
integrates hyposometric equation to compute a pressure at a given height
|
McHypsoZ
|
mchypsoz
|
integrates hyposometric equation to compute a new height at a given pressure
|
McLatentHeat
|
mclatvap
|
latent heat of vaporization
|
McLiftCLevel
|
mclcl
|
parcel temperature and pressure at LCL
|
McMixing
|
mcrmix
|
mixing ratio
|
McPFromTheta
|
mcpfromtheta
|
returns pressure when given theta and temperature
|
McRelativeHumidity
|
mcrelativehumidity
|
computes the relative humidity, given the temperature and dewpoint
|
McSatVapor
|
mcsatvap
|
saturation vapor pressure over water
|
McSatVaporIce
|
mcsatvapi
|
saturation vapor pressure over ice
|
McSheard
|
mcsheard
|
computes shear deformation

|
McSndAnl
|
mcsndanl
|
computes various stability parameters, given a sounding
|
McSpeed
|
mcspeed
|
computes wind speed from u- and v-components
|
McStationPres
|
mcstnpres
|
station pressure, given altimeter and station elevation
|
McStretd
|
mcstretd
|
computes the stretching deformation

|
McTDFromMixing
|
mctamr
|
computes dew point from mixing ratio
|
McTempAtThetae
|
mctasa
|
temperature along saturated adiabats
|
McTFromTheta
|
mctfromtheta
|
returns temperature when given theta and pressure
|
McTheta
|
mctheta
|
potential temperature
|
McThetae
|
mcthetae
|
equivalent potential temperature
|
McThetaw
|
mcthetaw
|
wet bulb potential temperature
|
McUandV
|
mcuandv
|
computes wind u- and v-components
|
McVirtTemp
|
mcvirttemp
|
virtual temperature
|
McVort
|
mcvort
|
computes vorticity

|
McWetBulb
|
mcwetbulb
|
wet bulb temperature
|
McWindChill
|
mcwindchill
|
computes the wind chill, given the temperature and wind speed (old formula)
|
McWindChill2001
|
mcwindchill2001
|
computes the wind chill, given the temperature and wind speed (uses the 2001 algorithm)
|
not available
|
rmix
|
determines the mixing ratio, given the temperature and pressure
|
|
For more information about these scientific functions, see the online man pages provided with the McIDAS-X software.
|
Computing isentropic surfaces
Given the temperature, dew point and pressure, the lab function computes the following:
- potential temperature
- equivalent potential temperature
- mixing ratio
To compute these meteorological parameters using the pressure at the station instead of the reported pressure, which has been corrected to sea level, the lab function will automatically adjust for the pressure differences due to elevation.
The following example computes potential and equivalent potential temperatures, and mixing ratio with adjustments made to the pressure based on the height.
double precision derived(3) ! derived parameters
double precision dewpt ! dewpt in K
double precision elev ! elevation in meters
double precision miss ! missing data code
double precision press ! pressure in mb
double precision temp ! temperature in K
temp = 292.d0
dewpt= 289.d0
press=1018.29
miss=1.e35
elev=214
C the adjustment based on elevation is done
call lab(temp,dewpt,press,elev,1,miss,derived,3)
C this will return theta-e in derived(1), theta in derived(1)
C and mixing ratio in derived(3)
C the values returned will be:
C derived(1) = 323.115
C derived(2) = 292.612
C derived(3) = 11.521
C the adjustment based on elevation is not done
call lab(temp,dewpt,press,elev,0,miss,derived,3)
C the values returned will be:
C derived(1) = 319.961
C derived(2) = 290.491
C derived(3) = 11.226
|
Computing Heat Index
Given the temperature and dew point, the functions McHeatIndex and mcheatindex will compute the heat index. The value returned will be given in the same units as the input temperature. Below is an example of the function mcheatindex .
integer ok
double precision temperature
double precision dewpoint
double precision heatindex
temperature = 30.d0
dewpoint = 20.d0
ok = mcheatindex (temperature, dewpoint, 'C', heatindex)
if (ok .lt. 0)then
call sdest('error calculating the heat index',0)
return
endif
c--- upon successful completion the value of heatindex will
c--- be 32.5 degrees Celsius
|
Computing Relative Humidity
Given the temperature and dew point, the functions McRelativeHumidity and mcrelativehumidity will compute the relative humidity. The value returned will be given in the dimensionless units of percentage. Below is an example of the function mcrelativehumidity .
integer ok
double precision temperature
double precision dewpoint
double precision rh
temperature = 30.d0
dewpoint = 20.d0
ok = mcrelativehumidity (temperature, dewpoint, 'C', rh)
if (ok .lt. 0)then
call sdest('error calculating the relative humidity',0)
return
endif
c--- upon successful completion the value of rh will be 55.1
|
Computing Wind Chill
Given the temperature and wind speed, the functions McWindChill and mcwindchill will compute the wind chill. The value returned will be given in the same units as the input temperature. Below is an example of the mcwindchill function.
integer ok
double precision temperature
double precision windspeed
double precision windchill
temperature = 20.d0
windspeed = 10.d0
ok = mcwindchill (temperature, windspeed, 'F', 'MPS',
& windchill)
if (ok .lt. 0)then
call sdest('error calculating the wind chill',0)
return
endif
c---upon successful completion the value of windchill will
c---be -15 degrees Fahrenheit
|
Computing mixing ratio
Given a temperature, in Kelvin, and the pressure, in mb, the rmix function will return the mixing ratio. The returned value, ws, is defined as the mass of water vapor per mass of dry air. It is dimensionless, with units of g/kg. The sample code below computes the saturation mixing ratio at 0° Celsius for all pressures 100, 150, 200, 250, ... 950, 1000 mb, resulting in 40.44, 26.39, 19.59, 15.57, ... 4.02, 3.82 g/kg.
integer i
real temperature
real pressure
real mix
temperature=273.15
do 100 i=1000,100,-50
pressure=float(i)
mix=rmix(temperature,pressure)
100 continue
|
Computing stability parameters
Given vertical profiles of pressure, temperature, dew point, wind speed and direction, the sndanl function computes these stability indices:
- parcel dew point, potential temperature, equivalent potential temperature and mixing ratio
- precipitable water
- convective temperature and forecast maximum temperature (for data from 1200 UTC only)
- lifted index, total-totals index, K-index and sweat index
- equilibrium pressure level
Below is an example of the sndanl function.
parameter (NLEV = 9)
real press(NLEV)
real temp(NLEV)
real dewpt(NLEV)
real dir(NLEV)
real spd(NLEV)
real stabil(12)
c--- get sounding data
:
c--- assume the arrays; press, temp, dewpt, dir and spd
c--- have been initialized with the following values
c--- press(mb) temp(K) dewpt(K) dir(DEG) spd(MPS)
c--- 988.0 300.0 299.8 250 1.5
c--- 925.0 303.0 280.0 270 3.8
c--- 850.0 297.7 269.0 285 5.6
c--- 700.0 277.5 276.1 290 12.3
c--- 500.0 262.1 252.1 265 13.3
c--- 400.0 253.6 240.5 280 29.8
c--- 300.0 237.6 226.0 280 33.4
c--- 250.0 229.7 215.7 285 41.6
c--- 200.0 216.3 206.3 285 45.7
c--- perform the sounding analysis for 00Z
call sndanl (0, NLEV, press, temp, dewpt, dir, spd, stabil)
c--- upon return, the values stored in stabil will be as follows:
c--- stabil(1) 282.4 parcel dewpoint (k)
c--- stabil(2) 301.1 potential temperature (k)
c--- stabil(3) 324.1 equivalent potential temperature (k)
c--- stabil(4) 8.3 mixing ratio (g/kg)
c--- stabil(5) 23.7 precipitable water (mm)
c--- stabil(6) 32.7 convective temperature (c)
c--- stabil(7) 26.9 forecast maximum temperature (c)
c--- stabil(8) 2.7 lifted index (k)
c--- stabil(9) 33.4 total totals
c--- stabil(10) 445.5 equivalent pressure (mb)
c--- stabil(11) 20.6 k index
c--- stabil(12) 47.6 sweat index
|