#include #include #include #define BAD -1.0e30 #define PI 3.1415 #define SW9 5.4 #define SW10 6.0 #define SW12 7.2 #define SW14 8.3 main() { FILE *fp,*fpp,*fpo,*fpv,*fpin,*fpout; int i,i1,i2,i0,Di0,Di,iav,ism,j,k,ki,kf,kk,o,len,wkb; int Ndata[340],Tdatalog[340],Tdata[340],Nexpt,Npl; int drp,drpctd,drop,cast[340],ctddrop[340],ctdcast,dropi,dropf,Ndrp; int idate[50],iTdata[50],iend[50],badctd[340][50]; int exptno,plot,proc,smooth,output,zoffset,wt,fit; int sgnx,sgny,dic,lab,logaxis; int date,yr,mo,day,hr,mn,ictd,qual; char str[72],expt[30],font[20],flag[6],Ndat[9],dir[50][50],ocean[50][50],ifile[80],ofile[80]; char ctddir[45][50],ctdpre[45][50],ctdsuf[45][50]; float g,g2,z0,z3,rho0,sig,dzdp,dpdz,dsigdz,C2,dOcart,Dzctd[50]; float lat[340],lon[340],zb[340],startda[340],bottomda[340],endda[340]; float pin[2200],uin[2200],vin[2200],stuffin[2200]; float z[2200],p[2200],u[2200],v[2200],stuff[2200]; float Zz[38200],ZzT[38200],Zzcr,Zz1,Zz2; float zctd[38200],pctd[38200],T[38200],Tpot0[38200],Sin[38200],O2; float sig0[38200],sigp[38200],sig3[38200],N2[38200]; float Sav[38200],sig0av[38200],sigpav[38200],sig3av[38200]; float N2av[38200],Nav[38200]; float zoff0,zoffmin,S1,Sv,Svmin; float iBT,i500,UBT,VBT,U500,V500; float uav,vav,uavxcp,vavxcp; float u0,uz,uzz,v0,vz,vzz; float zmin,zmax,dz,dsubz; float vmin,vmax,dv,dsubv; float Tmin,Tmax,dT,dsubT; float Smin,Smax,dS,dsubS; float verrmin,verrmax; float xmin,xmax,dx,dsubx,delx,xmid; float ymin,ymax,dy,dsuby,dely,ymid; float xplmin,xplmax,delxpl,xplmid; float yplmin,yplmax,delypl,yplmid; float xx,yy,xpl1,xpl2,ypl1,ypl2; double xpl[8200],ypl[8200],Wt[8200]; float bad,verrcr; float gray,red,green,blue,lw; /* bad = -1e30; */ dzdp=0.9945; dpdz=1./dzdp; /**********************************************parameter file***/ fpp=fopen("ladcpextract.p","r"); fscanf(fpp,"%s",expt); printf("%s \n",expt); fscanf(fpp,"%s %s",str,font); fscanf(fpp,"%s %d",str,&output); fscanf(fpp,"%s %f %f %f %f",str,&zmin,&zmax,&dz,&dsubz); fscanf(fpp,"%s %f %f %f %f",str,&vmin,&vmax,&dv,&dsubv); fscanf(fpp,"%s %f %f %f %f",str,&Tmin,&Tmax,&dT,&dsubT); fscanf(fpp,"%s %f %f %f %f",str,&Smin,&Smax,&dS,&dsubS); fscanf(fpp,"%s %d",str,&Ndrp); fclose(fpp); /**********************************************input loop***/ Ndata[0]=1292; sprintf(ifile,"%s","/home/kunze/archive/ladcp/data/albatross_ladcp.asc"); fpin=fopen(ifile,"r"); printf("%s %s \n","input:",ifile); for (drp=1;drp<=Ndrp;drp=drp+1) { /* * * * * * * * * * * * * * * * * * * * * * * * * input * * */ for (i=1;i<=Ndata[0];i=i+1) { fscanf(fpin,"%f %f %f %f %f", &uav,&pin[i],&uin[i],&vin[i],&stuffin[i]); drop=uav; uin[i]=uin[i]*100.; vin[i]=vin[i]*100.; } /* next i */ j=0; for (i=1;i<=Ndata[0];i=i+1) { if (uin[i] > -1000. && uin[i] < 1000. && stuffin[i] != 0.0) { j=j+1; p[j]=pin[i]; z[j]=-dzdp*p[j]; u[j]=uin[i]; v[j]=vin[i]; stuff[j]=stuffin[i]; } /* end if (uin */ } /* next i */ Ndata[drp]=j; zb[drp]=p[Ndata[drp]]*dzdp; printf(" %d %d %f %d %f \n",drp,drop,u[1],Ndata[drp],u[Ndata[drp]]); /* * * * * * * * * * * * * * * * * * * * * * * * * output * * */ if (drop < 10) sprintf(ofile,"%s%d","/home/kunze/archive/ladcp/data/ladcp/scotia/ladcp00",drop); if (drop > 9 && drop < 100) sprintf(ofile,"%s%d","/home/kunze/archive/ladcp/data/ladcp/scotia/ladcp0",drop); if (drop > 99) sprintf(ofile,"%s%d","/home/kunze/archive/ladcp/data/ladcp/scotia/ladcp",drop); fpout=fopen(ofile,"w"); fprintf(fpout,"%d %d \n",drop,Ndata[drp]); for (i=1;i<=Ndata[drp];i=i+1) { fprintf(fpout,"%f %f %f %f \n", p[i],u[i],v[i],stuff[i]); } /* next i */ fclose(fpout); /***************************************************************************/ /****************************************************************PLOTTING***/ /**************************************************set scales***/ xmin=vmin; xmax=vmax; dx=dv; dsubx=dsubv; delx=xmax-xmin; xmid=(xmin+xmax)/2; ymin=zmin; ymax=zmax; dy=dz; dsuby=dsubz; dely=ymax-ymin; ymid=(ymin+ymax)/2; xplmin=100; xplmax=295; delxpl=xplmax-xplmin; xplmid=(xplmin+xplmax)/2; yplmin=100; yplmax=700; delypl=yplmax-yplmin; yplmid=(yplmin+yplmax)/2; /*************************************************make postscript file***/ if (drop < 10) sprintf(ofile,"%s%d%s","ladcpextract00",drop,".ps"); if (drop > 9 && drop < 100) sprintf(ofile,"%s%d%s","ladcpextract0",drop,".ps"); if (drop > 99) sprintf(ofile,"%s%d%s","ladcpextract",drop,".ps"); printf("%s \n",ofile); fp=fopen(ofile,"w"); dic=1; gray=0.0; frame(fp,&dic,&gray,&xplmin,&xplmax,&yplmin,&yplmax); fprintf(fp,"%s%s%s \n","/",font," findfont 14 scalefont setfont"); fprintf(fp,"%5.1f %5.1f %s \n",xplmid-SW14*15/2,yplmax+60,"m"); fprintf(fp,"%s%d %4.0f%s \n", "( LADCP",drop,zb[drp]," m ) show"); /*******************************************************************************axes***/ fprintf(fp,"%s%s%s \n","/",font," findfont 12 scalefont setfont"); sgnx=1; sgny=-1; logaxis=0; lab=0; upperaxis(fp,&xplmin,&xplmax,&yplmax,&vmin,&vmax,&dv,&dsubv,&sgnx,font,&lab,&logaxis); loweraxis(fp,&xplmin,&xplmax,&yplmin,&vmin,&vmax,&dv,&dsubv,&sgnx,font,&lab,&logaxis); leftaxis(fp,&yplmin,&yplmax,&xplmin,&ymin,&ymax,&dy,&dsuby,&sgny,font,&lab,&logaxis); lab=-1; rightaxis(fp,&yplmin,&yplmax,&xplmax,&ymin,&ymax,&dy,&dsuby,&sgny,font,&lab,&logaxis); /*****************************************************axes labels***/ fprintf(fp,"%s%s%s \n","/",font," findfont 12 scalefont setfont"); fprintf(fp,"%5.1f %5.1f %s \n",xplmid-SW12*8/2,yplmax+20,"m"); fprintf(fp,"%s \n","(u (cm/s)) show"); fprintf(fp,"%5.1f %5.1f %s \n",xplmin-SW12*7,yplmid-4,"m"); fprintf(fp,"%s \n","(z (m)) show"); /*********************************************zero line***/ Npl=2; lw=0.5; gray=0.0; red=green=blue=0.0; ypl[1]=yplmin; ypl[2]=yplmax; xx=0.0; xxpl(&xx,&xmin,&xplmin,&xmax,&xplmax); xpl[1]=xpl[2]=xx; dot(fp,&Npl,&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); /*********************************************************plotting***/ /*********************************************plot LADCP u***/ for (i=1;i<=Ndata[drp];i=i+1) { xx=u[i]; if (xx < vmin) xx=vmin; if (xx > vmax) xx=vmax; xxpl(&xx,&vmin,&xplmin,&vmax,&xplmax); xpl[i]=xx; if (xpl[i] <= xplmin) xpl[i]=BAD; if (xpl[i] >= xplmax) xpl[i]=BAD; if (z[i] > -50.) xpl[i]=BAD; yy=z[i]; if (yy < ymin) yy=ymin; if (yy > ymax) yy=ymax; yypl(&yy,&ymin,&yplmin,&ymax,&yplmax); ypl[i]=yy; if (ypl[i] <= yplmin) xpl[i]=BAD; if (ypl[i] >= yplmax) xpl[i]=BAD; } /* next i */ lw=1.5; gray=0.0; red=green=blue=0.0; gray=-1; red=1.0; solid(fp,&Ndata[drp],&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); /* dash(fp,&Ndata[drp],&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); */ /*********************************************************************************v panel***/ /**************************************************set scales***/ xplmin=305; xplmax=500; delxpl=xplmax-xplmin; xplmid=(xplmin+xplmax)/2; /*************************************************make postscript file***/ dic=0; gray=0.0; frame(fp,&dic,&gray,&xplmin,&xplmax,&yplmin,&yplmax); fprintf(fp,"%s%s%s \n","/",font," findfont 12 scalefont setfont"); /************************************************************axes***/ sgnx=1; sgny=-1; logaxis=0; lab=0; upperaxis(fp,&xplmin,&xplmax,&yplmax,&vmin,&vmax,&dv,&dsubv,&sgnx,font,&lab,&logaxis); lab=-1; loweraxis(fp,&xplmin,&xplmax,&yplmin,&vmin,&vmax,&dv,&dsubv,&sgnx,font,&lab,&logaxis); leftaxis(fp,&yplmin,&yplmax,&xplmin,&ymin,&ymax,&dy,&dsuby,&sgny,font,&lab,&logaxis); lab=0; rightaxis(fp,&yplmin,&yplmax,&xplmax,&ymin,&ymax,&dy,&dsuby,&sgny,font,&lab,&logaxis); /*****************************************************axes labels***/ fprintf(fp,"%s%s%s \n","/",font," findfont 12 scalefont setfont"); fprintf(fp,"%5.1f %5.1f %s \n",xplmid-SW12*8/2,yplmax+20,"m"); fprintf(fp,"%s \n","(v (cm/s)) show"); fprintf(fp,"%5.1f %5.1f %s \n",xplmax+SW12*7,yplmid-4,"m"); fprintf(fp,"%s \n","(z (m)) show"); /*********************************************zero line***/ Npl=2; lw=0.5; gray=0.0; red=green=blue=0.0; ypl[1]=yplmin; ypl[2]=yplmax; xx=0.0; xxpl(&xx,&xmin,&xplmin,&xmax,&xplmax); xpl[1]=xpl[2]=xx; dot(fp,&Npl,&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); /************************************************************plotting***/ /**********************************************plot LADCP v***/ for (i=1;i<=Ndata[drp];i=i+1) { xx=v[i]; if (xx < vmin) xx=vmin; if (xx > vmax) xx=vmax; xxpl(&xx,&vmin,&xplmin,&vmax,&xplmax); xpl[i]=xx; if (xpl[i] <= xplmin) xpl[i]=BAD; if (xpl[i] >= xplmax) xpl[i]=BAD; if (z[i] > -50.) xpl[i]=BAD; yy=z[i]; if (yy < ymin) yy=ymin; if (yy > ymax) yy=ymax; yypl(&yy,&ymin,&yplmin,&ymax,&yplmax); ypl[i]=yy; if (ypl[i] <= yplmin) xpl[i]=BAD; if (ypl[i] >= yplmax) xpl[i]=BAD; } /* next i */ lw=1.5; gray=0.0; red=green=blue=0.0; gray=-1; blue=1.0; solid(fp,&Ndata[drp],&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); /* dash(fp,&Ndata[drp],&lw,&gray,&red,&green,&blue,&xplmin,&xplmax,&yplmin,&yplmax,xpl,ypl); */ /**************************************************wrapup***/ fprintf(fp,"\n %s \n","showpage"); fclose(fp); } /* next drp */ fclose(fpout); } /*END*/ /*********************************************************END***/