#include "dccrad.h" /************************************************************************ * DCCRAD * * * * This program decodes Canadian radar data into BUFR format. * * * * Command line: * * dccrad [options] [cradfl] [bufrtb] * * * * Input files: * * cradfl = Canadian radar data file * * bufrtb = BUFR tables file * ** * * Log: * * J. Ator/NCEP 02/11 * * J. Ator/NCEP 02/19 Modify for Dell environment * * J. Ator/NCEP 09/21 Modify for WCOSS2 environment * ***********************************************************************/ main ( argc, argv ) int argc; char *argv[]; { #define NUMEXP 3 int nexp = NUMEXP; char *prgnam = "DCCRAD"; /* ** Define the standard decoder parameters. */ char stntbl[DCMXLN], stntb2[DCMXLN]; char prmfil[DCMXLN]; int iadstn; int maxtim; int nhours; int txtflg; int iwndht; int circflg; /* ** Define default values for the standard decoder parameters. */ char *defprm = " "; char *defstn = " "; char *dfstn2 = " "; int idfadd = 0; int idfmax = 0; int ndfhr1 = 240; int ndfhr2 = 240; int idfwdh = 0; /* ** Define the additional decoder parameters. */ const char *dvstr = DVSTR; /* DVSTR is a compile-time macro */ char cradfl[DCMXLN]; char bufrtb[DCMXLN]; int lundx = 40; int lunout = 70; /* ** Do not change these variables. These variables are used by all ** decoders for getting the command line parameters. */ char parms[NUMEXP][DCMXLN]; char curtim[DCMXLN]; int num; int iret; int ier; /*---------------------------------------------------------------------*/ /* ** Initialize the output logs, set the time out, and ** parse the command line parameters. */ dc_init ( prgnam, argc, argv, nexp, parms, &num, &iret ); /* ** Check for an initialization error. */ if ( iret < 0 ) { dc_exit ( &iret ); } /* ** Set each standard decoder parameter to the value from the ** command line options (if defined) or else to the default ** value. */ dc_gopt ( defprm, defstn, dfstn2, idfadd, idfmax, ndfhr1, ndfhr2, idfwdh, prmfil, stntbl, stntb2, &iadstn, &maxtim, curtim, &nhours, &txtflg, &circflg, &iwndht, &iret ); /* ** Set default values for the additional decoder parameters. */ strcpy ( cradfl, "cradfl" ); strcpy ( bufrtb, "bufrtab.006" ); /* ** Now, for each additional decoder parameter, if a value was ** defined on the command line, then use that value instead of ** the default value. */ if ( num > 0 ) { strcpy ( cradfl, parms[0] ); } if ( num > 1 ) { strcpy ( bufrtb, parms[1] ); } /* ** Initialize the BUFR output stream. */ cr_pnbf ( bufrtb, &lunout, &lundx, strlen(bufrtb) ); /* ** Call the main decoding function. */ ut_prvs ( dvstr, strlen(dvstr) ); cr_dcod ( cradfl, lunout ); /* ** Send shut down message and close the log file. */ dc_wclg ( 0, "DC", 5, " ", &ier ); dc_wclg ( 0, "DC", 6, " ", &ier ); /* ** Exit the program. */ exit ( iret ); }