awips2/ncep/gov.noaa.nws.ncep.viz.rsc.ncgrid/dgdriv_c/dbsetsubgnav.c
Steve Harris 23dc8deeb0 12.7.1-8 baseline
Former-commit-id: b242dd98d6 [formerly 11f96dbedd] [formerly 16bf591a33] [formerly b242dd98d6 [formerly 11f96dbedd] [formerly 16bf591a33] [formerly c42ae0fa39 [formerly 16bf591a33 [formerly 46767a18a0d6e1f2182720c8a04c6e1e59cb18a1]]]]
Former-commit-id: c42ae0fa39
Former-commit-id: e1eb7f5972 [formerly f2102bfb24] [formerly 02bef853ef7c7fae6630b12e89ad4d9ef11bc391 [formerly 9f97182964]]
Former-commit-id: 8c3889c2ea3f00fe58aa1f356c175dee2c28f99c [formerly 9aabe438b9]
Former-commit-id: 36e2ad3023
2012-07-19 16:20:40 -05:00

67 lines
2.6 KiB
C

#include "geminc.h"
#include "gemprm.h"
#include "dbcmn.h"
#include "dg.h"
void db_setsubgnav ( float lllat, float lllon, float urlat, float urlon, int *iret )
/************************************************************************
* db_setsubgnav *
* *
* This subroutine initializes internal sub grid navigation. *
* dgc_setsubgnav (lllat, lllon, urlat, urlon, irer ) *
* Input parameters: *
* lllat float Lower left latitude *
* lllon float Lower left Longitude *
* urlat float Upper right latitude *
* urlon float Upper right Longitude *
* Output parameters: *
* *iret int Return code *
* 0 = normal return *
* -46 = invalid grid point *
** *
* Log: *
* X. Guo 12/04 Initial *
***********************************************************************/
{
int nc,ier;
char gprj[5];
float rltmin, rlnmin, rltmax, rlnmax;
float dlatll, dlonll, dlatur, dlonur;
/*----------------------------------------------------------------------*/
*iret = 0;
cst_itos ( (int *)&_dgsubg.refnav[1], 1, &nc, gprj, &ier );
cst_rmbl ( gprj, gprj, &nc, &ier );
/*
* Define sub-grid area
*/
rltmin = G_MIN ( lllat, urlat );
rlnmin = G_MIN ( lllon, urlon );
rltmax = G_MAX ( lllat, urlat );
rlnmax = G_MAX ( lllon, urlon );
/*
* Take care of the sub-grid area across the date-line
*/
if ( ( rlnmax - rlnmin ) > 180. ) {
dlatll = rltmin;
dlonll = rlnmax;
dlatur = rltmax;
dlonur = rlnmin;
} else {
dlatll = rltmin;
dlonll = rlnmin;
dlatur = rltmax;
dlonur = rlnmax;
}
/*
* *Set internal sub-grid navigation
*/
gsmprj ( gprj, &_dgsubg.refnav[10], &_dgsubg.refnav[11], &_dgsubg.refnav[12],
&dlatll, &dlonll, &dlatur, &dlonur, &ier, strlen(gprj) );
/*
* IF set sub-grid navigation fail, change center longitude
*/
if ( ier != 0 ) {
*iret = -46;
}
}