// Ce code source est régi par la licence CeCILL V2.1 soumise au droit français et 
//respectant les principes de diffusion des logiciels libres. Il est autorisé de modifier 
//et/ou redistribuer ce code sous les conditions de la licence CeCILL V2.1. Le texte complet
// de la licence CeCILL V2.1 est dans le fichier `LICENSE`.

// fonction qui prend en entrée le nom d'une série et retourne la série px A-1 (calculée à partir des séries en vol px A-1 et en valeur)

addfun main;

procedure main(xvolvo,xval)
{
// calcul de la série annuelle
	
	xvolvo_an = compact(xvolvo,0,1);
	xval_an = compact(xval,0,1);
	t0 = startdate(xvolvo_an);
	// Année de base des comptes nationaux, à modifier à chaque changement de base.
	t1 = 2010A;
	t2 = enddate(xvolvo_an);
	xpxbase_an = 1;
	i = 1;    

    for (j=t1-1;j>=t0-1;j=j-1)
	{
	valeur = (xvolvo_an[j+1]/xval_an[j+1])*xpxbase_an[1];
     	xpxbase_an = c.(valeur,xpxbase_an);
	i = i+1;
        }

    for (j=t1+1;j<=t2;j=j+1)
	{
	valeur = (xval_an[j]/xvolvo_an[j])*xpxbase_an[i]; 
	xpxbase_an = c.(xpxbase_an,valeur);
	i = i+1;
        }

// calcul de la série trimestrielle

	xpxbase = reshape(expand(xpxbase_an,4),convert(convert(date2year(t0),"string")||"q1","date"));
		
  return(xpxbase); 
  }
