#include <stdio.h>
#include <stdlib.h>
#include "dprints.h"
#include "gribfuncs.h"		/* prototypes */
#include "grib_lookup.h"	/* macros */

/*
****************************************************************************
* A.  FUNCTION:   make_default_grbfn
*        build and return default filename for current message to be encoded
*        using the information from structures DATA_INPUT and USER_INPUT.
*
*    INTERFACE:
*      void  make_default_grbfn (DATA_INPUT di, USER_INPUT ui, char *default_fn)
*
*    ARGUMENTS (I=input, O=output, I&O=input and output):
*      (I) DATA_INPUT  di;     contains info of msg to be encoded
*      (I) USER_INPUT  ui;     contains the required chCase_id
*      (O) char *default_fn;   empty string atleast 42 characters long
*
*     RETURN CODE: none; default_fn string contains name with format
*       'Mid_Gid_yyyymmddhhtau_PIndx_Lid.lvl1.c.grb';
****************************************************************************
*/
#if PROTOTYPE_NEEDED
void    make_default_grbfn  (DATA_INPUT di, USER_INPUT ui, char *default_fn)
#else
void    make_default_grbfn  (di,ui,default_fn)
		DATA_INPUT di; 
                USER_INPUT ui; 
                char *default_fn;
#endif
{
/*
* A.1   Build the default filename:  MMM_GGG_yyyymmddhhtau_PIndx.lvl1.c.grb
*       where
*         MMM   : 3-dibit model id from DATA_INPUT
*         GGG   : 3-digit geom id from DATA_INPUT
*         yyyy  : 4-digit year of reference date/time from DATA_INPUT
*          mm   : 2-digit month of reference date/time from DATA_INPUT
*          dd   : 2-digit day of reference date/time from DATA_INPUT
*          hh   : 2-digit hour of reference date/time from DATA_INPUT
*         tau   : 3-digit forecast period  from DATA_INPUT
*       PIndx   : 4-digit Parameter Index computed from DATA_INPUT's 
*                 Parmid & ParmSubid
*         Lid   : 3-digit Level id from DATA_INPUT
*        lvl1   : 5-digit Level 1  from DATA_INPUT
*           c   : 1-digit Case id from USER_INPUT
*        .grb   : 4-char string, as is
*/
  sprintf (default_fn, 
        "%03d_%03d_%04d%02d%02d%02d%03d_%04d_%03d.%05d.%c.grb",
        di.usProc_id, di.usGrid_id, di.nYear, di.nMonth, di.nDay, 
        di.nHour, di.usFcst_per1, 
	(int)PARMTBL_INDX (di.usParm_id, di.usParm_sub_id),
	di.usLevel_id, di.nLvl_1, 
        ui.chCase_id);

  DPRINT1("make_default_grb_fn built '%s'\n", default_fn);
}