awips2/ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/dgdriv_c/dba2dtget.c
Steve Harris e5543a0e86 12.4.1-10 baseline
Former-commit-id: 9f8cb727a5 [formerly 9f8cb727a5 [formerly bf53d06834caa780226121334ac1bcf0534c3f16]]
Former-commit-id: 8485b90ff8
Former-commit-id: a28d70b5c5
2012-05-01 18:06:13 -05:00

116 lines
4.4 KiB
C

#include "geminc.h"
#include "gemprm.h"
#include "dbcmn.h"
#define A2DB_TAG "A2DB_"
extern A2Data_t A2DtTable;
void db_a2dtget ( char *alias, char *path, char *template, int *iret )
/************************************************************************
* *
* db_a2dtget *
* *
* m.gamazaychikov/SAIC 09/11 Created *
************************************************************************/
{
int ier, ii, ic, ipos, ic2, ipos2;
char name[49], tmpl[49];
int ierm;
char diagMessage[720];
/*----------------------------------------------------------------------*/
/*
* Initialization
*/
*iret = 0;
path[0] = '\0';
template[0] = '\0';
diagMessage[0] = '\0';
db_msgcave ("db_a2dtget", "debug", "calling db_isdbfile", &ierm);
db_isdbfile ( alias, &ier, strlen (alias) );
/*
* For the A2DB data create path and template
*/
if ( ier == 0 ) {
/*
* Remove the name of the storm/volcano from the alias.
*/
/*
* Find a match for the alias.
*/
for ( ii = 0; ii < A2DtTable.numtmpl; ii++ ) {
strcpy( path, A2DtTable.info[ii].path );
cst_nocc ( A2DtTable.info[ii].template, '*', 1, 0, &ipos2, &ic2 );
sprintf (diagMessage, "%s %d ", "ic2=", ic2 );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
if ( ic2 == 0 ) {
/*
* Remove the name of the storm/volcano from the alias.
*/
cst_nocc ( alias, ':', 1, 0, &ipos, &ic );
if ( ic == 0 ) {
sprintf (diagMessage, "%s %d ", "ic=", ic );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
strcpy ( name, &alias[ipos+1] );
alias[ipos] = CHNULL;
sprintf (diagMessage, "%s %s", "name ", name);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
sprintf (diagMessage, "%s %s", "new alias is", alias);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
}
if ( strcmp( A2DtTable.info[ii].alias, alias ) == 0 ) {
sprintf (diagMessage, "%s %d %s %s %s %s %s %s", "ii=", ii, "alias=", alias,
"path=", A2DtTable.info[ii].path,
"template=", A2DtTable.info[ii].template );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
if ( ic == 0 ) {
sprintf (diagMessage, "%s %d ", "ic=", ic );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
strcpy( tmpl, A2DtTable.info[ii].template );
sprintf (diagMessage, "%s %s", "tmpl is ", tmpl);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
cst_rpst ( tmpl, "*", name, template, &ier );
sprintf (diagMessage, "%s %s %s %s", "changing template ", A2DtTable.info[ii].template, " to ", template);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
}
else {
strcpy( template, A2DtTable.info[ii].template );
sprintf (diagMessage, "%s %s ", "setting template to ", template);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
}
}
}
else {
if ( strcmp( A2DtTable.info[ii].alias, alias ) == 0 ) {
sprintf (diagMessage, "%s %d %s %s %s %s %s %s", "ii=", ii, "alias=", alias,
"path=", A2DtTable.info[ii].path,
"template=", A2DtTable.info[ii].template );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
strcpy( template, A2DtTable.info[ii].template );
sprintf (diagMessage, "%s %s ", "setting template to ", template);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
}
}
}
/*
* For the non-A2DB data return
*/
}
else {
*iret = -1;
sprintf (diagMessage, "%s %d", "returning iret= ",*iret);
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
}
sprintf (diagMessage, "%s %s %s %s", "returning path=", path, "template=", template );
db_msgcave ("db_a2dtget", "debug", diagMessage, &ierm);
return;
}