1*59599516SKenneth E. Jansen // Routine contains the structures for reading the user input through 2*59599516SKenneth E. Jansen // input_fform.cpp. The default values for all these variables are defined in 3*59599516SKenneth E. Jansen // input.config. 4*59599516SKenneth E. Jansen // 5*59599516SKenneth E. Jansen // Input variables that have been previously declared in common.h have to be 6*59599516SKenneth E. Jansen // re-declared here, in a consistant structure. 7*59599516SKenneth E. Jansen 8*59599516SKenneth E. Jansen #include <FCMangle.h> 9*59599516SKenneth E. Jansen 10*59599516SKenneth E. Jansen #define workfc FortranCInterface_GLOBAL_(workfc,WORKFC) 11*59599516SKenneth E. Jansen #define fronts FortranCInterface_GLOBAL_(fronts,FRONTS) 12*59599516SKenneth E. Jansen #define newdim FortranCInterface_GLOBAL_(newdim,NEWDIM) 13*59599516SKenneth E. Jansen #define timer4 FortranCInterface_GLOBAL_(timer4,TIMER4) 14*59599516SKenneth E. Jansen #define extrat FortranCInterface_GLOBAL_(extrat,EXTRAT) 15*59599516SKenneth E. Jansen #define spongevar FortranCInterface_GLOBAL_(spongevar,SPONGEVAR) 16*59599516SKenneth E. Jansen #define turbvar FortranCInterface_GLOBAL_(turbvar,TURBVAR) 17*59599516SKenneth E. Jansen #define turbvari FortranCInterface_GLOBAL_(turbvari,TURBVARI) 18*59599516SKenneth E. Jansen #define spebcvr FortranCInterface_GLOBAL_(spebcvr,SPEBCVR) 19*59599516SKenneth E. Jansen #define aerfrc FortranCInterface_GLOBAL_(aerfrc,AERFRC) 20*59599516SKenneth E. Jansen #define astore FortranCInterface_GLOBAL_(astore,ASTORE) 21*59599516SKenneth E. Jansen #define conpar FortranCInterface_GLOBAL_(conpar,CONPAR) 22*59599516SKenneth E. Jansen #define ctrlvari FortranCInterface_GLOBAL_(ctrlvari,CTRLVARI) 23*59599516SKenneth E. Jansen #define ctrlvar FortranCInterface_GLOBAL_(ctrlvar,CTRLVAR) 24*59599516SKenneth E. Jansen #define shpdat FortranCInterface_GLOBAL_(shpdat,SHPDAT) 25*59599516SKenneth E. Jansen #define datpnt FortranCInterface_GLOBAL_(datpnt,DATPNT) 26*59599516SKenneth E. Jansen #define elmpar FortranCInterface_GLOBAL_(elmpar,ELMPAR) 27*59599516SKenneth E. Jansen #define genpar FortranCInterface_GLOBAL_(genpar,GENPAR) 28*59599516SKenneth E. Jansen #define inpdat FortranCInterface_GLOBAL_(inpdat,INPDAT) 29*59599516SKenneth E. Jansen #define intdat FortranCInterface_GLOBAL_(intdat,INTDAT) 30*59599516SKenneth E. Jansen #define mio FortranCInterface_GLOBAL_(mio,MIO) 31*59599516SKenneth E. Jansen #define mioname FortranCInterface_GLOBAL_(mioname,MIONAME) 32*59599516SKenneth E. Jansen #define itrpar FortranCInterface_GLOBAL_(itrpar,ITRPAR) 33*59599516SKenneth E. Jansen #define itrpnt FortranCInterface_GLOBAL_(itrpnt,ITRPNT) 34*59599516SKenneth E. Jansen #define matdat FortranCInterface_GLOBAL_(matdat,MATDAT) 35*59599516SKenneth E. Jansen #define mmatpar FortranCInterface_GLOBAL_(mmatpar,MMATPAR) 36*59599516SKenneth E. Jansen #define outpar FortranCInterface_GLOBAL_(outpar,OUTPAR) 37*59599516SKenneth E. Jansen #define point FortranCInterface_GLOBAL_(point,POINT) 38*59599516SKenneth E. Jansen #define precis FortranCInterface_GLOBAL_(precis,PRECIS) 39*59599516SKenneth E. Jansen #define propar FortranCInterface_GLOBAL_(propar,PROPAR) 40*59599516SKenneth E. Jansen #define resdat FortranCInterface_GLOBAL_(resdat,RESDAT) 41*59599516SKenneth E. Jansen #define solpar FortranCInterface_GLOBAL_(solpar,SOLPAR) 42*59599516SKenneth E. Jansen #define timdat FortranCInterface_GLOBAL_(timdat,TIMDAT) 43*59599516SKenneth E. Jansen #define timpar FortranCInterface_GLOBAL_(timpar,TIMPAR) 44*59599516SKenneth E. Jansen #define incomp FortranCInterface_GLOBAL_(incomp,INCOMP) 45*59599516SKenneth E. Jansen #define mtimer1 FortranCInterface_GLOBAL_(mtimer1,MTIMER1) 46*59599516SKenneth E. Jansen #define mtimer2 FortranCInterface_GLOBAL_(mtimer2,MTIMER2) 47*59599516SKenneth E. Jansen #define timer3 FortranCInterface_GLOBAL_(timer3,TIMER3) 48*59599516SKenneth E. Jansen #define title FortranCInterface_GLOBAL_(title,TITLE) 49*59599516SKenneth E. Jansen #define sclrs FortranCInterface_GLOBAL_(sclrs,SCLRS) 50*59599516SKenneth E. Jansen #define levlset FortranCInterface_GLOBAL_(levlset,LEVLSET) 51*59599516SKenneth E. Jansen #define nomodule FortranCInterface_GLOBAL_(nomodule,NOMODULE) 52*59599516SKenneth E. Jansen #define sequence FortranCInterface_GLOBAL_(sequence,SEQUENCE) 53*59599516SKenneth E. Jansen #define amgvarr FortranCInterface_GLOBAL_(amgvarr,AMGVARR) 54*59599516SKenneth E. Jansen #define amgvari FortranCInterface_GLOBAL_(amgvari,AMGVARI) 55*59599516SKenneth E. Jansen 56*59599516SKenneth E. Jansen #define MAXBLK 50000 57*59599516SKenneth E. Jansen #define MAXSURF 30 58*59599516SKenneth E. Jansen #define MAXTS 100 59*59599516SKenneth E. Jansen #define MAXTOP 5 60*59599516SKenneth E. Jansen #define MAXQPT 125 61*59599516SKenneth E. Jansen #define MAXSH 125 62*59599516SKenneth E. Jansen #define NSD 3 63*59599516SKenneth E. Jansen #define machin 'RS/6000' 64*59599516SKenneth E. Jansen #define machfl 4 65*59599516SKenneth E. Jansen #define zero 0.0000000000000000000000000000000d0 66*59599516SKenneth E. Jansen #define pt125 0.1250000000000000000000000000000d0 67*59599516SKenneth E. Jansen #define pt25 0.2500000000000000000000000000000d0 68*59599516SKenneth E. Jansen #define pt33 0.3333333333333333333333333333333d0 69*59599516SKenneth E. Jansen #define pt39 0.3968502629920498686879264098181d0 70*59599516SKenneth E. Jansen #define pt5 0.5000000000000000000000000000000d0 71*59599516SKenneth E. Jansen #define pt57 0.5773502691896257645091487805020d0 72*59599516SKenneth E. Jansen #define pt66 0.6666666666666666666666666666667d0 73*59599516SKenneth E. Jansen #define pt75 0.7500000000000000000000000000000d0 74*59599516SKenneth E. Jansen #define one 1.0000000000000000000000000000000d0 75*59599516SKenneth E. Jansen #define sqt2 1.4142135623730950488016887242097d0 76*59599516SKenneth E. Jansen #define onept5 1.5000000000000000000000000000000d0 77*59599516SKenneth E. Jansen #define two 2.0000000000000000000000000000000d0 78*59599516SKenneth E. Jansen #define three 3.0000000000000000000000000000000d0 79*59599516SKenneth E. Jansen #define four 4.0000000000000000000000000000000d0 80*59599516SKenneth E. Jansen #define five 5.0000000000000000000000000000000d0 81*59599516SKenneth E. Jansen #define pi 3.1415926535897932384626433832795d0 82*59599516SKenneth E. Jansen 83*59599516SKenneth E. Jansen #ifdef __cplusplus 84*59599516SKenneth E. Jansen extern "C" { 85*59599516SKenneth E. Jansen #endif 86*59599516SKenneth E. Jansen extern struct { 87*59599516SKenneth E. Jansen int master; 88*59599516SKenneth E. Jansen int numpe; 89*59599516SKenneth E. Jansen int myrank; 90*59599516SKenneth E. Jansen } workfc ; 91*59599516SKenneth E. Jansen 92*59599516SKenneth E. Jansen extern struct { 93*59599516SKenneth E. Jansen int maxfront; 94*59599516SKenneth E. Jansen int nlwork; 95*59599516SKenneth E. Jansen } fronts ; 96*59599516SKenneth E. Jansen 97*59599516SKenneth E. Jansen extern struct { 98*59599516SKenneth E. Jansen int numper; 99*59599516SKenneth E. Jansen int nshgt; 100*59599516SKenneth E. Jansen int nshg0; 101*59599516SKenneth E. Jansen } newdim ; 102*59599516SKenneth E. Jansen 103*59599516SKenneth E. Jansen extern struct { 104*59599516SKenneth E. Jansen double birth; 105*59599516SKenneth E. Jansen double death; 106*59599516SKenneth E. Jansen double comtim; 107*59599516SKenneth E. Jansen } timer4 ; 108*59599516SKenneth E. Jansen 109*59599516SKenneth E. Jansen extern struct { 110*59599516SKenneth E. Jansen double ttim[100]; 111*59599516SKenneth E. Jansen } extrat ; 112*59599516SKenneth E. Jansen 113*59599516SKenneth E. Jansen extern struct { 114*59599516SKenneth E. Jansen double zoutsponge, radsponge, zinsponge, grthosponge, grthisponge; 115*59599516SKenneth E. Jansen double betamax; 116*59599516SKenneth E. Jansen int spongecontinuity, spongemomentum1, spongemomentum2; 117*59599516SKenneth E. Jansen int spongeenergy, spongemomentum3; 118*59599516SKenneth E. Jansen } spongevar ; 119*59599516SKenneth E. Jansen 120*59599516SKenneth E. Jansen extern struct { 121*59599516SKenneth E. Jansen double eles; 122*59599516SKenneth E. Jansen double ylimit[9][3]; /* 9 = 5 + 4 = puvwT + 4Scalars */ 123*59599516SKenneth E. Jansen double rampmdot[3][2]; 124*59599516SKenneth E. Jansen double rmutarget; 125*59599516SKenneth E. Jansen double pzero; 126*59599516SKenneth E. Jansen double wtavei; 127*59599516SKenneth E. Jansen double dtavei; 128*59599516SKenneth E. Jansen double dke; 129*59599516SKenneth E. Jansen double fwr1; 130*59599516SKenneth E. Jansen double flump; 131*59599516SKenneth E. Jansen double DES_SA_hmin; 132*59599516SKenneth E. Jansen int ierrcalc; 133*59599516SKenneth E. Jansen int ihessian; 134*59599516SKenneth E. Jansen int itwmod; 135*59599516SKenneth E. Jansen int ngaussf; 136*59599516SKenneth E. Jansen int idim; 137*59599516SKenneth E. Jansen int nlist; 138*59599516SKenneth E. Jansen int nintf[MAXTOP]; 139*59599516SKenneth E. Jansen } turbvar ; 140*59599516SKenneth E. Jansen 141*59599516SKenneth E. Jansen extern struct { 142*59599516SKenneth E. Jansen int irans, iles, idistcalc, isubmod; 143*59599516SKenneth E. Jansen int ifproj; 144*59599516SKenneth E. Jansen int i2filt; 145*59599516SKenneth E. Jansen int modlstats; 146*59599516SKenneth E. Jansen int idis; 147*59599516SKenneth E. Jansen int nohomog; 148*59599516SKenneth E. Jansen int ierrsmooth; 149*59599516SKenneth E. Jansen int iramp; 150*59599516SKenneth E. Jansen 151*59599516SKenneth E. Jansen /* int itwmod; */ 152*59599516SKenneth E. Jansen /* double rtavei; */ 153*59599516SKenneth E. Jansen /* int ierrcalc; */ 154*59599516SKenneth E. Jansen } turbvari ; 155*59599516SKenneth E. Jansen 156*59599516SKenneth E. Jansen extern struct { 157*59599516SKenneth E. Jansen int irscale; 158*59599516SKenneth E. Jansen int intpres; 159*59599516SKenneth E. Jansen double plandist; 160*59599516SKenneth E. Jansen double thetag; 161*59599516SKenneth E. Jansen double ds; 162*59599516SKenneth E. Jansen double tolerence; 163*59599516SKenneth E. Jansen double radcyl; 164*59599516SKenneth E. Jansen double rbltin; 165*59599516SKenneth E. Jansen double rvscal; 166*59599516SKenneth E. Jansen } spebcvr ; 167*59599516SKenneth E. Jansen 168*59599516SKenneth E. Jansen extern struct { 169*59599516SKenneth E. Jansen double scdiff[5]; 170*59599516SKenneth E. Jansen double tdecay; 171*59599516SKenneth E. Jansen int nsclr, isclr,nsolt, nosource; 172*59599516SKenneth E. Jansen int consrv_sclr_conv_vel; 173*59599516SKenneth E. Jansen } sclrs; 174*59599516SKenneth E. Jansen 175*59599516SKenneth E. Jansen extern struct { 176*59599516SKenneth E. Jansen double flxID[MAXSURF+1][10] ; 177*59599516SKenneth E. Jansen double Force[3]; 178*59599516SKenneth E. Jansen double HFlux; 179*59599516SKenneth E. Jansen int nsrflist[MAXSURF+1]; 180*59599516SKenneth E. Jansen int isrfIM; 181*59599516SKenneth E. Jansen double flxIDsclr[MAXSURF][4]; 182*59599516SKenneth E. Jansen } aerfrc ; 183*59599516SKenneth E. Jansen 184*59599516SKenneth E. Jansen extern struct { 185*59599516SKenneth E. Jansen double a[100000]; 186*59599516SKenneth E. Jansen } astore ; 187*59599516SKenneth E. Jansen 188*59599516SKenneth E. Jansen extern struct { 189*59599516SKenneth E. Jansen int numnp; 190*59599516SKenneth E. Jansen int numel; 191*59599516SKenneth E. Jansen int numelb; 192*59599516SKenneth E. Jansen int numpbc; 193*59599516SKenneth E. Jansen int nen; 194*59599516SKenneth E. Jansen int nfaces; 195*59599516SKenneth E. Jansen int numflx; 196*59599516SKenneth E. Jansen int ndof; 197*59599516SKenneth E. Jansen int iALE; 198*59599516SKenneth E. Jansen int icoord; 199*59599516SKenneth E. Jansen int navier; 200*59599516SKenneth E. Jansen int irs; 201*59599516SKenneth E. Jansen int iexec; 202*59599516SKenneth E. Jansen int necho; 203*59599516SKenneth E. Jansen int ichem; 204*59599516SKenneth E. Jansen int iRK; 205*59599516SKenneth E. Jansen int nedof; 206*59599516SKenneth E. Jansen int nshg; 207*59599516SKenneth E. Jansen int nnz; 208*59599516SKenneth E. Jansen int istop; 209*59599516SKenneth E. Jansen int nflow; 210*59599516SKenneth E. Jansen int nnz_tot; 211*59599516SKenneth E. Jansen int idtn; 212*59599516SKenneth E. Jansen } conpar ; 213*59599516SKenneth E. Jansen 214*59599516SKenneth E. Jansen /*chen Sep 25 2009 Flow Control Parameters*/ 215*59599516SKenneth E. Jansen extern struct{ 216*59599516SKenneth E. Jansen int iI2Binlet; 217*59599516SKenneth E. Jansen int isetOutPres; 218*59599516SKenneth E. Jansen int isetInitial; 219*59599516SKenneth E. Jansen } ctrlvari; 220*59599516SKenneth E. Jansen 221*59599516SKenneth E. Jansen extern struct{ 222*59599516SKenneth E. Jansen double inletVelX; 223*59599516SKenneth E. Jansen double outPres1; 224*59599516SKenneth E. Jansen double xvel_ini; 225*59599516SKenneth E. Jansen double yvel_ini; 226*59599516SKenneth E. Jansen double zvel_ini; 227*59599516SKenneth E. Jansen double temp_ini; 228*59599516SKenneth E. Jansen double pres_ini; 229*59599516SKenneth E. Jansen double evis_ini; 230*59599516SKenneth E. Jansen } ctrlvar; 231*59599516SKenneth E. Jansen ////////////////////////////////////////// 232*59599516SKenneth E. Jansen 233*59599516SKenneth E. Jansen 234*59599516SKenneth E. Jansen extern struct { 235*59599516SKenneth E. Jansen double epsilon_ls; 236*59599516SKenneth E. Jansen double epsilon_lsd; 237*59599516SKenneth E. Jansen double dtlset; 238*59599516SKenneth E. Jansen int iLSet; 239*59599516SKenneth E. Jansen int ivconstraint; 240*59599516SKenneth E. Jansen int iExpLSSclr1; 241*59599516SKenneth E. Jansen int iExpLSSclr2; 242*59599516SKenneth E. Jansen } levlset; 243*59599516SKenneth E. Jansen 244*59599516SKenneth E. Jansen extern struct { 245*59599516SKenneth E. Jansen int nshape; 246*59599516SKenneth E. Jansen int nshapeb; 247*59599516SKenneth E. Jansen int maxshb; 248*59599516SKenneth E. Jansen int nshl; 249*59599516SKenneth E. Jansen int nshlb; 250*59599516SKenneth E. Jansen int nfath; 251*59599516SKenneth E. Jansen int ntopsh; 252*59599516SKenneth E. Jansen int nsonmax; 253*59599516SKenneth E. Jansen } shpdat ; 254*59599516SKenneth E. Jansen 255*59599516SKenneth E. Jansen extern struct { 256*59599516SKenneth E. Jansen int mshp; 257*59599516SKenneth E. Jansen int mshgl; 258*59599516SKenneth E. Jansen int mwght; 259*59599516SKenneth E. Jansen int mshpb; 260*59599516SKenneth E. Jansen int mshglb; 261*59599516SKenneth E. Jansen int mwghtb; 262*59599516SKenneth E. Jansen int mmut; 263*59599516SKenneth E. Jansen int mrhot; 264*59599516SKenneth E. Jansen int mxst; 265*59599516SKenneth E. Jansen } datpnt ; 266*59599516SKenneth E. Jansen 267*59599516SKenneth E. Jansen extern struct { 268*59599516SKenneth E. Jansen int lelCat; 269*59599516SKenneth E. Jansen int lcsyst; 270*59599516SKenneth E. Jansen int iorder; 271*59599516SKenneth E. Jansen int nenb; 272*59599516SKenneth E. Jansen int nelblk; 273*59599516SKenneth E. Jansen int nelblb; 274*59599516SKenneth E. Jansen int ndofl; 275*59599516SKenneth E. Jansen int nsymdl; 276*59599516SKenneth E. Jansen int nenl; 277*59599516SKenneth E. Jansen int nfacel; 278*59599516SKenneth E. Jansen int nenbl; 279*59599516SKenneth E. Jansen int intind; 280*59599516SKenneth E. Jansen int mattyp; 281*59599516SKenneth E. Jansen } elmpar ; 282*59599516SKenneth E. Jansen 283*59599516SKenneth E. Jansen extern struct { 284*59599516SKenneth E. Jansen double E3nsd; 285*59599516SKenneth E. Jansen int I3nsd; 286*59599516SKenneth E. Jansen int nsymdf; 287*59599516SKenneth E. Jansen int ndofBC; 288*59599516SKenneth E. Jansen int ndiBCB; 289*59599516SKenneth E. Jansen int ndBCB; 290*59599516SKenneth E. Jansen int Jactyp; 291*59599516SKenneth E. Jansen int jump; 292*59599516SKenneth E. Jansen int ires; 293*59599516SKenneth E. Jansen int iprec; 294*59599516SKenneth E. Jansen int iprev; 295*59599516SKenneth E. Jansen int ibound; 296*59599516SKenneth E. Jansen int idiff; 297*59599516SKenneth E. Jansen int lhs; 298*59599516SKenneth E. Jansen int itau; 299*59599516SKenneth E. Jansen int ipord; 300*59599516SKenneth E. Jansen int ipred; 301*59599516SKenneth E. Jansen int lstres; 302*59599516SKenneth E. Jansen int iepstm; 303*59599516SKenneth E. Jansen double dtsfct; 304*59599516SKenneth E. Jansen double taucfct; 305*59599516SKenneth E. Jansen int ibksiz; 306*59599516SKenneth E. Jansen int iabc; 307*59599516SKenneth E. Jansen int isurf; 308*59599516SKenneth E. Jansen int idflx; 309*59599516SKenneth E. Jansen double Bo; 310*59599516SKenneth E. Jansen int EntropyPressure; 311*59599516SKenneth E. Jansen int irampViscOutlet; 312*59599516SKenneth E. Jansen int istretchOutlet; 313*59599516SKenneth E. Jansen int iremoveStabTimeTerm; 314*59599516SKenneth E. Jansen } genpar ; 315*59599516SKenneth E. Jansen 316*59599516SKenneth E. Jansen extern struct { 317*59599516SKenneth E. Jansen double epstol[6]; /* 1+ max number of scalars (beginning of the 318*59599516SKenneth E. Jansen end of time sequences) */ 319*59599516SKenneth E. Jansen double Delt[MAXTS]; 320*59599516SKenneth E. Jansen double CFLfl[MAXTS]; 321*59599516SKenneth E. Jansen double CFLsl[MAXTS]; 322*59599516SKenneth E. Jansen int nstep[MAXTS]; 323*59599516SKenneth E. Jansen int niter[MAXTS]; 324*59599516SKenneth E. Jansen int impl[MAXTS]; 325*59599516SKenneth E. Jansen double rhoinf[MAXTS]; 326*59599516SKenneth E. Jansen int LHSupd[6]; 327*59599516SKenneth E. Jansen int loctim[MAXTS]; 328*59599516SKenneth E. Jansen double deltol[2][MAXTS]; 329*59599516SKenneth E. Jansen } inpdat ; 330*59599516SKenneth E. Jansen 331*59599516SKenneth E. Jansen extern struct { 332*59599516SKenneth E. Jansen int iin; 333*59599516SKenneth E. Jansen int igeom; 334*59599516SKenneth E. Jansen int ipar; 335*59599516SKenneth E. Jansen int ibndc; 336*59599516SKenneth E. Jansen int imat; 337*59599516SKenneth E. Jansen int iecho; 338*59599516SKenneth E. Jansen int iout; 339*59599516SKenneth E. Jansen int ichmou; 340*59599516SKenneth E. Jansen int irstin; 341*59599516SKenneth E. Jansen int irstou; 342*59599516SKenneth E. Jansen int ihist; 343*59599516SKenneth E. Jansen int iflux; 344*59599516SKenneth E. Jansen int ierror; 345*59599516SKenneth E. Jansen int itable; 346*59599516SKenneth E. Jansen int iforce; 347*59599516SKenneth E. Jansen int igraph; 348*59599516SKenneth E. Jansen int itime; 349*59599516SKenneth E. Jansen } mio ; 350*59599516SKenneth E. Jansen 351*59599516SKenneth E. Jansen extern struct { 352*59599516SKenneth E. Jansen double fin; 353*59599516SKenneth E. Jansen double fgeom; 354*59599516SKenneth E. Jansen double fpar; 355*59599516SKenneth E. Jansen double fbndc; 356*59599516SKenneth E. Jansen double fmat; 357*59599516SKenneth E. Jansen double fecho; 358*59599516SKenneth E. Jansen double frstin; 359*59599516SKenneth E. Jansen double frstou; 360*59599516SKenneth E. Jansen double fhist; 361*59599516SKenneth E. Jansen double ferror; 362*59599516SKenneth E. Jansen double ftable; 363*59599516SKenneth E. Jansen double fforce; 364*59599516SKenneth E. Jansen double fgraph; 365*59599516SKenneth E. Jansen double ftime; 366*59599516SKenneth E. Jansen } mioname ; 367*59599516SKenneth E. Jansen 368*59599516SKenneth E. Jansen extern struct { 369*59599516SKenneth E. Jansen double eGMRES; 370*59599516SKenneth E. Jansen int lGMRES; 371*59599516SKenneth E. Jansen int iKs; 372*59599516SKenneth E. Jansen int ntotGM; 373*59599516SKenneth E. Jansen } itrpar ; 374*59599516SKenneth E. Jansen 375*59599516SKenneth E. Jansen extern struct { 376*59599516SKenneth E. Jansen int mHBrg; 377*59599516SKenneth E. Jansen int meBrg; 378*59599516SKenneth E. Jansen int myBrg; 379*59599516SKenneth E. Jansen int mRcos; 380*59599516SKenneth E. Jansen int mRsin; 381*59599516SKenneth E. Jansen } itrpnt ; 382*59599516SKenneth E. Jansen 383*59599516SKenneth E. Jansen extern struct { 384*59599516SKenneth E. Jansen double datmat[MAXTS][7][3]; 385*59599516SKenneth E. Jansen int matflg[MAXTS][6]; 386*59599516SKenneth E. Jansen int nummat; 387*59599516SKenneth E. Jansen int mexist; 388*59599516SKenneth E. Jansen } matdat ; 389*59599516SKenneth E. Jansen 390*59599516SKenneth E. Jansen extern struct { 391*59599516SKenneth E. Jansen double pr, Planck, Stephan, Nh, Rh, Rgas; 392*59599516SKenneth E. Jansen double gamma, gamma1, s0; 393*59599516SKenneth E. Jansen //, const, xN2, xO2; 394*59599516SKenneth E. Jansen //double yN2, yO2, Msh[5], cpsh[5],s0sh[5],h0sh[5]; 395*59599516SKenneth E. Jansen //double Rs[5], cps[5], cvs[5], h0s[5], Trot[5],sigs[5]; 396*59599516SKenneth E. Jansen //double Tvib[5],g0s[5], dofs[5],ithm; 397*59599516SKenneth E. Jansen } mmatpar ; 398*59599516SKenneth E. Jansen 399*59599516SKenneth E. Jansen extern struct { 400*59599516SKenneth E. Jansen double ro; 401*59599516SKenneth E. Jansen double vel; 402*59599516SKenneth E. Jansen double temper; 403*59599516SKenneth E. Jansen double press; 404*59599516SKenneth E. Jansen double entrop; 405*59599516SKenneth E. Jansen int ntout; 406*59599516SKenneth E. Jansen int ioform; 407*59599516SKenneth E. Jansen int iowflux; 408*59599516SKenneth E. Jansen int iofieldv; 409*59599516SKenneth E. Jansen char iotype[80]; 410*59599516SKenneth E. Jansen int ioybar; 411*59599516SKenneth E. Jansen int nstepsincycle; 412*59599516SKenneth E. Jansen int nphasesincycle; 413*59599516SKenneth E. Jansen int ncycles_startphaseavg; 414*59599516SKenneth E. Jansen //MR CHANGE 415*59599516SKenneth E. Jansen int nsynciofiles; 416*59599516SKenneth E. Jansen int nsynciofilesred; 417*59599516SKenneth E. Jansen // int nsynciofieldsreadgeombc; 418*59599516SKenneth E. Jansen // int nsynciofieldsreadrestart; 419*59599516SKenneth E. Jansen int nsynciofieldswriterestart; 420*59599516SKenneth E. Jansen //MR CHANGE END 421*59599516SKenneth E. Jansen /* int iostats; */ 422*59599516SKenneth E. Jansen /* int ipresref; */ 423*59599516SKenneth E. Jansen } outpar ; 424*59599516SKenneth E. Jansen 425*59599516SKenneth E. Jansen extern struct { 426*59599516SKenneth E. Jansen int mbeg; 427*59599516SKenneth E. Jansen int mend; 428*59599516SKenneth E. Jansen int mprec; 429*59599516SKenneth E. Jansen } point ; 430*59599516SKenneth E. Jansen 431*59599516SKenneth E. Jansen extern struct { 432*59599516SKenneth E. Jansen double epsM; 433*59599516SKenneth E. Jansen int iabres; 434*59599516SKenneth E. Jansen } precis ; 435*59599516SKenneth E. Jansen 436*59599516SKenneth E. Jansen extern struct { 437*59599516SKenneth E. Jansen int npro; 438*59599516SKenneth E. Jansen } propar ; 439*59599516SKenneth E. Jansen 440*59599516SKenneth E. Jansen extern struct { 441*59599516SKenneth E. Jansen double resfrt; 442*59599516SKenneth E. Jansen } resdat ; 443*59599516SKenneth E. Jansen 444*59599516SKenneth E. Jansen extern struct { 445*59599516SKenneth E. Jansen int imap; 446*59599516SKenneth E. Jansen int ivart; 447*59599516SKenneth E. Jansen int iDC; 448*59599516SKenneth E. Jansen int iPcond; 449*59599516SKenneth E. Jansen int Kspace; 450*59599516SKenneth E. Jansen int nGMRES; 451*59599516SKenneth E. Jansen int iconvflow; 452*59599516SKenneth E. Jansen int iconvsclr; 453*59599516SKenneth E. Jansen int idcsclr[2]; 454*59599516SKenneth E. Jansen } solpar ; 455*59599516SKenneth E. Jansen 456*59599516SKenneth E. Jansen extern struct { 457*59599516SKenneth E. Jansen double time; 458*59599516SKenneth E. Jansen double CFLfld; 459*59599516SKenneth E. Jansen double CFLsld; 460*59599516SKenneth E. Jansen double Dtgl; 461*59599516SKenneth E. Jansen double Dtmax; 462*59599516SKenneth E. Jansen double alpha; 463*59599516SKenneth E. Jansen double etol; 464*59599516SKenneth E. Jansen int lstep; 465*59599516SKenneth E. Jansen int ifunc; 466*59599516SKenneth E. Jansen int itseq; 467*59599516SKenneth E. Jansen int istep; 468*59599516SKenneth E. Jansen int iter; 469*59599516SKenneth E. Jansen int nitr; 470*59599516SKenneth E. Jansen double almi; 471*59599516SKenneth E. Jansen double alfi; 472*59599516SKenneth E. Jansen double gami; 473*59599516SKenneth E. Jansen double flmpl; 474*59599516SKenneth E. Jansen double flmpr; 475*59599516SKenneth E. Jansen double dtol[2]; 476*59599516SKenneth E. Jansen int iCFLworst; 477*59599516SKenneth E. Jansen int lskeep; 478*59599516SKenneth E. Jansen } timdat ; 479*59599516SKenneth E. Jansen 480*59599516SKenneth E. Jansen extern struct { 481*59599516SKenneth E. Jansen int LCtime; 482*59599516SKenneth E. Jansen int ntseq; 483*59599516SKenneth E. Jansen } timpar ; 484*59599516SKenneth E. Jansen 485*59599516SKenneth E. Jansen extern struct { 486*59599516SKenneth E. Jansen int numeqns[100]; 487*59599516SKenneth E. Jansen int minIters; 488*59599516SKenneth E. Jansen int maxIters; 489*59599516SKenneth E. Jansen int iprjFlag; 490*59599516SKenneth E. Jansen int nPrjs; 491*59599516SKenneth E. Jansen int ipresPrjFlag; 492*59599516SKenneth E. Jansen int nPresPrjs; 493*59599516SKenneth E. Jansen double prestol; 494*59599516SKenneth E. Jansen double statsflow[6]; 495*59599516SKenneth E. Jansen double statssclr[6]; 496*59599516SKenneth E. Jansen int iverbose; 497*59599516SKenneth E. Jansen } incomp ; 498*59599516SKenneth E. Jansen 499*59599516SKenneth E. Jansen extern struct { 500*59599516SKenneth E. Jansen double ccode[13]; 501*59599516SKenneth E. Jansen } mtimer1 ; 502*59599516SKenneth E. Jansen 503*59599516SKenneth E. Jansen extern struct { 504*59599516SKenneth E. Jansen double flops; 505*59599516SKenneth E. Jansen double gbytes; 506*59599516SKenneth E. Jansen double sbytes; 507*59599516SKenneth E. Jansen int iclock; 508*59599516SKenneth E. Jansen int icd; 509*59599516SKenneth E. Jansen int icode; 510*59599516SKenneth E. Jansen int icode2; 511*59599516SKenneth E. Jansen int icode3; 512*59599516SKenneth E. Jansen } mtimer2 ; 513*59599516SKenneth E. Jansen 514*59599516SKenneth E. Jansen extern struct { 515*59599516SKenneth E. Jansen double cpu[11]; 516*59599516SKenneth E. Jansen double cpu0[11]; 517*59599516SKenneth E. Jansen int nacess[11]; 518*59599516SKenneth E. Jansen } timer3 ; 519*59599516SKenneth E. Jansen 520*59599516SKenneth E. Jansen extern struct { 521*59599516SKenneth E. Jansen double title; 522*59599516SKenneth E. Jansen int ititle; 523*59599516SKenneth E. Jansen } title ; 524*59599516SKenneth E. Jansen 525*59599516SKenneth E. Jansen extern struct { 526*59599516SKenneth E. Jansen int intg[MAXTS][2]; 527*59599516SKenneth E. Jansen }intdat; 528*59599516SKenneth E. Jansen 529*59599516SKenneth E. Jansen extern struct { 530*59599516SKenneth E. Jansen double bcttimescale; 531*59599516SKenneth E. Jansen double ValueListResist[MAXSURF+1]; 532*59599516SKenneth E. Jansen double rhovw; 533*59599516SKenneth E. Jansen double thicknessvw; 534*59599516SKenneth E. Jansen double evw; 535*59599516SKenneth E. Jansen double rnuvw; 536*59599516SKenneth E. Jansen double rshearconstantvw; 537*59599516SKenneth E. Jansen double betai; 538*59599516SKenneth E. Jansen int icardio; 539*59599516SKenneth E. Jansen int itvn; 540*59599516SKenneth E. Jansen int ipvsq; 541*59599516SKenneth E. Jansen int numResistSrfs; 542*59599516SKenneth E. Jansen int nsrflistResist[MAXSURF+1]; 543*59599516SKenneth E. Jansen int numImpSrfs; 544*59599516SKenneth E. Jansen int nsrflistImp[MAXSURF+1]; 545*59599516SKenneth E. Jansen int impfile; 546*59599516SKenneth E. Jansen int numRCRSrfs; 547*59599516SKenneth E. Jansen int nsrflistRCR[MAXSURF+1]; 548*59599516SKenneth E. Jansen int ircrfile; 549*59599516SKenneth E. Jansen int ideformwall; 550*59599516SKenneth E. Jansen int iwallmassfactor; 551*59599516SKenneth E. Jansen int iwallstiffactor; 552*59599516SKenneth E. Jansen int iviscflux; 553*59599516SKenneth E. Jansen } nomodule; 554*59599516SKenneth E. Jansen 555*59599516SKenneth E. Jansen extern struct { 556*59599516SKenneth E. Jansen int seqsize; 557*59599516SKenneth E. Jansen int stepseq[100]; 558*59599516SKenneth E. Jansen } sequence; 559*59599516SKenneth E. Jansen 560*59599516SKenneth E. Jansen extern struct { 561*59599516SKenneth E. Jansen double strong_eps; /* strong criterion Stuben factor */ 562*59599516SKenneth E. Jansen double ramg_eps; /* AMG convergence eps */ 563*59599516SKenneth E. Jansen double ramg_relax; /* relaxation factor Gauss-Seidel/Jac*/ 564*59599516SKenneth E. Jansen double ramg_trunc; /* truncation select */ 565*59599516SKenneth E. Jansen double ramg_chebyratio; /* Eigen ratio for chebyshev smoothing */ 566*59599516SKenneth E. Jansen } amgvarr ; 567*59599516SKenneth E. Jansen 568*59599516SKenneth E. Jansen extern struct { 569*59599516SKenneth E. Jansen int irun_amg; /* Employ AMG feature solfar.f */ 570*59599516SKenneth E. Jansen int irun_amg_prec; /* Run AMG as preconditioner to CG */ 571*59599516SKenneth E. Jansen int iamg_verb; /* amg verbosity flag */ 572*59599516SKenneth E. Jansen int iamg_neg_sten; /* neg only stencil or neg and pos */ 573*59599516SKenneth E. Jansen int iamg_nlevel; /* number of levels 2-V etc. */ 574*59599516SKenneth E. Jansen int iamg_c_solver; /* solve fine level iter. method */ 575*59599516SKenneth E. Jansen int iamg_init; /* setup flag */ 576*59599516SKenneth E. Jansen int iamg_setup_frez; /* how many solfars to re setup amg */ 577*59599516SKenneth E. Jansen int iamg_interp; /* interpolation select */ 578*59599516SKenneth E. Jansen int maxnev; /* total eigenvectors used for ggb*/ 579*59599516SKenneth E. Jansen int maxncv; /* total iterative vectors for ggb*/ 580*59599516SKenneth E. Jansen int iamg_smoother; /* Smoother type */ 581*59599516SKenneth E. Jansen int mlsdeg; /* Polynomial Smoothing (MLS) degree */ 582*59599516SKenneth E. Jansen int iamg_reduce; /* Run a reduced case */ 583*59599516SKenneth E. Jansen } amgvari ; 584*59599516SKenneth E. Jansen 585*59599516SKenneth E. Jansen #ifdef __cplusplus 586*59599516SKenneth E. Jansen } 587*59599516SKenneth E. Jansen #endif 588