| subroutine | squeeze | ( mode,algorithm,ldat,leading,trailing,length, idata,maxsize,iwork,nfactors,factors,error ) |
| mode | (i) | - |
should be a variable, MUST BE SET TO 0 IN INITIAL CALL,should not be modified in the calling program/subroutine thereafter; e.g.:
do i = 1,n
call squeeze(mode_variable,...) call put_field(ldat,...) |
| algorithm | (i) | - |
compression algorithm to be used;
values: 1 (2-1), 2 (3-1), 3 (4-1), 4 (3-2), 5 (5-1), 6 (4-2), 7 (6-1), 8 (5-2), 9 (4-3) etc. presently implemented: 4, 6, 9 |
| ldat | (i) | - | no. of values to consider in 'idata()' vector (including leading & trailing) |
| leading | (i) | - | no. of leading entries in 'idata()' that should not be compressed |
| trailing | (i) | - | no. of trailing entries in 'idata()' that should not be compressed; will be reset if compression is successful (see information on output variables below) |
| length | (i) | - | dimension of 'idata()' (suggested value: leading+nx*ny+trailing); left unchanged by "squeeze" |
| idata | (I2) | - | leading entries, field, trailing entries |
| maxsize | (i) | - | dimension of 'iwork()' (suggested value: nx*ny) |
| nfactors | (i) | - |
dimension of 'factors()';
|
| factors | (I) | - | vector for storage of factors (time-saving); used if 'mode'<>0 and unchanged 'algorithm' since previous call |
| mode | (i) | - |
output value:
1 - compression OK -1 - no compression |
| ldat | (i) | - | length of the compressed 'idata()' vector |
| idata | (I2) | - | leading entries, compressed field, trailing entries |
| factors | (I) | - | vector for storage of factors (time-saving) |
| error | (i) | - |
will be set to:
1 if non-implemented 'algorithm' is selected; 2 if dimension of 'factors()' is too small 3 if # leading + # trailing > input 'ldat' |
| iwork | (I2) | - | work space vector, temporary starage |