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

19991026: Fkey menu GRID items and XCD decoding of GRIDded data (cont.)



>From: Myron Kowalski <address@hidden>
>Organization: Moravian College
>Keywords: 199910262043.OAA26544 McIDAS Fkey

Myron,

>I ran 
>sh ./uwgrid.sh NG
>sh ./uwgrid.sh NF
>
>and two grid file were created
>-rw-rw-r--   1 mcidas   unidata     2444 Oct 27 14:27 GRID0001
>-rw-rw-r--   1 mcidas   unidata     2444 Oct 27 14:14 GRID0101
>
>I got the new UNIMENU.DEF file, but the F3 still gives me 
>String not found: ?MODEL1 

Did you:

o exit the menu

o update the strings in the string table as I indicated before:

  TENTER UNIMENU.DEF

o restart the menu

I am guessing that you might have updated the strings but the menu
was still running.  If this is the case, it had already read a
number of the strings that it needed on startup, so you needed to
exit and restart it.

>and the uwgrid.log doesn't look good for both runs. 
>
>Starting uwgrid.sh NG at 1999300/182714
>PRODUCT CODE=NG          1999300     182714
>GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB
>NUM=ALL FHOU
>R=0 12 24 36 48 LEV=1000 850 700 500 250 PARAM=Z T U V
>Program terminated, segmentation violation
>GRDCOPY failed, RC=1
>GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB
>NUM=ALL FHOU
>R=12 24 36 LEV=SFC PARAM=PCP
>Program terminated, segmentation violation
>GRDCOPY failed, RC=1
>... etc.

The segmentation violation smacks of a Sun SC5.0 Fortran bug that we
have reported to Sun.  To verify this, I:

o logged onto catwoman

o cd mcidas7.6/src

o f77 -c mcgget.for
  ar r libmcida.a mcgget.o
  make grdcopy.k grddisp.k

o retried running of uwgrid.sh:

  cd ~/workdata
  sh ./uwgrid.sh NG
  more uwgrid.log
  Starting uwgrid.sh NG at 1999300/192410
PRODUCT CODE=NG          1999300     192410
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=0 12 24 36 48 LEV=1000 850 700 500 250 PARAM=Z T U V
Total grids copied=100
GRDCOPY - done
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=12 24 36 LEV=SFC PARAM=PCP
Total grids copied=3
GRDCOPY - done
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=0 12 24 36 48 LEV=MSL PARAM=P
Total grids copied=5
GRDCOPY - done
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=6 12 24 36 LEV=700 PARAM=W
Total grids copied=4
GRDCOPY - done
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=0 12 24 36 48 LEV=500 PARAM=LI
Total grids copied=5
GRDCOPY - done
GRDCOPY RTGRIDS/NGM MYDATA/GRIDS.9999 DAY=1999300 TIME=12 GPRO=LAMB NUM=ALL FHOU
R=0 6 12 24 LEV=850 PARAM=RH
Total grids copied=4
GRDCOPY - done
  ...

  sh ./uwgrid.sh NF

  ...

So, you were running into the Sun SC5.0 Fortran bug.  The routines that I
have found that don't work because of this bug are: grddisp.k, grdcopy.k
(both related to the compiling of mcgget.for) and ptlist.k (related
to the compiling of ptlist.pgm).  I remade all of these routines with
optimization turned off.  The procedure for gridisp.k and grdcopy.k I
showed above.  The procedure for ptlist.k is:

cd mcidas7.6/src
./mccomp -vendor -I. -I../netcdf/libsrc -c ptlist.pgm
./mccomp -s -vendor -o ptlist.k main.o ptlist.o -L. -lmcidas

The running of uwgrid.sh verified that the new copy of grdcopy.k is OK.
I verified that the new copy of ptlist.k was OK as follows:

cd ~/workdata
ptlist.k RTPTSRC/SFCHOURLY
Row :      1  Col :      1
TYPE        =         0             | DAY         =   1999300 CYD         |
TIME        =         0 HMS         | NREC        =      2428             |
ID          =      NZCM             | LAT         =  -77.8666 DEG         |
LON         = -166.9666 DEG         | ZS          =         8 M           |
ST          = _missing_             | CO          =        US             |
MOD         =         0             | HMS         =    235500 HMS         |
CIGC        = _missing_             | CC1         =         0             |
CC2         = _missing_             | CIGH        = _missing_             |
ZCL1        = _missing_             | ZCL2        = _missing_             |
VIS         =       7.0 MI          | WX1         = _missing_             |
WX2         = _missing_             | T           =    254.16 K           |
TD          =    245.16 K           | DIR         =       320 DEG         |
SPD         =       1.0 MPS         | GUS         = _missing_             |
PSL         =    973.58 MB          | PCP         = _missing_             |
SNO         = _missing_             | PRE         = _missing_             |
P24         = _missing_             | WXC1        = _missing_             |
WXC2        = _missing_             | WXC3        = _missing_             |
WXC4        = _missing_             |
---------------------------------------------------------------------------
Number of matches found = 1
ptlist.k: Done

If you experience other routines that give segmentation violations, it
is likely that the culprit is the SC5.0 Fortran compiler.  At this point,
I would edit the McIDAS makefile and remove the optimization flag:

cd mcidas7.6
<edit makefile and change>
DEBUG                   = -O

to 

DEBUG                   =


I would then rebuild all of McIDAS:

make clobber
make all
make install.bin

Let's hope that Sun comes out with a bug fix for their Fortran compiler
soon!

Tom
--
+-----------------------------------------------------------------------------+
* Tom Yoksas                                             UCAR Unidata Program *
* (303) 497-8642 (last resort)                                  P.O. Box 3000 *
* address@hidden                                   Boulder, CO 80307 *
* Unidata WWW Service                             http://www.unidata.ucar.edu/*
+-----------------------------------------------------------------------------+