RMNLIB

(INTERP1D_*, EXTRAP1D_* GENERIC ARGUMENTS)



The arguments to all of the Interp1D_* and Extrap1D_* routines are identical, for ease of switching a call from one to another of them. This is their generic meaning:
Input:
vLevelSource(src_ijDim, srcNumLevels) array of source co-ordinates (vertical levels)
stateSource(src_ijDim, srcNumLevels) array of source state values (e.g. temp) at each of the source co-ordinates
stateDerivSource(src_ijDim, srcNumLevels) array of derivatives of the source state value at each of the source co-ordinates
.
posnDestInSrc(dst_ijDim, destNumLevels) position (index) of vLevelSource that is just before the corresponding vLevelDestn. This is the array that was calculated by Interp1D_FindPos.
vLevelDestn(dst_ijDim, destNumLevels) array of destination co-ordinates (vertical levels)
.
extrapEnableDown enables extrapolation at indices below those of vLevelSource. If this argument is .true., the downward extrapolation is performed; if .false., it is not.
extrapEnableUp enables extrapolation at indices above those of vLevelSource. If this argument is .true., the upward extrapolation is performed; if .false., it is not.
extrapGuideDown data controlling extrapolation at indices below those of vLevelSource. The exact meaning depends on the extrapolation routine chosen.
extrapGuideUp data controlling extrapolation at indices above those of vLevelSource. The exact meaning depends on the extrapolation routine chosen.
m_slStateValue** subroutine that returns the normalized state value (or other, depending on what is supplied for the state)at the desired height. The routine supplied here is usually slfun_tq (or slfun_uv for wind) from the physical library. Click on the parameter name for a description of its own parameters.
ExtArraysIn(src_ijDim, numExtArraysIn)** extension to this interface to accommodate more input arrays, where the significance of the array is determined according to the second index of ExtArraysIn:
INDEX SIGNIFICANCE
1 zo+ (roughness length)
2 ilmo+ (inverse of Monin-Obukhov length)
3 hBound+ (height of the boundary layer)
4 ft (normalized flux at the surface), in (units of the state) / (units returned by m_slStateValue());
This is normalized surface stress (as can be obtained from sltop_uv of the physics library), if stateSource represents the wind
5 angleTop, in radians (horizontal angle of ft at the top of the surface layer, when that is a vector)
6 latitude of each column, in radians
+ - passed transparently to m_slStateValue()
Dimensions of input and output arrays (these are input values):
numInterpSets number of sets to be interpolated (i.e. number of horizontal points at which vertical interpolation will be performed). This is the number of points that will actually be used in the three arrays.
src_ijDim dimensioned size (horizontal) of all source arrays; i.e your source arrays have room for how many columns? Value >= numInterpSets
dst_ijDim dimensioned size (horizontal) of all desination arrays; i.e your desination arrays have room for how many columns? Value >= numInterpSets
.
srcNumLevels number of points (vertical) in all source arrays which contain data. The actual dimension may be larger.
destNumLevels number of points (vertical) in all desination arrays which contain data. The actual dimension may be larger.
numExtArraysIn** the number of arrays that are being passed in the ExtArraysIn variable; i.e. the third dimension of ExtArraysIn.
VALUE USE
0 none of the below
4 for surface extrapolation
6 for surface extrapolation of a vector (i.e. wind)
numExtArraysOut** the number of arrays that are being passed in the ExtArraysOut variable; i.e. the third dimension of ExtArraysOut.
Output:
stateDestn(dst_ijDim, destNumLevels) array of destination state values (e.g. temp) at each of the destination co-ordinates
stateDerivDestn(dst_ijDim, dstNumLevels) array of derivatives of the destination state value at each of the destination co-ordinates
ExtArraysOut(dst_ijDim, numExtArraysOut)** extension to this interface to accommodate more output arrays, where the significance of the array is determined according to the second index of ExtArraysOut:
INDEX SIGNIFICANCE
1 to destNumLevels* y-component of stateDestn, matching the x-component in stateDestn
destNumLevels+1 to 2*destNumLevels* y-component of stateDerivDestn, matching the x-component in stateDerivDestn
* - used only for wind

** - the former interface without these parameters (routines without the _X suffix) is supported for those routines that existed at the time. The current interface is encouraged for all new software.



Return to RPN Libraries home page
Return to product index
Last updated: December 5, 2003