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); }