double Nzmsq(nu1,yx1,yx2,yy1,yy2,yz1,yz2,x,y,z,t)
double nu1,yx1,yy1,yz1,yx2,yy2,yz2,x,y,z,t;
{
       double Pi=3.14159265358979324;
       double sinh(),cosh(),cos(),sqrt();
       double psi,psih,rfxhh,fxhh,Lfxhh,L1fxhh,L2fxhh;
       double d10psi,d01psi,d11psi,d20psi,d02psi;
       double d10rfxhh,d01rfxhh,d11rfxhh,d20rfxhh,d02rfxhh;
       double d10fxhh,d01fxhh,d11fxhh,d20fxhh,d02fxhh;
       double dAfxhh,d00fxhh,c11,c12,c21,c22;
       double nu2,c0,s02,c1,c2,s1,s2,x1,x12;
       double r1,r2,r1r2h,r12,r22,r1r2h2,m1,m2;
       double u1,u11,u12,u2,u21,u22,w2,w21,w22;
       double v1,v11,v12,v2,v21,v22;

       x1=sqrt((yx2-yx1)*(yx2-yx1)+(yy2-yy1)*(yy2-yy1)+(yz2-yz1)*(yz2-yz1));
       r1=sqrt((x-yx1)*(x-yx1)+(y-yy1)*(y-yy1)+(z-yz1)*(z-yz1));
       r2=sqrt((x-yx2)*(x-yx2)+(y-yy2)*(y-yy2)+(z-yz2)*(z-yz2));
       r1r2h=((x-yx1)*(x-yx2)+(y-yy1)*(y-yy2)+(z-yz1)*(z-yz2))/r1/r2;
       x12=x1*x1;
       r12=r1*r1;
       r22=r2*r2;
       r1r2h2=r1r2h*r1r2h;
       nu2=1-nu1;
       m1=2*Pi*nu1;
       m2=2*Pi*nu2;
       c0=cos(2*Pi*t);
       s02=1.0-c0*c0;
       c1=cosh(m1*r1);
       c2=cosh(m2*r2);
       s1=sinh(m1*r1);
       s2=sinh(m2*r2);

       u1=s1/r1;
       u11=(m1*c1-u1)/r1;
       u12=(m1*m1*s1-2*u11)/r1;
       u2=s2/r2;
       u21=(m2*c2-u2)/r2;
       u22=(m2*m2*s2-2*u21)/r2;
       v1=s1*r1;
       v11=m1*c1*r1+s1;
       v12=m1*(m1*s1*r1+2*c1);
       v2=s2*r2;
       v21=m2*c2*r2+s2;
       v22=m2*(m2*s2*r2+2*c2);
       c11=m1*s1;
       c12=m1*m1*c1;
       c21=m2*s2;
       c22=m2*m2*c2;
       w2=(c2-1)/r22/2;
       w21=c21/r22/2-2*w2/r2;
       w22=c22/r22/2-2*c21/r22/r2+6*w2/r22;

         psih=c1*c2+c2*x1*u1+c1*x1*u2+x12*u1*u2/2+u2*v1/2+u1*v2/2;
       d10psi=c11*c2+c2*x1*u11+c11*x1*u2+x12*u11*u2/2+u2*v11/2+u11*v2/2;
       d01psi=c1*c21+c21*x1*u1+c1*x1*u21+x12*u1*u21/2+u21*v1/2+u1*v21/2;
       d11psi=c11*c21+c21*x1*u11+c11*x1*u21+x12*u11*u21/2+u21*v11/2+u11*v21/2;
       d20psi=c12*c2+c2*x1*u12+c12*x1*u2+x12*u12*u2/2+u2*v12/2+u12*v2/2;
       d02psi=c1*c22+c22*x1*u1+c1*x1*u22+x12*u1*u22/2+u22*v1/2+u1*v22/2;

       psi=psih-c0;

          rfxhh=x1*u1*u2+c1*u2+u1/2+u1*c2/2+w2*(2*x1*c1+v1+x12*u1);
       d10rfxhh=x1*u11*u2+c11*u2+u11/2+u11*c2/2+w2*(2*x1*c11+v11+x12*u11);
       d01rfxhh=x1*u1*u21+c1*u21+u1*c21/2+w21*(2*x1*c1+v1+x12*u1);
       d11rfxhh=x1*u11*u21+c11*u21+u11*c21/2+w21*(2*x1*c11+v11+x12*u11);
       d20rfxhh=x1*u12*u2+c12*u2+u12/2+u12*c2/2+w2*(2*x1*c12+v12+x12*u12);
       d02rfxhh=x1*u1*u22+c1*u22+u1*c22/2+w22*(2*x1*c1+v1+x12*u1);

       fxhh=rfxhh/psi;
       d10fxhh=(d10rfxhh-d10psi*fxhh)/psi;
       d01fxhh=(d01rfxhh-d01psi*fxhh)/psi;
       d11fxhh=(d11rfxhh-d11psi*fxhh+(2*d01psi*d10psi*fxhh-
                d01rfxhh*d10psi-d01psi*d10rfxhh)/psi)/psi;
       d20fxhh=(d20rfxhh-d20psi*fxhh+2*d10psi*(d10psi*fxhh-d10rfxhh)/psi)/psi;
       d02fxhh=(d02rfxhh-d02psi*fxhh+2*d01psi*(d01psi*fxhh-d01rfxhh)/psi)/psi;

       L1fxhh=d20fxhh+2*d10fxhh/r1;
       L2fxhh=d02fxhh+2*d01fxhh/r2;
       Lfxhh=L1fxhh+L2fxhh+2*r1r2h*d11fxhh;
       d00fxhh=fxhh*(2*s02/psi-c0)*4*Pi*Pi/psi;

       dAfxhh=Lfxhh+d00fxhh;

       return(-dAfxhh/4/Pi);
}