SUBROUTINE BLH_XYZ(CRS,BLH,XYZ) !输入BLH-纬度、经度(度)、大地高 implicit none real*8::CRS(5),a,f,BLH(3),XYZ(3) real*8 slat,clat,slon,clon,v,h,e2,RAD !----------------------------------------------------------------------- a=CRS(2); f=CRS(5) !1/f e2=(2.d0-f)*f h=BLH(3) RAD=datan(1.d0)/45.d0 slat = dsin(BLH(1)*RAD) clat = dcos(BLH(1)*RAD) slon = dsin(BLH(2)*RAD) clon = dcos(BLH(2)*RAD) v = a / dsqrt(1.d0-e2*slat*slat) XYZ(1) = (v+h) * clat * clon XYZ(2) = (v+h) * clat * slon XYZ(3) = (v*(1.d0-e2)+h) * slat return end