lib_proj_sinusoidal
private
public :: convLonLatToSinusoidal
public :: convSinusoidalToLonLat
real(8), parameter :: pi = acos(-1.d0)
convLonLatToSinusoidal(lon, lat, x, y, lon_0, a, e)
implicit none
real(8), intent(in) :: lon, lat
real(8), intent(out) :: x, y
real(8), intent(in) :: lon_0
real(8), intent(in) :: a
real(8), intent(in) :: e
real(8) :: b
call calcParams(a, e, b)
x = a*0.5d0 * (lon - lon_0) * cos(lat)
y = b*0.5d0 * lat / pi
convLonLatToSinusoidal
convSinusoidalToLonLat_0d(x, y, lon, lat, lon_0, a, e)
implicit none
real(8), intent(in) :: x, y
real(8), intent(out) :: lon, lat
real(8), intent(in) :: lon_0
real(8), intent(in) :: a
real(8), intent(in) :: e
real(8) :: b
call calcParams(a, e, b)
lat = y * pi / (b*0.5d0)
lon = x / (cos(lat) * a*0.5d0) + lon_0
convSinusoidalToLonLat_0d
calcParams(a, e, b)
implicit none
real(8), intent(in) :: a
real(8), intent(in) :: e
real(8), intent(out) :: b
b = a * sqrt(1-e**2)
calcParams
lib_proj_sinusoidal