	function [x, y, k] = ll2mtu (phi0, lambda0, phi, lambda)
%
% LL2MTU: transformation des coordonnees spheriques de position en
%         coordonnees cartesiennes par une projection Mercator
%         transverse de l'ellipsoide de Clarke (1866).
%
%         [x, y, k] = ll2mtu (phi0, lambda0, phi, lambda)
%
%         x       premiere coordonnee cartesienne
%         y       seconde coordonnee cartesienne
%         k       facteur de deformation relative tout
%                 au long du parallele de latitude phi
%         phi0    latitude a l'origine des coordonnees cartesiennes
%         lambda0 longitude a l'origine des coordonnees
%                 cartesiennes correspondant au meridien
%                 central de la projection
%         phi     latitude du parallele de la coordonnee spherique
%         lambda  longitude du meridien de la coordonnee spherique

%	   
%  Pierre VINET
%  Departement d'oceanographie
%  Universite du Quebec a Rimouski
%  310 allee des Ursulines, Rimouski, Quebec, G5L 3A1
%  (418)723-1986 p_vinet@uqar.uquebec.ca
%                   
% ref : SNYDER, J. P. (1987).  Map Projections- A Working Manual,
%                              U. S. Geological Survey professionnal paper 1395,
%                              Washington, 383 pages.

%
%-- Conversion des angles en radians
	phi0    = deg2rad(phi0);
	lambda0 = deg2rad(lambda0);
	phi     = deg2rad(phi);
	lambda  = deg2rad(lambda);
%
%-- Ellipsoide de Clarke (1866); cf: table 1, page 12. 
	a  = 6378206.4;                 % Rayon terrestre equatorial
	b  = 6356583.8;                 % Rayon terrestre polaire
%       f  = (1./294.98);               % Applatissement
	e2 = 0.006768658;               % Carre de l'excentricite; page 13.
	e4 = e2.*e2;
	e6 = e4.*e2;
%
%-- Facteur de deformation au meridien central de longitude phi0
%   lors d'une projection MTU
	k0 = 0.9996;                   % page 61.
%
%-- Distance vraie de l'equateur a la latitude phi1 
%   le long du meridien central lambda0; eq. 3-21
	phi1 = phi;
        M    = a.*((1 - (e2./4) - (3./64).*e4 - (5./256).*e6).*phi1 ...
             - ((3./8).*e2 + (3./32).*e4 + (45./1024).*e6).*sin(2.*phi1) ...
             + ((15./256).*e4 + (45./1024).*e6).*sin(4.*phi1) ...
             - ((35./3072).*e6).*sin(6.*phi1));
	phi1 = phi0;
        M0   = a.*((1 - (e2./4) - (3./64).*e4 - (5./256).*e6).*phi1 ...
             - ((3./8).*e2 + (3./32).*e4 + (45./1024).*e6).*sin(2.*phi1) ...
		     + ((15./256).*e4 + (45./1024).*e6).*sin(4.*phi1) ...
		     - ((35./3072).*e6).*sin(6.*phi1));
%
%-- Cas des poles
	pis2 = pi./2;
	if phi == pis2 | phi == -pis2,
	   x = 0;
	   y = k0.*(M - M0);
	   k = k0;
	   return
        end
%
	ep2 = e2./(1-e2);                           % eq. 8-12
	N   = a./((1 - (e2.*(sin(phi).^2))).^0.5);  % eq. 4-20
%
	T  = tan(phi).^2;                           % eq. 8-13
	T2 = T.*T;
%
        C  = ep2.*(cos(phi).^2);                    % eq. 8-14
	C2 = C.*C;
%
	A  = (lambda - lambda0).*cos(phi);          % eq. 8-15
	A2 = A.*A;
	A3 = A2.*A;
	A4 = A3.*A;
	A5 = A4.*A;
	A6 = A5.*A;
%
%-- Developpement en serie pour x, y, k; eqs 8-9, 8-10 et 8-11.
	x = k0.*N.*(A + (1 - T + C).*A3./6 ...
            + (5 - 18.*T + T2 +72.*C - 58.*ep2).*A5./120);
        y = k0.*(M - M0 + N.*tan(phi).* ...
	    (A2./2 + (5 - T + 9.*C + 4.*C2).*A4./24 ...
            + (61 - 58.*T + T2 + 600.*C - 330.*ep2).*A6./720));
        k = k0.*(1 + (1 + C).*A2./2 ...
	    + (5 - 4.*T + 42.*C + 13.*C2 - 28.*ep2).*A4./24 ...
	    + (61 - 148.*T + 16.*T2).*A6./720);
%
	return
	end