C+ C NAME: C Get3Dval C PURPOSE: C 3D linear interpolationInterpolates values from positions specified as C XC,XL,RP (modified Carrington variable, latitude (deg) and distance (AU) C CATEGORY: C Data processing C CALLING SEQUENCE: subroutine Get3Dval(XCbeg,Xcend,RR,dRR,nLng,nLat,nRad,F3D,N,XC,XL,RP,FF) C INPUTS: (all input is read-only) C RR real C dRR real Distance between individual maps (in AU) C nLng integer # longitudes C nLat integer # latitudes C nRad integer # DF maps formed (height begins ~0 AU) C F3D(nLng,nLat,nRad) real 3D array (longitude, latitude, radial distance) C N integer # points C C XC(N) real Modified Carrington variable C XL(N) real Heliographic latitude (deg) C RP(N) real Heliocentric distance (AU) C OUTPUTS: C FF(N) real Interpolated function values C CALLS: C FLINT C INCLUDE: C include 'mapcoordinates.h' C PROCEDURE: C > The modified Carrington variable is mapped to the range [1,nLng] C The latitude is mapped to the range [1,nLat] C The distance is mapped to the range [1,nRad] C > For each point, if any of the neighbours contains a bad value, or if any of the C coordinates is more than one bin width outside the index ranges, then the value C BadR4() is returned (see FLINT). C MODIFICATION HISTORY: C MAY-1997, Paul Hick (UCSD; pphick@ucsd.edu) C- real F3D(nLng,nLat,nRad) real XC(N) real XL(N) real RP(N) real FF(N) integer ND(3) real PP(3) include 'mapcoordinates.h' ND(1) = nLng ND(2) = nLat ND(3) = nRad do I=1,N PP(1) = XCvar(XC(I)) PP(2) = XLindx(XL(I)) PP(3) = RRindx(RP(I)) FF(I) = FLINT(-3,ND,F3D,PP,0.00002) ! Minus sign forces check for bad values end do return end