Former-commit-id:7fa9dbd5fb
[formerly4bfbdad17d
] [formerly9f8cb727a5
] [formerly7fa9dbd5fb
[formerly4bfbdad17d
] [formerly9f8cb727a5
] [formerly8485b90ff8
[formerly9f8cb727a5
[formerly bf53d06834caa780226121334ac1bcf0534c3f16]]]] Former-commit-id:8485b90ff8
Former-commit-id:40aa780b3d
[formerly33a67cdd82
] [formerly 73930fb29d0c1e91204e76e6ebfdbe757414f319 [formerlya28d70b5c5
]] Former-commit-id: a16a1b4dd44fc344ee709abbe262aeed58a8339b [formerlye5543a0e86
] Former-commit-id:0c25458510
247 lines
6 KiB
C
247 lines
6 KiB
C
#define DG_GLOBAL
|
|
#include "dg.h"
|
|
#undef DG_GLOBAL
|
|
|
|
void dg_intl ( int *iret )
|
|
/************************************************************************
|
|
* dg_intl *
|
|
* *
|
|
* This subroutine initializes the grid diagnostics package common *
|
|
* blocks. This is a one-time initialization. DG_INTL must be *
|
|
* called at the beginning of any program that uses grid diagnostic *
|
|
* functions. *
|
|
* *
|
|
* dg_intl ( iret ) *
|
|
* *
|
|
* Output parameters: *
|
|
* *iret int Return code *
|
|
* 0 = normal return *
|
|
** *
|
|
* Log: *
|
|
* K. Brill/HPC 5/03 Written to do one-time initialization *
|
|
* only from application level *
|
|
* R. Tian/SAIC 10/03 Added init for /NFILE/ *
|
|
* R. Tian/SAIC 2/04 Removed gdfprv and gdoprv *
|
|
* K. Brill/HPC 2/04 Remove nuflg argument *
|
|
* R. Tian/SAIC 3/04 Modified to use new GD file management *
|
|
* R. Tian/SAIC 5/04 Added init for /HINTRP/ *
|
|
* T. Lee/SAIC 12/04 Removed crtmem; added mbrnum, iensmb *
|
|
* T. Lee/SAIC 3/05 Initialized layer diagnostic *
|
|
* R. Tian/SAIC 1/06 Recoded from Fortran *
|
|
************************************************************************/
|
|
{
|
|
int i;
|
|
/*----------------------------------------------------------------------*/
|
|
*iret = 0;
|
|
|
|
/*
|
|
* Initialize layer diagnostic package.
|
|
*/
|
|
dl_init ( iret );
|
|
|
|
/*
|
|
* Initialize the internal grid storage common block.
|
|
*/
|
|
_dggrid.idglst = 0;
|
|
for ( i = 0; i< NDGRD; i++ ) {
|
|
_dggrid.dgg[i].grid = NULL;
|
|
_dggrid.dgg[i].size = 0;
|
|
_dggrid.dttimd1[i][0] = '\0';
|
|
_dggrid.dttimd2[i][0] = '\0';
|
|
_dggrid.leveld1[i] = 0;
|
|
_dggrid.leveld2[i] = 0;
|
|
_dggrid.ivcrdd[i] = 0;
|
|
_dggrid.gparmd[i][0] = '\0';
|
|
_dggrid.ifiled[i] = 0;
|
|
_dggrid.iusesv[i] = 0;
|
|
_dggrid.savflg[i] = G_FALSE;
|
|
_dggrid.iensmb[i] = 0;
|
|
}
|
|
_dggrid.maxdgg = 0;
|
|
_dggrid.isubid = 0;
|
|
|
|
/*
|
|
* Initialize the common block used to store user input.
|
|
*/
|
|
_dginpt.ddttim1[0] = '\0';
|
|
_dginpt.ddttim2[0] = '\0';
|
|
_dginpt.ldlevl1 = 0;
|
|
_dginpt.ldlevl2 = 0;
|
|
_dginpt.lvcord = 0;
|
|
_dginpt.ingdtm[0] = '\0';
|
|
_dginpt.inglev[0] = '\0';
|
|
_dginpt.invcrd[0] = '\0';
|
|
|
|
/*
|
|
* Initialize the common block used to store the table made by
|
|
* parsing GFUNC or GVECT.
|
|
*/
|
|
_dgtabl.ltabl = -1;
|
|
for ( i = 0; i < LENTC; i++ ) {
|
|
_dgtabl.ctabl[i][0] = '\0';
|
|
_dgtabl.clevel[i][0] = '\0';
|
|
_dgtabl.cvcord[i][0] = '\0';
|
|
_dgtabl.cgdttm[i][0] = '\0';
|
|
_dgtabl.icflnm[i] = 0;
|
|
_dgtabl.nfargs[i] = 0;
|
|
}
|
|
|
|
/*
|
|
* Initialize the common block for the computational stack.
|
|
*/
|
|
_dgstck.itop = -1;
|
|
for ( i = 0; i < LNSTK; i++ ) {
|
|
_dgstck.stack[i][0] = '\0';
|
|
_dgstck.istack[i] = 0;
|
|
_dgstck.icpntr[i] = 0;
|
|
}
|
|
|
|
/*
|
|
* Initialize the common block for the GDFILE entries.
|
|
*/
|
|
_dgfile.dgset = G_FALSE;
|
|
_dgfile.idlun = 0;
|
|
for ( i = 0; i < MMFILE; i++ ) {
|
|
_dgfile.idflnm[i] = 0;
|
|
_dgfile.gdcur[i][0] = '\0';
|
|
_dgfile.tmpflg[i] = G_FALSE;
|
|
_dgfile.templt[i][0] = '\0';
|
|
_dgfile.tdattm[i][0] = '\0';
|
|
_dgfile.tfirst[i][0] = '\0';
|
|
_dgfile.tlast[i][0] = '\0';
|
|
}
|
|
for ( i = 0; i < LLNNAV; i++ ) {
|
|
_dgfile.snav[i] = 0.0;
|
|
}
|
|
_dgfile.kxd = 0;
|
|
_dgfile.kyd = 0;
|
|
_dgfile.kxyd = 0;
|
|
_dgfile.idglat = 0;
|
|
_dgfile.idglon = 0;
|
|
_dgfile.cprj[0] = '\0';
|
|
for ( i = 0; i < LLGDHD; i++ ) {
|
|
_dgfile.ighdr[i] = 0;
|
|
}
|
|
_dgfile.anglr1 = RMISSD;
|
|
_dgfile.anglr2 = RMISSD;
|
|
_dgfile.anglr3 = RMISSD;
|
|
_dgfile.concon = RMISSD;
|
|
_dgfile.addcol = G_FALSE;
|
|
|
|
/*
|
|
* Initialize pointers to map scale factors and the grid spacing.
|
|
*/
|
|
_mapscl.ixmscl = 0;
|
|
_mapscl.iymscl = 0;
|
|
_mapscl.ixmsdy = 0;
|
|
_mapscl.iymsdx = 0;
|
|
_mapscl.gddx = RMISSD;
|
|
_mapscl.gddy = RMISSD;
|
|
|
|
/*
|
|
* Initialize HORIZON projection.
|
|
*/
|
|
_dgstrm.rot = RMISSD;
|
|
_dgstrm.sinclt = RMISSD;
|
|
_dgstrm.cosclt = RMISSD;
|
|
_dgstrm.clon = RMISSD;
|
|
|
|
/*
|
|
* Initialize diagnostic error string.
|
|
*/
|
|
_dgerr.errst[0] = '\0';
|
|
|
|
/*
|
|
* Initialize orientation angle.
|
|
*/
|
|
_dgovec.ornang = RMISSD;
|
|
|
|
/*
|
|
* Initialize the origin for M calculation.
|
|
*/
|
|
_dgorig.orglat = RMISSD;
|
|
_dgorig.orglon = RMISSD;
|
|
_dgorig.orgxpt = RMISSD;
|
|
_dgorig.orgypt = RMISSD;
|
|
|
|
/*
|
|
* Initialize the area subset common block.
|
|
*/
|
|
_dgarea.kgxmin = 0;
|
|
_dgarea.kgxmax = 0;
|
|
_dgarea.kgymin = 0;
|
|
_dgarea.kgymax = 0;
|
|
_dgarea.kextnd = 0;
|
|
_dgarea.jgxmin = 0;
|
|
_dgarea.jgxmax = 0;
|
|
_dgarea.jgymin = 0;
|
|
_dgarea.jgymax = 0;
|
|
_dgarea.ksub1 = 0;
|
|
_dgarea.ksub2 = 0;
|
|
|
|
/*
|
|
* Initialize subset internal grid common block.
|
|
*/
|
|
for ( i = 0; i < LLNNAV; i++ ) {
|
|
_dgsubg.refnav[i] = 0.0;
|
|
}
|
|
_dgsubg.gwrapg = G_FALSE;
|
|
_dgsubg.dgsubg = G_FALSE;
|
|
_dgsubg.ishift = 0;
|
|
_dgsubg.jsgxmn = 0;
|
|
_dgsubg.jsgxmx = 0;
|
|
_dgsubg.jsgymn = 0;
|
|
_dgsubg.jsgymx = 0;
|
|
_dgsubg.jsgxsk = 0;
|
|
_dgsubg.jsgysk = 0;
|
|
|
|
/*
|
|
* Initialize pointers to rotation sines and cosines.
|
|
*/
|
|
_dgrtwd.irtcos = 0;
|
|
_dgrtwd.irtsin = 0;
|
|
|
|
/*
|
|
* Initialize pointer to land-sea mask.
|
|
*/
|
|
_dglndc.lndsea = 0;
|
|
|
|
/*
|
|
* Initialize /NFILE/ common block.
|
|
*/
|
|
for ( i = 0; i < NGDFLS; i++ ) {
|
|
_nfile.ntmplt[i][0] = '\0';
|
|
_nfile.gflpth[i][0] = '\0';
|
|
_nfile.crtfnm[i][0] = '\0';
|
|
_nfile.aftrbr[i][0] = '\0';
|
|
_nfile.crtgdt1[i][0] = '\0';
|
|
_nfile.crtgdt2[i][0] = '\0';
|
|
_nfile.outflg[i] = G_FALSE;
|
|
_nfile.mbrnum[i] = 0;
|
|
}
|
|
for ( i = 0; i < LLMXGT; i++ ) {
|
|
_nfile.dtmlst1[i][0] = '\0';
|
|
_nfile.dtmlst2[i][0] = '\0';
|
|
}
|
|
_nfile.ntmlst = 0;
|
|
_nfile.itmlst = 0;
|
|
_nfile.irefnv = 0;
|
|
_nfile.nucode = G_FALSE;
|
|
|
|
/*
|
|
* Initialize /HINTRP/ common block.
|
|
*/
|
|
for ( i = 0; i < LLNNAV; i++ ) {
|
|
_hintrp.tfrnav[i] = 0.0;
|
|
}
|
|
_hintrp.igrxig = 0;
|
|
_hintrp.igryig = 0;
|
|
_hintrp.isnrot = 0;
|
|
_hintrp.icsrot = 0;
|
|
_hintrp.wndrot = G_FALSE;
|
|
_hintrp.adcltg = G_FALSE;
|
|
_hintrp.gwrptg = G_FALSE;
|
|
_hintrp.didint = G_FALSE;
|
|
|
|
return;
|
|
}
|