[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20051108: Gempak - GARP forecast soundings crash
- Subject: 20051108: Gempak - GARP forecast soundings crash
- Date: Thu, 10 Nov 2005 11:03:38 -0700 (MST)
Dave,
Attached is the source code for $GARPHOME/object/displayvprof.c
Replace the existing copy, and then:
cd $GARPHOME
make clean
make all
make install
make clean
Steve Chiswell
****************************************************************************
Unidata User Support UCAR Unidata Program
303 497 8643 P.O. Box 3000
address@hidden Boulder, CO 80307
----------------------------------------------------------------------------
Unidata WWW Service http://my.unidata.ucar.edu/content/support
****************************************************************************
On Wed, 9 Nov 2005, David S. Nolan wrote:
>
> Dear Steve,
>
> Thank you for your very fast reply. I believe we compiled
> the code, so please send me the link to the fix. Some brief
> instructions on how to install it would help, because the
> person who installs these things is out of town right now.
>
> Best regards,
>
> Dave Nolan
>
>
>
> >
> > David,
> >
> > This "new" bug in model soundings is caused by gcc's handling of string
> > constants
> > when passed to a Fortran routine. The code hasn't changed in many years,
> > but now
> > gcc is having trouble. I have patched this routine for the upcoming 5.8.4
> > release
> > but you can update your current version as needed. It you want to patch
> > the source code,
> > I can send you the reference to our site where I posted the fix. If you
> > are running
> > a binary release, I can send you the new executable.
> >
> > Steve Chiswell
> > Unidata User Support
> >
> >
> >
> >>From: "David Nolan" <address@hidden>
> >>Organization: UCAR/Unidata
> >>Keywords: 200511081743.jA8HhDCs014535
> >
> >>Institution: University of Miami
> >>Package Version: 2.1
> >>Operating System: Linux
> >>Hardware Information: x86
> >>Inquiry: Greetings from Miami.
> >>
> >>I'm using GARP to teach a course on Weather Analysis here at the
> >> University of
> >> Miami. The program works quite well, but I just discovered that it
> >> crashes e
> >> very time I try to plot a model forecast sounding - either Skew-T or
> >> Stuve. I
> >> t works if I choose Linear or Logarithmic vertical coordinates - but
> >> those ar
> >> e hard to infer stability from.
> >>
> >>When it crashes, it gives the "Segmentaion Error" message.
> >>
> >>Do you have any suggestions?
> >>
> >>Thanks!
> >>
> >>Dave Nolan
> >>
> >>
> >>
> > --
> > ****************************************************************************
> > Unidata User Support UCAR Unidata
> > (303)497-8643 P.O. Box
> > address@hidden Boulder, CO
> > ----------------------------------------------------------------------------
> > Unidata WWW Service
> > ----------------------------------------------------------------------------
> > NOTE: All email exchanges with Unidata User Support are recorded in the
> > Unidata inquiry tracking system and then made publicly available
> > through the web. If you do not want to have your interactions made
> > available in this way, you must let us know in each email you send to us.
> >
>
>
> --
> David S. Nolan
> Assistant Professor
> Division of Meteorology and Physical Oceanography
> Rosenstiel School of Marine and Atmospheric Science
> University of Miami
> 4600 Rickenbacker Causeway
> Miami, FL 33149
> 305-421-4930
> address@hidden
> http://www.rsmas.miami.edu/personal/dnolan
>
> "Comprehensive complexity is no virtue in modeling,
> but rather, an admission of failure." - Ian James.
>
>
/***********************************************************************
*
* Copyright 1996, University Corporation for Atmospheric Research.
*
* displayprof.c
*
* Vertical profile display driver.
*
* History:
*
* 12/96 COMET Original copy
* 1/97 COMET Use title string in mot for consistency across
* data types.
* 3/97 COMET Added wind position indicator.
* 3/97 COMET Added frame number
* 11/97 COMET Added titleIndex to pvprof arg list.
*
***********************************************************************/
#include "underscore.h"
#include "winobj.h"
#include "wincb.h"
#include "genglobs.h"
int DisplayVerticalProfile( WindowObjectType *wo, MetObjectType *mot )
{
char title[FILENAMESTRING], wind[GEMPAKSTRING];
char tmp_datim[GEMPAKSTRING];
char line[GEMPAKSTRING];
char file[GEMPAKSTRING];
char sizestr[GEMPAKSTRING], widthstr[GEMPAKSTRING];
char fontstr[GEMPAKSTRING];
int size, width, font_size;
int i, verbose, frame, iret;
char gfunc[GEMPAKSTRING], gvect[GEMPAKSTRING];
VertProfileObjectType *pot;
MetObjectType *gmobj;
verbose = GetVerboseLevel();
if( verbose > VERBOSE_0 )
printf ( "DisplayVerticalProfile\n" );
frame = GetActivePixmapObjectIndex (wo) + 1;
pot = (VertProfileObjectType *) mot->metObjectContent;
assert( pot );
/*
* Save original FDF settings.
*/
strcpy ( sizestr, pot->symbol_size );
strcpy ( widthstr, pot->symbol_width );
strcpy ( fontstr, pot->text );
/*
* Set plotting parameters according to generalized values.
*/
GetDepictableValue ( "SYMBOLSIZE", &size );
GetDepictableValue ( "SYMBOLWIDTH", &width );
GetDepictableValue ( "FONTSIZE", &font_size );
SetGemFloatVar (TIMEHEIGHTOBJECT, sizestr, "SYMBOLSIZE", size );
SetGemFloatVar (TIMEHEIGHTOBJECT, widthstr, "SYMBOLWIDTH", width );
SetGemText (TIMEHEIGHTOBJECT, fontstr, "FONTSIZE", font_size );
/*
* Set contour line characteristics.
*/
sprintf ( line, "%s/%s/%s", pot->line_color, pot->line_type,
pot->line_width );
sprintf ( wind, "%s%s/%s/%s/%s/%s",
pot->wind_symbol, pot->line_color,
sizestr , widthstr ,
pot->symbol_type, pot->symbol_headsize );
strcpy ( title, mot->titleString );
SetGemTitle ( line, mot->titleIndex, title );
if(strcspn(pot->ftime,"/") > 6)
strcpy(tmp_datim,pot->ftime+2);
else
strcpy(tmp_datim,pot->ftime);
/*
* Gempak driver.
*/
if ( strstr ( pot->ptype, "skewt" ) ||
strstr ( pot->ptype, "stuve" ) ) {
/*
* Use red for the TMPC line color for the first plot.
*/
if ( strcmp ( pot->winpos, "1" ) == 0 )
sprintf ( line, "2/%s/3", pot->line_type );
else
sprintf ( line, "%s/%s/3", pot->line_color, pot->line_type );
sprintf(gfunc,"tmpc"); sprintf(gvect,"wind");
pvprof( mot->filename, tmp_datim,
pot->vcoord, gfunc,
pot->point, gvect,
pot->ptype, pot->xaxis,
pot->yaxis, line,
wind, pot->refvec,
pot->winpos, pot->thtaln,
pot->thteln, pot->mixrln,
pot->filter, title,
pot->scale, fontstr,
&frame, &(mot->titleIndex),
&verbose, &iret,
strlen(mot->filename), strlen(tmp_datim),
strlen(pot->vcoord), strlen(gfunc),
strlen(pot->point), strlen(gvect),
strlen(pot->ptype), strlen(pot->xaxis),
strlen(pot->yaxis), strlen(line),
strlen(wind), strlen(pot->refvec),
strlen(pot->winpos), strlen(pot->thtaln),
strlen(pot->thteln), strlen(pot->mixrln),
strlen(pot->filter), strlen(title),
strlen(pot->scale), strlen(fontstr) );
/*
* Use green for the DWPC line color for the first plot.
*/
if ( strcmp ( pot->winpos, "1" ) == 0 )
sprintf ( line, "3/%s/3", pot->line_type );
else
sprintf ( line, "%s/%s/3", pot->line_color, pot->line_type );
sprintf(gfunc,"dwpc"); sprintf(gvect," ");
pvprof( mot->filename, tmp_datim,
pot->vcoord, gfunc,
pot->point, gvect,
pot->ptype, pot->xaxis,
pot->yaxis, line,
wind, pot->refvec,
pot->winpos, pot->thtaln,
pot->thteln, pot->mixrln,
pot->filter, title,
pot->scale, fontstr,
&frame, &(mot->titleIndex),
&verbose, &iret,
strlen(mot->filename), strlen(tmp_datim),
strlen(pot->vcoord), strlen(gfunc),
strlen(pot->point), strlen(gvect),
strlen(pot->ptype), strlen(pot->xaxis),
strlen(pot->yaxis), strlen(line),
strlen(wind), strlen(pot->refvec),
strlen(pot->winpos), strlen(pot->thtaln),
strlen(pot->thteln), strlen(pot->mixrln),
strlen(pot->filter), strlen(title),
strlen(pot->scale), strlen(fontstr) );
}
else
pvprof( mot->filename, tmp_datim,
pot->vcoord, pot->field,
pot->point, pot->vector,
pot->ptype, pot->xaxis,
pot->yaxis, line,
wind, pot->refvec,
pot->winpos, pot->thtaln,
pot->thteln, pot->mixrln,
pot->filter, title,
pot->scale, fontstr,
&frame, &(mot->titleIndex),
&verbose, &iret,
strlen(mot->filename), strlen(tmp_datim),
strlen(pot->vcoord), strlen(pot->field),
strlen(pot->point), strlen(pot->vector),
strlen(pot->ptype), strlen(pot->xaxis),
strlen(pot->yaxis), strlen(line),
strlen(wind), strlen(pot->refvec),
strlen(pot->winpos), strlen(pot->thtaln),
strlen(pot->thteln), strlen(pot->mixrln),
strlen(pot->filter), strlen(title),
strlen(pot->scale), strlen(fontstr) );
SetMetObjectDrawnFlag( mot, True );
return(0);
}