function tempSaltdc(d,c,p){var tlo=0.0;var thi=100.0;var err=1.0;var dNew;var i=0;while((Math.abs(err)>0.00001)&&(i<binaryLimit)){t=(thi+tlo)/2.0;s=salinity(c,t,p)
dNew=density(s,t,p);err=(dNew-d)/d;if(err<0.0){thi=t;}else{tlo=t;}++i;}if(i>=binaryLimit){t=Number.NaN;s=Number.NaN;}}function temperaturecs(c,s,p){
var tmp,sNew;var tlo=0.0;var thi=100.0;var err=1.0;var i=0;while((Math.abs(err)>0.00001)&&(i<binaryLimit)){tmp=(thi+tlo)/2.0;sNew=salinity(c,tmp,p);err=(sNew-s)/s;if(err<0.0){thi=tmp;}else{tlo=tmp;}++i;}return(i>=binaryLimit)?(Number.NaN):(tmp);}function temperatureds(d,s,p){
var tmp,dNew;var tlo=0.0;var thi=100.0;var err=1.0;var i=0;while((Math.abs(err)>0.00001)&&(i<binaryLimit)){tmp=(thi+tlo)/2.0;dNew=density(s,tmp,p);err=(dNew-d)/d;if(err<0.0){thi=tmp;}else{tlo=tmp;}++i;}return(i>=binaryLimit)?(Number.NaN):(tmp);}function salinityd(d,t,p){
var sal,dNew;var slo=0.0;var shi=100.0;var err=1.0;var i=0;while((Math.abs(err)>0.00001)&&(i<binaryLimit)){sal=(shi+slo)/2.0;dNew=density(sal,t,p);err=(dNew-d)/d;if(err>0.0){shi=sal;}else{slo=sal;}++i;}return(i>=binaryLimit)?(Number.NaN):(sal);}function salinity(c,t,p){
var R,rt,Rp,Rt,A,B,C;R=c/4.29140;rt=0.6766097+t*(0.0200564+t*(1.104259e-04+t*(-6.9698e-07+t*1.0031e-09)));A=0.4215-0.003107*t;B=1+t*(0.03426+t*0.0004464);C=p*(2.07e-5+p*(-6.37e-10+p*3.989e-15));Rp=1+C/(B+A*R);Rt=R/rt/Rp;return s_Rt(t,Rt);}function s_Rt(t,Rt){var Rt5=Math.sqrt(Rt);var t15=t-15;var dels=t15/(1+0.0162*t15);var sal=(14.0941+dels*-0.0375)+Rt5*((-7.0261+dels*0.0636)+Rt5*((2.7081+dels*-0.0144)));return(0.008+dels*0.0005)+Rt5*((-0.1692+dels*-0.0056)+Rt5*((25.3851+dels*-0.0066)+Rt5*sal));}function conductivity(s,t,p){
var R,Rt,rt,A,B,C;var Rtlo=0.0;var Rthi=10.0;var err=1.0;var sNew;var i=0;if(s<0.01){return 0.0;};while((Math.abs(err)>0.00001)&&(i<binaryLimit)){Rt=(Rthi+Rtlo)/2.0;sNew=s_Rt(t,Rt);err=(sNew-s)/s;if(err>0.0){Rthi=Rt;}else{Rtlo=Rt;};++i;}if(i>=binaryLimit){return Number.NaN;}rt=0.6766097+t*(0.0200564+t*(1.104259e-04+t*(-6.9698e-07+t*1.0031e-09)));A=0.4215-0.003107*t;B=1+t*(0.03426+t*0.0004464);C=p*(2.07e-5+p*(-6.37e-10+p*3.989e-15));R=(Math.sqrt((A*rt*Rt-B)*(A*rt*Rt-B)+4*rt*Rt*A*(B+C))+(A*rt*Rt-B))/(2*A);return R*4.29140;}function density0(s,t){
var A,B,C,D;A=1.001685e-04+t*(-1.120083e-06+t*6.536332e-09);A=999.842594+t*(6.793952e-02+t*(-9.095290e-03+t*A));B=7.6438e-05+t*(-8.2467e-07+t*5.3875e-09);B=0.824493+t*(-4.0899e-03+t*B);C=-5.72466e-03+t*(1.0227e-04-t*1.6546e-06);D=4.8314e-04;return A+s*(B+C*Math.sqrt(s)+D*s);}function density(s,t,p){
var d0,K,E,F,G,H,I,J,M,N,t2,t3,t4,s1p5,pb;t2=t*t;t3=t2*t;t4=t3*t;d0=density0(s,t);E=19652.21+148.4206*t-2.327105*t2+1.360477e-2*t3-5.155288e-5*t4;F=54.6746-0.603459*t+1.09987e-2*t2-6.1670e-5*t3;G=7.944e-2+1.6483e-2*t-5.3009e-4*t2;H=3.239908+1.43713e-3*t+1.16092e-4*t2-5.77905e-7*t3;I=2.2838e-3-1.0981e-5*t-1.6078e-6*t2;J=1.91075e-4;M=8.50935e-5-6.12293e-6*t+5.2787e-8*t2;N=-9.9348e-7+2.0816e-8*t+9.1697e-10*t2;s1p5=s*Math.sqrt(s);pb=p/10;K=(E+F*s+G*s1p5)+(H+I*s+J*s1p5)*pb+(M+N*s)*pb*pb;return d0/(1-pb/K);}function soundSpeed(s,t,p){
var sr,D,b1,b0,B,a3,a2,a1,a0,A,c3,c2,c1,c0,C;sr=Math.sqrt(s);D=1.727e-3-7.9836e-6*p;b1=7.3637e-5+1.7945e-7*t;b0=-1.922e-2-4.42e-5*t;B=b0+b1*p;a3=(-3.389e-13*t+6.649e-12)*t+1.100e-10;a2=((7.988e-12*t-1.6002e-10)*t+9.1041e-9)*t-3.9064e-7;a1=(((-2.0122e-10*t+1.0507e-8)*t-6.4885e-8)*t-1.2580e-5)*t+9.4742e-5;a0=(((-3.21e-8*t+2.006e-6)*t+7.164e-5)*t-1.262e-2)*t+1.389;A=((a3*p+a2)*p+a1)*p+a0;c3=(-2.3643e-12*t+3.8504e-10)*t-9.7729e-9;c2=(((1.0405e-12*t-2.5335e-10)*t+2.5974e-8)*t-1.7107e-6)*t+3.1260e-5;c1=(((-6.1185e-10*t+1.3621e-7)*t-8.1788e-6)*t+6.8982e-4)*t+0.153563;c0=((((3.1464e-9*t-1.47800e-6)*t+3.3420e-4)*t-5.80852e-2)*t+5.03711)*t+1402.388;C=((c3*p+c2)*p+c1)*p+c0;return(C+(A+B*sr+D*s)*s);}function specificHeat(s,t,p){
var sr,a,b,c,cp0,cp1,cp2;sr=Math.sqrt(s);
a=(-1.38385e-3*t+0.1072763)*t-7.643575;b=(5.148e-5*t-4.07718e-3)*t+0.1770383;c=(((2.093236e-5*t-2.654387e-3)*t+0.1412855)*t-3.720283)*t+4217.4;cp0=(b*sr+a)*s+c;
a=(((1.7168e-8*t+2.0357e-6)*t-3.13885e-4)*t+1.45747e-2)*t-0.49592;b=(((2.2956e-11*t-4.0027e-9)*t+2.87533e-7)*t-1.08645e-5)*t+2.4931e-4;c=((6.136e-13*t-6.5637e-11)*t+2.6380e-9)*t-5.422e-8;cp1=((c*p+b)*p+a)*p;
a=(((-2.9179e-10*t+2.5941e-8)*t+9.802e-7)*t-1.28315e-4)*t+4.9247e-3;b=(3.122e-8*t-1.517e-6)*t-1.2331e-4;a=(a+b*sr)*s;b=((1.8448e-11*t-2.3905e-9)*t+1.17054e-7)*t-2.9558e-6;b=(b+9.971e-8*sr)*s;c=(3.513e-13*t-1.7682e-11)*t+5.540e-10;c=(c-1.4300e-12*t*sr)*s;cp2=((c*p+b)*p+a)*p;return cp0+cp1+cp2;}function freezingPoint(s,p){
return(-0.0575+1.710523e-3*Math.sqrt(s)-2.154996e-4*s)*s-7.53e-4*p;}function adiabaticLapseRate(s,t,p){
var ds=s-35.0;var atg=((-2.1687e-16*t+1.8676e-14)*t-4.6206e-13)*p*p;atg=atg+(2.7759e-12*t-1.1351e-10)*ds*p;atg=atg+(((-5.4481e-14*t+8.7330e-12)*t-6.7795e-10)*t+1.8741e-8)*p;atg=atg+(-4.2393e-8*t+1.8932e-6)*ds;return atg+((6.6228e-10*t-6.8360e-8)*t+8.5258e-6)*t+3.5803e-5;}function potentialtemperature(s,t0,p0){
var p=p0;var t=t0;var h=0-p;var xk=h*adiabaticLapseRate(s,t,p);t=t+0.5*xk;var q=xk;p=p+0.5*h;xk=h*adiabaticLapseRate(s,t,p);t=t+0.29289322*(xk-q);q=0.58578644*xk+0.121320344*q;xk=h*adiabaticLapseRate(s,t,p);t=t+1.707106781*(xk-q);q=3.414213562*xk-4.121320344*q;p=p+0.5*h;xk=h*adiabaticLapseRate(s,t,p);return t+(xk-2.0*q)/6.0;}