[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[McIDAS #EKZ-140200]: setting MAXBYT



Hi Owen,

Long time no hear...

re:
> It must be time for another NOAA/NCAR field campaign because I only
> have problems when I am setting up new batches for a new field
> campaign.

:-)

re:
> Here’s a little problem that probably has a quick fix if I can just
> figure out the parameter to modify. When I remap a GINI-EAST image in
> Mcidas whilst sitting in front of my machine I have no problems. But
> when I try to run the same script as a batch job when I am logged out
> of my machine I get the following error regarding MAXBYT when the
> image is displayed.  Can you let me know how I can increase the size
> of MAXBYT for my batch jobs?

From the output you include:

> IMGREMAP  GINIEAST/GE1KVIS.-1 MYDATA/IMAGES.6 DEL=YES SMOOTH=YES
> PRO=MERC 37 89 LATLON=37 89 SSIZE=ALL RES=.5 SIZE=4400 11500;
> ***********************************************
> *                  WARNING                    *
> * The entire source image will be used to     *
> * create the destination image. If the source *
> * image is located on a remote server, the    *
> * total number of bytes transfered will be:   *
> *                 26.21 MB                    *
> ***********************************************
> Beginning Image Data transfer, bytes= 26215168
> IMGREMAP: transformations complete ... begin data move
> Transferring AREA data outbound, bytes= 50600928
> IMGREMAP: Done...
> GD 1;
> Current Workstation McIDAS Graphics settings:
> Graphics line width (pixels) = 1
> Length of dashes (pixels) = 10
> Color level of gaps in dashed lines = 255
> Length of gaps (pixels) = 10
> GD: Done
> SF 1; ERASE F; IMGDISP MYDATA/IMAGES.6 LATLON=37 89 PLACE=C MAG=-6 -10
> SU=VIS_OWEN; MAP H  5 LALO 6 INT=2 2 PRO=SAT
> Erased image frame(s) 1-1
> Erased graphic frame(s) 1-1
> ERASE: Done
> Beginning Image Data transfer, bytes= 4301248
> IMGDISP: MCAGET called with MAXBYT too small for  46000
> IMGDISP: done
> IMGDISP failed, rc=2

the failure is with the image display (IMGDISP), not the image
remapping (IMGREMAP)... that may or may not be important.

I have been trying to figure out exactly which routine is calling 'mcaget',
but there is simply not enough information at this point.

Since you note that the BATCH file executes without error when running in
an interactive McIDAS session, I am guessing that the reason that it
runs differently when not logged in (probably through a cron-initiated
invocation) is that the size of your image frames are different.

Please check the size of your McIDAS image window when running interactively
(run the 'F' command) and the size when running when not logged in and let
me know what those values are.  Also, can you send me the full BATCH file
_and_ how this BATCH file is being invoked when you are not logged in
(presumably some sort of shell script in which 'mcenv' is run).?

Comment:

- while code diving to try and figure out what is happening, I noted
  a wildly varying array of ways that 'mcaget' can be called.  In
  particular, when called from 'getnav.for', MAXBYT is as small as
  1000.  When IMGDISP calls 'mcaget' directly, MAXBYT is set to
  32768.  When called from IMGCOPY MAXBYT is 1000000, and when called
  from IMGFILT MAXBYT is 10000.

  It looks like you may have stumbled upon an instance when the specification
  of MAXBYT is simply too small for the size of the image you created
  (46000 is 4x11500).

In order to figure out exactly who is calling 'mcaget', can you please do
the following:

<as 'mcidas'>

cd ~mcidas/mcidas2009/src

-- edit mcaget.for and:

change:

C -   Check line size against stated maxbyt
      NBPD=areadir(10)*IFORM*areadir(14)
      IF(NBPD.GT.MAXBYT) THEN
          IRET=-36
          CALL EDEST('MCAGET called with MAXBYT too small for ',NBPD)
          goto 1000
      ENDIF

to:

C -   Check line size against stated maxbyt
      NBPD=areadir(10)*IFORM*areadir(14)
      IF(NBPD.GT.MAXBYT) THEN
          IRET=-36
          ! <<<<< UPC add 20120426 >>>>>
          CALL EDEST('MCAGET called with MAXBYT = ',MAXBYT)
          CALL EDEST('MCAGET called with MAXBYT too small for ',NBPD)
          goto 1000
      ENDIF

-- after making the change, run 'make' to update the McIDAS library
   (libmcidas.a) and relink programs that depend on 'mcaget':

make
make install.bin

The next time you run your BATCH file while not being logged on, you
should get two error messages: the first will say what the value of
MAXBYT is and the second will be the same as it always has been.
Please send me the results of this test.

Cheers,

Tom
--
****************************************************************************
Unidata User Support                                    UCAR Unidata Program
(303) 497-8642                                                 P.O. Box 3000
address@hidden                                   Boulder, CO 80307
----------------------------------------------------------------------------
Unidata HomePage                       http://www.unidata.ucar.edu
****************************************************************************


Ticket Details
===================
Ticket ID: EKZ-140200
Department: Support McIDAS
Priority: Normal
Status: Closed