c c ---------------------------------------------------------------------- c c TAO Project Office, NOAA/PMEL/OCRD c c Programmed by Dai McClurg, Spring 1994. c c Plot Wind sticks, transports, and ocean current vectors c c p1 latitude, eg, 2n (up1 is 2N) c p2 longitude, eg, 110w (up2 is 110W) c p3 path, eg, /home/heron/taohome c p4 process id for this process, e.g. PID c p5 frequency identifier: dy (daily);hf (5-day);lf (monthly);qt (quarterly) c p6 starttime (e.g. 920415) c p7 endtime (e.g. 930415) c p8 minwind c p9 maxwind c p10 wind interval c p11 min transport c p12 max transport c p13 transport interval c p14 min depth c p15 max depth c p16 vector length (inches) c p17 vector magnitude c p18 data subdirectory c if p1 .eq. "help" then set ex1 "pplus current.ppc 2n 110w /home/tao/taowork/taohome \" set ex2 "1234 hf 930101 940601 -10 10 2 60 160 20 300 0 0.5 \" set ex3 "10.0 data/buoy " show ex1 show ex2 show ex3 exit endif c c ---------------------------------------------------------------------- c c echo off c axlint,1,2 c set up1 $edit(p1,UPCASE) set up2 $edit(p2,UPCASE) c c Following command sets tx1 and tx2 c set *starttime "'p6'0000" set *endtime "'p7'0000" c @'p3'/ppc/util/set_txtype.ppc:quiet 'p6' 'p7' c @'p3'/ppc/color.ppc:quiet SUN c pen,1,'red' box,off window,on cross,2 c dfltfnt,CR c c set axis lengths c set axx 5.75 c set axy3 1.25 set axy2 1.6 set axy1 4.0 c set *xor 1.2 c set yor1 1.15 c e yor2 = 'axy1' + 'yor1' + 0.6 e load(yor2) set yor2 'eps$scaler' c e yor3 = 'axy2' + 'yor2' + 0.25 e load(yor3) set yor3 'eps$scaler' c set szx 8 set szy 10 c size,'szx','szy' c e xg = 'szx' * 100 e yg = 'szy' * 100 e load(xg) set xg 'eps$scaler' e load(yg) set yg 'eps$scaler' c xgeom,'xg','yg' c pltype,0 c labset,,.15,.15 axlsze,0.13,0.13 c pltnme, current'up1''up2'_'p4'.plt c c cccccccccccccccccccccccccc Wind sticks cccccccccccccccccccccccccccccccccc c origin,'xor','yor3' axlen,'axx','axy3' c c tics,0.05,0.15,0.1,0.1,-1,-1 c %opnplt c e openr "'p3'/'p18'/w'p1''p2'_'p5'.cdf" c e nextr c set error "none" c @'p3'/ppc/util/buoy_tim_set.ppc:quiet 'p6' 'p7' eps422 c if error .ne. "none" then taxis,off e close epsin set xtemp 0.75 set ytemp 'szy' / 2 @'p3'/ppc/util/error_map.ppc:quiet 'p3' 'xtemp' 'ytemp' 0.1 %clsplt:wait exit endif c e sl=[i=1:1,j=1:1,k=1:1,t='starttime':'endtime'] e u1=eps422[sl] e v1=eps423[sl] e status v1 c e fm = abs('eps$fld_max') e load(fm) set fm 'eps$scaler' c if fm .eq. 1e+35 then set f1 -10.0 set f2 10.0 else set f1 'eps$fld_min' set f2 'eps$fld_max' if f1 .gt. 0.0 then set f1 0.0 endif if f2 .lt. 0.0 then set f2 0.0 endif endif c taxis,on time,w'tx1',w'tx2',w'eps$fld_tmin' c e u1 e v1 c set dec 1 c if p5 .eq. "hf" then e epsin.vector_interval set dec 'eps$attr' endif c if p5 .eq. "lf" then e epsin.vector_interval set dec 'eps$attr' endif c e close epsin c if p8 .eq. "AUTO" then e fmax = 'f2' + 0.25 * ('f2' - 'f1') e load(fmax) set fmax 'eps$scaler' e fmin = 'f1' - 0.05 * ('f2' - 'f1') e load(fmin) set fmin 'eps$scaler' %range,'fmin','fmax',6 @'p3'/ppc/util/setyfor.ppc 'ppl$range_inc' yaxis,'fmin','fmax','ppl$range_inc' else yaxis,'p8','p9','p10' endif c axlint,1,2 yfor,(i5) ylab,"m s^-^1" datpt,2 c txlabp,0 title, ylab,"m s^-^1" xlab, c plotuv,,'dec' c e xlen = 'ppl$xlen' e ylen = 'ppl$ylen' c e xpos = 0.1 e load(xpos) set xpos 'eps$scaler' c e ypos = ylen - 0.2 e load(ypos) set ypos 'eps$scaler' c %label:nouser,'xpos','ypos',-1,0,0.16,"Wind" c e xpos = xlen / 2 e load(xpos) set xpos 'eps$scaler' c if p5 .eq. "dy" then set mstr "Daily" endif c if p5 .eq. "hf" then set mstr "Five-Day" endif c if p5 .eq. "lf" then set mstr "Monthly" endif c if p5 .eq. "qt" then set mstr "Quarterly" endif c e xpos = xlen / 2 e load(xpos) set xpos 'eps$scaler' c e ypos = ylen + 0.4 e load(ypos) set ypos 'eps$scaler' %label:nouser,'xpos','ypos',0,0,0.16,"'mstr' Current Meter Data" c e ypos = ylen + 0.15 e load(ypos) set ypos 'eps$scaler' %label:nouser,'xpos','ypos',0,0,0.12,"('eps$latitude' 'eps$longitude')" c e ypos = ylen + 0.7 e load(ypos) set ypos 'eps$scaler' %label:nouser,'xpos','ypos',0,0,0.16,"'up1' 'up2'" c e xpos = 'ppl$xlen' + 0.2 e load(xpos) set xpos 'eps$scaler' c e ypos = 'ppl$ylen' / 2.0 e load(ypos) set ypos 'eps$scaler' c @'p3'/ppc/util/vector_key.ppc 'p3' 'xpos' 'ypos' 1 merup c taxis,on window,on cross,2 c ccccccccccccccccccccccccccc Transports ccccccccccccccccccccccccccccccccccc c origin,'xor','yor2' axlen,'axx','axy2' e xlen = 'ppl$xlen' e ylen = 'ppl$ylen' c e ypos = 'axy3' + 1.5 e load(ypos) set ypos 'eps$scaler' c e openr "'p3'/'p18'/cur'p1''p2'_'p5'.cdf" e nextr c @'p3'/ppc/util/buoy_tim_set.ppc:quiet 'p6' 'p7' eps380 c if error .ne. "none" then taxis,off e close epsin set xtemp 0.75 set ytemp 'szy' / 2 @'p3'/ppc/util/error_map.ppc:quiet 'p3' 'xtemp' 'ytemp' 0.1 %clsplt:wait exit endif c e epsin.trans_min set trans_min 'eps$attr' e epsin.trans_max set trans_max 'eps$attr' c e sl2=[i=1:1,j=1:1,k=1:1,t='starttime':'endtime'] e ztr=eps380[sl2] e mtr=eps381[sl2] e status ztr c e fm = abs('eps$fld_max') e load(fm) set fm 'eps$scaler' c if fm .eq. 1e+35 then set tr1 1e+35 set tr2 -1e+35 set miss 1 else set tr1 'eps$fld_min' set tr2 'eps$fld_max' set miss 0 endif c e status mtr c e fm = abs('eps$fld_max') e load(fm) set fm 'eps$scaler' c if fm .ne. 1e+35 then if eps$fld_min .lt. tr1 then set tr1 'eps$fld_min' endif if eps$fld_max .gt. tr2 then set tr2 'eps$fld_max' endif else if miss .eq. 1 then set tr1 -50 set tr2 150 endif endif c time,w'tx1',w'tx2',w'eps$fld_tmin' c e ztr e mtr e close epsin c if p11 .eq. "AUTO" then e fmax = 'tr2' + 0.25 * ('tr2' - 'tr1') e load(fmax) set fmax 'eps$scaler' e fmin = 'tr1' - 0.05 * ('tr2' - 'tr1') e load(fmin) set fmin 'eps$scaler' %range,'fmin','fmax',6 @'p3'/ppc/util/setyfor.ppc 'ppl$range_inc' yaxis,'fmin','fmax','ppl$range_inc' else yaxis,'p11','p12','p13' endif c title ylab, "m^2 s^-^1" xlab, c pen,1,'red' pen,2,'blue' c line,1,,0 line,2,,0 c plot:nowait c e xpos = 0.1 e load(xpos) set xpos 'eps$scaler' c e ypos = ylen - 0.2 e load(ypos) set ypos 'eps$scaler' %label:nouser,'xpos','ypos',-1,0,0.16,- "@p1Transport ('trans_min'/'trans_max' m) @p'red'Zonal @p'blue'Meridional" c taxis,on window,on cross,0 c ccccccccccccccccccccccccccccc Current Vectors ccccccccccccccccccccccccccccccc c origin,'xor','yor1' axlen,'axx','axy1' c vecset,'p16','p17' c e xpos = 'ppl$xlen' - 1.5 e load(xpos) set xpos 'eps$scaler' c e ypos = 'ppl$ylen' + 0.2 e load(ypos) set ypos 'eps$scaler' c veckey:nouser,'xpos','ypos',,(f5.0) c e xpos = 0.1 e load(xpos) set xpos 'eps$scaler' c e ypos = 'ppl$ylen' + 0.15 e load(ypos) set ypos 'eps$scaler' c %label:nouser,'xpos','ypos',-1,0,0.16,"Ocean Current (cm s^-^1)" c e xlen = 'ppl$xlen' e ylen = 'ppl$ylen' c %range,'p14','p15',10 yaxis,'p14','p15','ppl$range_inc' c yfor,(i4) axlint,1,2 datpt,2 c e openr "'p3'/'p18'/cur'p1''p2'_'p5'.cdf" e nextr e sl3=[t='starttime':'endtime',z=*,j=1:1] e u1=eps320[sl3] e v1=eps321[sl3] e status u1 c time,w'tx1',w'tx2',w'eps$fld_tmin' c e u1 e v1 c e v2 = -1 * v1 c e v2 e vector(u1,v1) c e vector(v2,u1) c set dec 1 c if p5 .eq. "hf" then e epsin.vector_interval set dec 'eps$attr' endif c if p5 .eq. "lf" then e epsin.vector_interval set dec 'eps$attr' endif c e close epsin c xlab, ylab "Depth (m)" txlabp,-1 txlsze,0.12 c pen,1,'blue' c if year .eq. "null" then title, else title,"'year'" endif c vector:nowait,'dec' c e xpos = 'ppl$xlen' + 0.2 e load(xpos) set xpos 'eps$scaler' c e ypos = 'ppl$ylen' / 2.0 e load(ypos) set ypos 'eps$scaler' c @'p3'/ppc/util/vector_key.ppc 'p3' 'xpos' 'ypos' 1 merup c @'p3'/ppc/util/proj.ppc:quiet c @'p3'/ppc/util/date_stamp.ppc:quiet c %clsplt:wait