[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20010709: gdthgt_gf does not produce output file
- Subject: 20010709: gdthgt_gf does not produce output file
- Date: Mon, 9 Jul 2001 11:14:24 -0600 (MDT)
Robert,
It appears that the problem with gdthgt is that it does not call GSTANM
(which the other programs do (for looping when gdattim is a range) ).
In this case, the time range is a single plot- so the animation control
isn't called- but apparently, the gif driver needs this to be called when
liked directly to define the start of a new plotting sequence.
I have attatched an updated version of gdthgt.f for the
$GEMPAK/source/programs/gd/gdthgt directory.
You can build the _gf version of the program with:
cd $GEMPAK/source/programs/gd/gdthgt
make clean
make programs_gf
make clean
Steve Chiswell
>From address@hidden Sat Jul 7 15:01:32 2001
>Received: from master.nsbf.nasa.gov (IDENT:address@hidden
>[192.149.107.80])
> by unidata.ucar.edu (UCAR/Unidata) with ESMTP id f67L1W127252
> for <address@hidden>; Sat, 7 Jul 2001 15:01:32 -0600 (MDT)
>Organization: UCAR/Unidata
>Keywords: 200107072101.f67L1W127252
>Received: by master.nsbf.nasa.gov (Postfix, from userid 556)
> id 1EAE314F66; Sat, 7 Jul 2001 16:10:37 -0500 (CDT)
>Received: from localhost (localhost [127.0.0.1])
> by master.nsbf.nasa.gov (Postfix) with ESMTP id E6FFC1510
> for <address@hidden>; Sat, 7 Jul 2001 16:10:37 -0500 (CDT)
>Date: Sat, 7 Jul 2001 16:10:37 -0500 (CDT)
>From: Robert Mullenax <address@hidden>
>To: address@hidden
>Subject: gdthgt_gf does not produce output file
>Message-ID: <address@hidden>
>MIME-Version: 1.0
>Content-Type: TEXT/PLAIN; charset=US-ASCII
I have been trying to speed up our CGI scripts by using the XXXXX_gf
programs, which I recently realized were available. I found a problem
with gdthgt_gf as it produces no output file. It looks like it
runs okay and issues no errors, but it does not produce a .gif file.
This is 5.6.c on our Solaris SPARC 8 boxes. The standard gdthgt
works fine running gpend..etc.
Thanks,
Robert Mullenax
PS..
I also tried using the Unidata 5.6.c SPARC binary. It did not
work with that either.
Thanks,
Robert Mullenax
****************************************************************************
Unidata User Support UCAR Unidata Program
(303)497-8644 P.O. Box 3000
address@hidden Boulder, CO 80307
----------------------------------------------------------------------------
Unidata WWW Service http://www.unidata.ucar.edu/
****************************************************************************
PROGRAM GDTHGT
C************************************************************************
C* PROGRAM GDTGHT *
C* *
C* This program creates time height sections through scalar grids *
C* *
C** *
C* Log: *
C* T.W. Barker/WR/SSD 8/91 Created from GDCROSS *
C* S. Jacobs/EAI 11/92 Added call to GMESG and 'shrttl' *
C* M. desJardins/NMC 11/92 Eliminate unused variables *
C* S. Jacobs/EAI 2/94 Added COLADD flag to DG_OFIL *
C* L. Williams/EAI 3/94 Clean up declarations of user input *
C* variables *
C* S. Jacobs/NMC 6/94 Fixed typo in declarations *
C* L. Williams/EAI 7/94 Added shrttl to the user input variables*
C* S. Jacobs/NMC 9/94 Added GR_TITL *
C* K. Tyle/GSC 7/96 Eliminated call to GDTXUP *
C* D. Keiser/GSC 8/96 Added FL_MFIL to search for file type *
C* K. Tyle/GSC 8/96 Added ER_WMSG call after FL_MFIL call, *
C* use filnam in call to GDTXSP *
C* S. Maxwell/GSC 7/97 Increased input character length *
C* T. Lee/GSC 1/99 Increased LLMXTM to LLMXGT *
C* S. Jacobs/NCEP 3/01 Replaced DG_OFIL with DG_MFIL *
C* S. Chiswell/Unidata 7/01 Added GSTANM/GENANM calls for _gf *
C************************************************************************
INCLUDE 'GEMPRM.PRM'
C*
LOGICAL clear
CHARACTER gdfile*(LLMXLN), border*(LLMXLN),
+ ptype*(LLMXLN), gpoint*(LLMXLN),
+ taxis*(LLMXLN), gdatim*(LLMXLN),
+ gfunc*(LLMXLN), gvcord*(LLMXLN),
+ title*(LLMXLN), yaxis*(LLMXLN),
+ device*(LLMXLN), scale*(LLMXLN),
+ panel*(LLMXLN), wind*(LLMXLN),
+ cint*(LLMXLN), line*(LLMXLN),
+ text*(LLMXLN), gvect*(LLMXLN), shrttl*(LLMXLN)
C*
REAL grdout (LLMXGD), grdoutu (LLMXGD),
+ grdoutv (LLMXGD)
REAL rlvld (LLMXLV), rlvlc (LLMXLV), rlvlv (LLMXLV)
REAL xgrd (LLMXGD), x (LLMXGT), xptsc (LLMXGD),
+ ylbl (LLAXIS),
+ rgx(1), rgy(1), rlat(1), rlon(1),
+ vclsfc, ggrd (LLMXGD), xtlbl (LLAXIS),
+ grdt1 (LLMXGD)
CHARACTER ttlstr*72, ctlbl (LLAXIS)*40,
+ trange (2)*40, timfnd (LLMXGT)*80,
+ timval (LLMXGT)*80, time (2)*40, fname*128
LOGICAL respnd, done, proces, havsfc, havvec, havcon
C*
REAL clvl (LLCLEV), rmargn (4)
INTEGER icolor (LLCLEV), iline (LLCLEV),
+ ilwid (LLCLEV), labflg (LLCLEV),
+ levels (LLMXLV), levl (2)
C-----------------------------------------------------------------------
C* Initialize TAE and GEMPLT.
C
CALL IP_INIT ( respnd, iperr )
CALL IP_IDNT ( 'GDTHGT', ier )
IF ( iperr .eq. 0 ) THEN
CALL GG_INIT ( 0, iperr )
END IF
IF ( iperr .eq. 0 ) THEN
done = .false.
ELSE
done = .true.
END IF
C
C* Main loop to read in TAE parameters and draw time section.
C
DO WHILE ( .not. done )
C
C* Set flag to indicate processing will be done.
C
proces = .true.
C
C* Read in the variables from the TAE.
C
CALL GDTXIN ( gdatim, gvcord, gfunc, gvect, gpoint,
+ gdfile, ptype, taxis, yaxis, border,
+ line, cint, wind, title, clear, scale,
+ panel, device, text, iperr )
C
C* Exit if there is an error.
C
IF ( iperr .ne. 0 ) THEN
done = .true.
ELSE
IF ( proces ) THEN
CALL ST_LCUC ( gvcord, gvcord, iret )
CALL LV_CORD ( gvcord, gvcord, ivcord, iret )
IF ( ( iret .ne. 0 ) .or. ( ivcord .eq. 0 ) )
+ proces = .false.
END IF
C
C* Set up the graphics device.
C
IF ( proces ) THEN
CALL GG_SDEV ( device, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Set text attributes.
C
IF ( proces ) THEN
CALL IN_TEXT ( text, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Open the grid file and set the grid navigation. This
C* will set the proper mode for the grid file. The mode
C* must be set to graph mode later.
C
IF ( proces ) THEN
CALL DG_MFIL ( gdfile, ' ', .true., gdatim,
+ igdfln, idum, fname, maxg, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Get time information
C
IF ( proces ) THEN
CALL GDTXTM ( igdfln, gdatim, ntdata, timfnd,
+ trange, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
IF ( ntdata .gt. 0 ) THEN
DO i = 1, ntdata
CALL TG_VALD ( timfnd(i), timval(i), iret )
IF ( iret .ne. 0 ) proces = .false.
END DO
END IF
C
C* Get y-axis parameters
C
IF ( proces ) THEN
CALL GDTXYY( ptype, yaxis, ivcord, iyaxis, ratio,
+ ystrt, ystop, ylbl, nylbl, rmargn,
+ ilbfrq, iglfrq, itmfrq, iret )
IF ( iret .ne. 0 ) THEN
CALL ER_WMSG( 'GDTHGT', iret, ' ', ier )
proces = .false.
END IF
END IF
C
C* Get x-axis parameters
C
IF ( proces ) THEN
CALL GDTXTA ( taxis, LLAXIS, ntdata, timval, x,
+ xstrt, xstop, xtlbl, ctlbl, nxlbl,
+ xmndst, itlbfr, itglfr, ittmfr,
+ iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Get levels for all times
C
IF ( proces ) THEN
CALL GDTXGL ( igdfln, timfnd, ntdata, ystrt, ystop,
+ ivcord, levels, nlev, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Get even levels
C
IF ( proces ) THEN
DO i = 1, nlev
rlvld (i) = float (levels (i))
END DO
CALL GDTXEV ( rlvld, nlev, iyaxis, rlvlc, nlvlc,
+ iret )
CALL GDTXEV ( rlvld, nlev, 1, rlvlv, nlvlv, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
IF ( proces ) THEN
CALL GDTXEV ( x, ntdata, 1, xptsc, nptsc, iret)
IF ( iret .ne. 0 ) proces = .false.
END IF
C
C* Find plotting location
C
IF ( proces ) THEN
CALL GR_PLOC ( gpoint, rgx (1), rgy (1), rlat (1),
+ rlon (1), iret )
IF ( iret .ne. 0) THEN
CALL ER_WMSG ( 'GR', iret, ' ', ier )
proces = .false.
END IF
END IF
C
C* Set subset region to speed calculations
C
IF ( proces ) THEN
imin = int ( rgx (1) ) - 2
imax = imin + 5
jmin = int (rgy (1) ) - 2
jmax = jmin + 5
CALL DG_AREA ( imin, imax, jmin, jmax, iret )
IF ( iret .ne. 0) THEN
CALL ER_WMSG( 'DG', iret, ' ', ier )
proces = .false.
END IF
END IF
C
C* Get data for this list of times and levels
C
havcon = .false.
IF ( proces ) THEN
havcon = .true.
CALL GDTXDA ( igdfln, timfnd, ntdata, gvcord,
+ ystrt, ystop, iyaxis, gfunc, ivcord,
+ rgx, rgy, levels, nlev, grdt1, rlvlc,
+ nlvlc, iret )
IF ( iret .eq. 7 ) havcon = .false.
IF ( iret .lt. 0 ) proces = .false.
END IF
C
C* Put contour data in evenly spaced grid
C
IF ( proces .and. havcon ) THEN
CALL GDTXTI( grdt1, ntdata, nlvlc, x, xptsc, nptsc,
+ grdout, iret)
IF ( iret .ne. 0) proces = .false.
END IF
C
C* Get Vector data for this list of times and levels
C
havvec = .false.
IF ( proces ) THEN
havvec = .true.
CALL GDTXVV ( igdfln, timfnd, ntdata, gvcord,
+ ystrt, ystop, iyaxis, gvect, ivcord,
+ rgx, rgy, levels, nlev, grdoutu,
+ grdoutv, rlvlv, nlvlv ,iret )
IF ( iret .eq. 7 ) havvec = .false.
IF ( iret .lt. 0 ) proces = .false.
END IF
C
IF ( proces .and. havcon ) THEN
CALL GDTXLV( line, cint, scale, nptsc, nlvlc, 1, 1,
+ nptsc, nlvlc, grdout, icolor, iline,
+ ilwid, labflg, iscale, dmin, dmax,
+ clvl, nlvl, iret )
IF ( iret .ne. 0 ) proces = .false.
ELSE
dmin = 0.0
dmax = 0.0
nlvl = 0
END IF
C
IF ( proces ) THEN
CALL GDTXSP ( gdfile, gfunc, ntdata, iscale,
+ gdatim, gvcord, nlvl, clvl, dmin,
+ dmax, icolor, iline, ilwid, labflg,
+ device, panel, gvect, wind, havcon,
+ havvec, iret )
IF ( iret .ne. 0 ) proces = .false.
END IF
IF ( proces ) THEN
CALL GSTANM ( ier )
CALL GQMODE ( mode, ier )
CALL GSMODE ( 2, ier )
IF ( clear ) CALL GCLEAR ( ier )
CALL GG_PANL ( panel, ier )
C
havsfc = .false.
CALL GDTXPL( border, iyaxis, ystrt, ystop, vclsfc,
+ havsfc, ylbl, nylbl, xstrt, xstop,
+ xtlbl, ctlbl, nxlbl, ntdata, itlbfr,
+ itglfr, ittmfr, ratio, rmargn, ilbfrq,
+ iglfrq, itmfrq, iret )
C
CALL GSGGRF ( 1, iyaxis, nptsc, nlvlc, xptsc (1),
+ ystrt, xptsc (nptsc), ystop, iret )
IF ( havcon ) THEN
CALL GCLGRN ( nptsc, nlvlc, grdout, 0, 0, 0,
+ nlvl, clvl, icolor, iline, ilwid,
+ labflg, iret )
END IF
IF ( havvec ) THEN
indx = 1
DO k = 1, nlvlv
DO i = 1, ntdata
xgrd (indx) = x (i)
ggrd (indx) = rlvlv (k)
indx = indx + 1
END DO
END DO
CALL GDTXPV ( gvect, grdoutu, grdoutv, xgrd,
+ ggrd, ntdata, nlvlv, wind,
+ points, ier )
END IF
C
C* Write the title.
C
CALL IN_TITL ( title, 0, ititl, linttl, ttlstr,
+ ier )
levl (1) = -1
levl (2) = -1
time (1) = trange (1)
time (2) = ' '
CALL GR_TITL ( ttlstr, time, .false.,
+ levl, ivcord, gfunc, iscale,
+ gpoint, ttlstr, shrttl, iret )
IF ( clear ) CALL GMESG ( shrttl, ier )
IF ( ititl .ne. 0 ) THEN
CALL GSCOLR ( ititl, ier )
CALL GG_WSTR ( ttlstr, linttl, ier )
END IF
C
CALL GSMODE ( mode, ier )
END IF
CALL GEPLOT ( ier )
CALL GENANM ( ier )
CALL IP_DYNM ( done, ier )
END IF
END DO
CALL GENDP ( 0, iret )
CALL IP_EXIT ( iret )
END