Former-commit-id:b242dd98d6
[formerly11f96dbedd
] [formerly16bf591a33
] [formerlyb242dd98d6
[formerly11f96dbedd
] [formerly16bf591a33
] [formerlyc42ae0fa39
[formerly16bf591a33
[formerly 46767a18a0d6e1f2182720c8a04c6e1e59cb18a1]]]] Former-commit-id:c42ae0fa39
Former-commit-id:e1eb7f5972
[formerlyf2102bfb24
] [formerly 02bef853ef7c7fae6630b12e89ad4d9ef11bc391 [formerly9f97182964
]] Former-commit-id: 8c3889c2ea3f00fe58aa1f356c175dee2c28f99c [formerly9aabe438b9
] Former-commit-id:36e2ad3023
67 lines
2.6 KiB
C
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;
|
|
}
|
|
}
|