|
Hi Sudev, small_view.jnl is a script that's part of the Ferret distribution. It was added a couple of years ago so if you are running an older installation of Ferret you might not have it. I've attached a copy; just put it in a directory that is pointed to by your FER_GO environment variable, such as $FER_DIR/jnls/contrib/ Ansley On 7/5/2012 11:28 PM, Sudev Das M P
wrote:
Dear Paulo & Otacilio, |
\ cancel mode verify
!
! Called by multi_view_demo.jnl
!
! Description : GO file to make desired number of viewports with desired
! size/position for portrait/landscape mode.
!
! Notes 1 : Please note that the version of Ferret should be 5.6 or
! later one which supports /AXES qualifier to
! "define view" command and /RANGE qualifier to "REPEAT"
! command.
!
! 2 : Works well in portrait/landscape mode. Since /AXES qualifier is
! used with "DEFINE VIEW" command, Ferret may show some peculiar
! behaviour sometimes (../fu_2006/msg00080.html
! ).
!
! 3 : If the defined viewport is very small, /SIGDIG qualifier
! to the CONTOUR command may not be effective. In this case
! please use the fourth argument to /LEVELS qualifier to get
! proper numeric labels for contours.
!
! /LEVELS=(lo, hi, delta, ndigits) & the usage is
!
! ndigits = -1 for integer format
! = -3 to omit numerical labels
! = 1/2/ for valid precision/significant digits
!
! 4 : To define two set of viewports of similar features
! (position & size), call multi_view two times with
! different values for 9th argument (but exactly same
! values for arguments 1-8).
!
! 5 : Internal variables to this GO file does have a prefix "mv_".
!
!
! Default 1 : Just "go multi_view" (ie without any arguments) will
! Behaviour define 15 viewports in 5 rows and 3 columns with
! names v11, v12,...v53
!
! 2 : There is no mandatory arguments for this go file ; all
! arguments are optional.
!
! $1 $2 $3 $4 $5
! USAGE : go multi_view [rows],[columns],[xsize],[xstart],[xgap],
! [ysize],[ystart],[ygap],[prefix]
! $6 $7 $8 $9
! Example 1: 6 viewports of similar size
! use coads_climatology
! set reg/l=1/x=30:120/y=-30:30
! set window/aspect=1.3
! go multi_view 5, 3, 0.25, 0.1, 0.03, 0.15, 0.10, 0.02
! set view v11 ; ppl axlabp 1,-1 ; fill/nolab/line sst
! set view v12 ; ppl axlabp 1, 0 ; fill/nolab/line sst
! set view v13 ; ppl axlabp 1, 1 ; fill/nolab/line sst
! set view v21 ; ppl axlabp -1,-1 ; fill/nolab/line sst
! set view v22 ; ppl axlabp -1, 0 ; fill/nolab/line sst
! set view v23 ; ppl axlabp -1, 1 ; fill/nolab/line sst
!
! Example 2: 2 viewports of similar size (tune xstart & ystart to position it)
! use coads_climatology
! set reg/l=1/x=30:120/y=-30:30
! set window/aspect=1.3
! go multi_view 2, 1, 0.25, 0.25, 0.03, 0.15, 0.60, 0.02
! set view v11 ; ppl axlabp 1,-1 ; fill/nolab/line sst
! set view v21 ; ppl axlabp -1,-1 ; fill/nolab/line sst
!
!------------------------------------------------------------------------------
!
! !-------|-------|-------|
! Written By : Jaison Kurian ! v11 | v12 | v13 |
! Contact : jaison@xxxxxxxxxxxxxxxxxx !-------|-------|-------|
! jaisonkurian@xxxxxxxxx ! v21 | v22 | v23 |
! Version : multi_view !-------|-------|-------|
! Date : 27-FEB-2006 ! v31 | v32 | v33 |
! Comments : None !-------|-------|-------|
! Modifications : None ! v41 | v42 | v43 |
! !-------|-------|-------|
! ! v51 | v52 | v53 |
! !-------|-------|-------|
!
!
!-------------------------------------------------------------------------------
! define internal variables
define symbol mv_r = $1"5" ! number of rows
define symbol mv_c = $2"3" ! number of columns
define symbol mv_xs = $3"0.25" ! X size
define symbol mv_xb = $4"0.10" ! X beginning
define symbol mv_xg = $5"0.03" ! X gap
define symbol mv_ys = $6"0.15" ! Y size
define symbol mv_yb = $7"0.10" ! Y beginning
define symbol mv_yg = $8"0.02" ! Y gap
define symbol prefx = $9"v" ! Prefix for the viewport name
! Issue a warning message if request values doesnot fit in
let mv_xh = `($mv_xb)+($mv_c)*($mv_xs)+(($mv_c)-1)*($mv_xg)` ! X high
let mv_yh = `($mv_yb)+($mv_r)*($mv_ys)+(($mv_r)-1)*($mv_yg)` ! Y high
IF `($mv_r) LT 1` THEN ! minimum number of rows is 1
SAY ; SAY " ERROR (small_view) : Number of rows should be > 0" ; SAY
EXIT
ENDIF
IF `($mv_c) LT 1` THEN ! minimum number of rows is 1
SAY ; SAY " ERROR (small_view) : Number of columns should be > 0" ; SAY
EXIT
ENDIF
IF `($mv_xb) GT 0.9 OR ($mv_xb) LT 0` THEN ! upper/lower bound for xstart
SAY ; SAY " ERROR (small_view) : X_Start should be between 0.0 and 0.9" ; SAY
EXIT
ENDIF
IF `($mv_yb) GT 0.9 OR ($mv_yb) LT 0` THEN ! upper/lower bound for ystart
SAY ; SAY " ERROR (small_view) : Y_Start should be between 0.0 and 0.9" ; SAY
EXIT
ENDIF
IF `mv_xh GT 1.0` THEN
SAY
SAY " ERROR (small_view) : Exceeded Max Xsize --> "
SAY " Reduce Number of Columns or Xsize/Xstart/Xgap...."
SAY ; EXIT
ENDIF
IF `mv_yh GT 1.0` THEN
SAY
SAY " ERROR (small_view) : Exceeded Max Ysize --> "
SAY " Reduce Number of Rows or Ysize/Ystart/Ygap...."
SAY ; EXIT
ENDIF
! IF arguments are valid, define the viewports
REPEAT/RANGE=1:`($mv_r)`:1/NAME=mv_ro ( ;\
let mv_ylo = ($mv_yb) + (($mv_r)-`mv_ro`)*($mv_yg) + (($mv_r)-`mv_ro`)*($mv_ys) ;\
let mv_yhi = ($mv_yb) + (($mv_r)-`mv_ro`)*($mv_yg) + (($mv_r)-(`mv_ro`-1))*($mv_ys) ;\
REPEAT/RANGE=1:`($mv_c)`:1/NAME=mv_co ( ;\
let mv_xlo = ($mv_xb) + (`mv_co`-1)*($mv_xg) + (`mv_co`-1)*($mv_xs) ;\
let mv_xhi = ($mv_xb) + (`mv_co`-1)*($mv_xg) + `mv_co`*($mv_xs) ;\
define view/axes/xlim=`mv_xlo`:`mv_xhi`/ylim=`mv_ylo`:`mv_yhi` ($prefx)`mv_ro``mv_co` ;\
) ;\
)
set mode/last verify