function [A_el,F_el] = cal_Melm_Q2Q1(iel,Fext,U);
//
   global CONNEC COOR Nelt Nno Npt;
   global NUMER ADRESS Nno_u Nno_p;
   global XG PG Ng;

   Ndof_el = 2*Nno_u + Nno_p;
//
   x  = COOR(CONNEC(iel,:),1); y  = COOR(CONNEC(iel,:),2);
   Fx = Fext(ADRESS(iel,1:Nno_u));   Fy = Fext(ADRESS(iel,(Nno_u+1):2*Nno_u));
   
   A_el = zeros(Ndof_el,Ndof_el); F_el = zeros(Ndof_el,1);

 S11 = zeros(Nno_u,Nno_u); S22 = zeros(Nno_u,Nno_u);  S12 = zeros(Nno_u,Nno_u);
 K13 = zeros(Nno_u,Nno_p); K23 = zeros(Nno_u,Nno_p);  K33 = zeros(Nno_p,Nno_p);
 F1 = zeros(Nno_u,1); F2 = zeros(Nno_u,1); F3 = zeros(Nno_p,1);

   for ig=1:Ng    // double boucle pour l'integration numerique
    xg = XG(ig);
    for jg=1:Ng
       yg = XG(jg);
//
// calcul de la matrice jacobienne
//
          [FP,DxiFP,DetaFP] = Q1(xg,yg);
          j11 = x(1:4)'*DxiFP; 
          j12 = x(1:4)'*DetaFP;   
          j21 = y(1:4)'*DxiFP;  
          j22 = y(1:4)'*DetaFP;
//
          DT  = [j11 j12; j21 j22];
          jac = det(DT);
          B = inv(DT)';
//   
       [FP_u,DxiFP_u,DetaFP_u] = Q2(xg,yg);
       [FP_p,DxiFP_p,DetaFP_p] = Q1(xg,yg);

       for i=1:Nno_u
          DFPi_u = B*[DxiFP_u(i); DetaFP_u(i)];
          F1(i) = F1(i) + PG(ig)*PG(jg)*Fx(i)*FP_u(i)*jac;
          F2(i) = F2(i) + PG(ig)*PG(jg)*Fy(i)*FP_u(i)*jac;

          for j=1:Nno_u
            DFPj_u = B*[DxiFP_u(j); DetaFP_u(j)]; 

            S11(i,j) = S11(i,j) + PG(ig)*PG(jg) * DFPj_u(1)*DFPi_u(1) *jac;
            S22(i,j) = S22(i,j) + PG(ig)*PG(jg) * DFPj_u(2)*DFPi_u(2) *jac;
            S12(i,j) = S12(i,j) + PG(ig)*PG(jg) * DFPj_u(1)*DFPi_u(2) *jac;
          end;

          for j=1:Nno_p
             K13(i,j) = K13(i,j) - PG(ig)*PG(jg)* FP_p(j)*DFPi_u(1) *jac;
             K23(i,j) = K23(i,j) - PG(ig)*PG(jg)* FP_p(j)*DFPi_u(2) *jac;
          end;
       end;
    end;
  end;

  K11 = 2*S11 + S22; K12 = S12; 
  K21 = K12';  K22 = S11 + 2*S22;
  K31 = K13'; K32 = K23';

  A_el = clean([K11 K12 K13; K21 K22 K23; K31 K32 K33]);
  F_el = clean([F1; F2; F3]);

endfunction

