108d2ac07SCameron Smith /* Routine contains the structures for reading the user input through 208d2ac07SCameron Smith input_fform.cpp. The default values for all these variables are defined in 308d2ac07SCameron Smith input.config. 408d2ac07SCameron Smith 508d2ac07SCameron Smith Input variables that have been previously declared in common.h have to be 608d2ac07SCameron Smith re-declared here, in a consistant structure.*/ 759599516SKenneth E. Jansen 859599516SKenneth E. Jansen #include <FCMangle.h> 959599516SKenneth E. Jansen 1059599516SKenneth E. Jansen #define workfc FortranCInterface_GLOBAL_(workfc,WORKFC) 1159599516SKenneth E. Jansen #define fronts FortranCInterface_GLOBAL_(fronts,FRONTS) 1259599516SKenneth E. Jansen #define newdim FortranCInterface_GLOBAL_(newdim,NEWDIM) 1359599516SKenneth E. Jansen #define timer4 FortranCInterface_GLOBAL_(timer4,TIMER4) 1459599516SKenneth E. Jansen #define extrat FortranCInterface_GLOBAL_(extrat,EXTRAT) 1559599516SKenneth E. Jansen #define spongevar FortranCInterface_GLOBAL_(spongevar,SPONGEVAR) 1659599516SKenneth E. Jansen #define turbvar FortranCInterface_GLOBAL_(turbvar,TURBVAR) 1759599516SKenneth E. Jansen #define turbvari FortranCInterface_GLOBAL_(turbvari,TURBVARI) 1859599516SKenneth E. Jansen #define mpistats FortranCInterface_GLOBAL_(mpistats,MPISTATS) 1959599516SKenneth E. Jansen #define memstats FortranCInterface_GLOBAL_(memstats,MEMSTATS) 2059599516SKenneth E. Jansen #define spebcvr FortranCInterface_GLOBAL_(spebcvr,SPEBCVR) 2159599516SKenneth E. Jansen #define aerfrc FortranCInterface_GLOBAL_(aerfrc,AERFRC) 2259599516SKenneth E. Jansen #define astore FortranCInterface_GLOBAL_(astore,ASTORE) 2359599516SKenneth E. Jansen #define conpar FortranCInterface_GLOBAL_(conpar,CONPAR) 2459599516SKenneth E. Jansen #define ctrlvari FortranCInterface_GLOBAL_(ctrlvari,CTRLVARI) 25*513954efSKenneth E. Jansen #define ductvari FortranCInterface_GLOBAL_(ductvari,DUCTVARI) 2659599516SKenneth E. Jansen #define ctrlvar FortranCInterface_GLOBAL_(ctrlvar,CTRLVAR) 27*513954efSKenneth E. Jansen #define ductvar FortranCInterface_GLOBAL_(ductvar,DUCTVAR) 2859599516SKenneth E. Jansen #define shpdat FortranCInterface_GLOBAL_(shpdat,SHPDAT) 2959599516SKenneth E. Jansen #define datpnt FortranCInterface_GLOBAL_(datpnt,DATPNT) 3059599516SKenneth E. Jansen #define elmpar FortranCInterface_GLOBAL_(elmpar,ELMPAR) 3159599516SKenneth E. Jansen #define genpar FortranCInterface_GLOBAL_(genpar,GENPAR) 3259599516SKenneth E. Jansen #define inpdat FortranCInterface_GLOBAL_(inpdat,INPDAT) 3359599516SKenneth E. Jansen #define intdat FortranCInterface_GLOBAL_(intdat,INTDAT) 3459599516SKenneth E. Jansen #define mio FortranCInterface_GLOBAL_(mio,MIO) 3559599516SKenneth E. Jansen #define mioname FortranCInterface_GLOBAL_(mioname,MIONAME) 3659599516SKenneth E. Jansen #define itrpar FortranCInterface_GLOBAL_(itrpar,ITRPAR) 3759599516SKenneth E. Jansen #define itrpnt FortranCInterface_GLOBAL_(itrpnt,ITRPNT) 3859599516SKenneth E. Jansen #define matdat FortranCInterface_GLOBAL_(matdat,MATDAT) 3959599516SKenneth E. Jansen #define mmatpar FortranCInterface_GLOBAL_(mmatpar,MMATPAR) 4059599516SKenneth E. Jansen #define outpar FortranCInterface_GLOBAL_(outpar,OUTPAR) 4159599516SKenneth E. Jansen #define point FortranCInterface_GLOBAL_(point,POINT) 4259599516SKenneth E. Jansen #define precis FortranCInterface_GLOBAL_(precis,PRECIS) 4359599516SKenneth E. Jansen #define propar FortranCInterface_GLOBAL_(propar,PROPAR) 4459599516SKenneth E. Jansen #define resdat FortranCInterface_GLOBAL_(resdat,RESDAT) 4559599516SKenneth E. Jansen #define solpar FortranCInterface_GLOBAL_(solpar,SOLPAR) 4659599516SKenneth E. Jansen #define timdat FortranCInterface_GLOBAL_(timdat,TIMDAT) 4759599516SKenneth E. Jansen #define timpar FortranCInterface_GLOBAL_(timpar,TIMPAR) 4859599516SKenneth E. Jansen #define incomp FortranCInterface_GLOBAL_(incomp,INCOMP) 4959599516SKenneth E. Jansen #define mtimer1 FortranCInterface_GLOBAL_(mtimer1,MTIMER1) 5059599516SKenneth E. Jansen #define mtimer2 FortranCInterface_GLOBAL_(mtimer2,MTIMER2) 5159599516SKenneth E. Jansen #define timer3 FortranCInterface_GLOBAL_(timer3,TIMER3) 5259599516SKenneth E. Jansen #define title FortranCInterface_GLOBAL_(title,TITLE) 5359599516SKenneth E. Jansen #define sclrs FortranCInterface_GLOBAL_(sclrs,SCLRS) 5459599516SKenneth E. Jansen #define levlset FortranCInterface_GLOBAL_(levlset,LEVLSET) 5559599516SKenneth E. Jansen #define nomodule FortranCInterface_GLOBAL_(nomodule,NOMODULE) 5659599516SKenneth E. Jansen #define sequence FortranCInterface_GLOBAL_(sequence,SEQUENCE) 5759599516SKenneth E. Jansen #define amgvarr FortranCInterface_GLOBAL_(amgvarr,AMGVARR) 5859599516SKenneth E. Jansen #define amgvari FortranCInterface_GLOBAL_(amgvari,AMGVARI) 5959599516SKenneth E. Jansen 6059599516SKenneth E. Jansen #define MAXBLK 50000 61*513954efSKenneth E. Jansen #define MAXSURF 1000 6259599516SKenneth E. Jansen #define MAXTS 100 6359599516SKenneth E. Jansen #define MAXTOP 6 6459599516SKenneth E. Jansen #define MAXQPT 125 6559599516SKenneth E. Jansen #define MAXSH 32 6659599516SKenneth E. Jansen #define NSD 3 6759599516SKenneth E. Jansen #define NSDSQ 9 6859599516SKenneth E. Jansen #define machin 'RS/6000' 6959599516SKenneth E. Jansen #define machfl 4 7059599516SKenneth E. Jansen #define zero 0.0000000000000000000000000000000d0 7159599516SKenneth E. Jansen #define pt125 0.1250000000000000000000000000000d0 7259599516SKenneth E. Jansen #define pt25 0.2500000000000000000000000000000d0 7359599516SKenneth E. Jansen #define pt33 0.3333333333333333333333333333333d0 7459599516SKenneth E. Jansen #define pt39 0.3968502629920498686879264098181d0 7559599516SKenneth E. Jansen #define pt5 0.5000000000000000000000000000000d0 7659599516SKenneth E. Jansen #define pt57 0.5773502691896257645091487805020d0 7759599516SKenneth E. Jansen #define pt66 0.6666666666666666666666666666667d0 7859599516SKenneth E. Jansen #define pt75 0.7500000000000000000000000000000d0 7959599516SKenneth E. Jansen #define one 1.0000000000000000000000000000000d0 8059599516SKenneth E. Jansen #define sqt2 1.4142135623730950488016887242097d0 8159599516SKenneth E. Jansen #define onept5 1.5000000000000000000000000000000d0 8259599516SKenneth E. Jansen #define two 2.0000000000000000000000000000000d0 8359599516SKenneth E. Jansen #define three 3.0000000000000000000000000000000d0 8459599516SKenneth E. Jansen #define four 4.0000000000000000000000000000000d0 8559599516SKenneth E. Jansen #define five 5.0000000000000000000000000000000d0 8659599516SKenneth E. Jansen #define pi 3.1415926535897932384626433832795d0 8759599516SKenneth E. Jansen #define inv1024sq 9.5367431640625e-7 8859599516SKenneth E. Jansen 8959599516SKenneth E. Jansen #ifdef __cplusplus 9059599516SKenneth E. Jansen extern "C" { 9159599516SKenneth E. Jansen #endif 9259599516SKenneth E. Jansen extern struct { 9359599516SKenneth E. Jansen int master; 9459599516SKenneth E. Jansen int numpe; 9559599516SKenneth E. Jansen int myrank; 9659599516SKenneth E. Jansen } workfc ; 9759599516SKenneth E. Jansen 9859599516SKenneth E. Jansen extern struct { 9959599516SKenneth E. Jansen int maxfront; 10059599516SKenneth E. Jansen int nlwork; 10159599516SKenneth E. Jansen } fronts ; 10259599516SKenneth E. Jansen 10359599516SKenneth E. Jansen extern struct { 104*513954efSKenneth E. Jansen long long int nshgt; 105*513954efSKenneth E. Jansen long long int minowned; 106*513954efSKenneth E. Jansen long long int maxowned; 10759599516SKenneth E. Jansen int numper; 108*513954efSKenneth E. Jansen //int nshgt; 10959599516SKenneth E. Jansen int nshg0; 11059599516SKenneth E. Jansen } newdim ; 11159599516SKenneth E. Jansen 11259599516SKenneth E. Jansen extern struct { 11359599516SKenneth E. Jansen double birth; 11459599516SKenneth E. Jansen double death; 11559599516SKenneth E. Jansen double comtim; 11659599516SKenneth E. Jansen } timer4 ; 11759599516SKenneth E. Jansen 11859599516SKenneth E. Jansen extern struct { 11959599516SKenneth E. Jansen double ttim[100]; 12059599516SKenneth E. Jansen } extrat ; 12159599516SKenneth E. Jansen 12259599516SKenneth E. Jansen extern struct { 12359599516SKenneth E. Jansen double zoutsponge, radsponge, zinsponge, grthosponge, grthisponge; 12459599516SKenneth E. Jansen double betamax; 12559599516SKenneth E. Jansen int spongecontinuity, spongemomentum1, spongemomentum2; 12659599516SKenneth E. Jansen int spongeenergy, spongemomentum3; 12759599516SKenneth E. Jansen } spongevar ; 12859599516SKenneth E. Jansen 12959599516SKenneth E. Jansen extern struct { 13059599516SKenneth E. Jansen double eles; 13159599516SKenneth E. Jansen double ylimit[9][3]; /* 9 = 5 + 4 = puvwT + 4Scalars */ 13259599516SKenneth E. Jansen double rampmdot[3][2]; 13359599516SKenneth E. Jansen double rmutarget; 13459599516SKenneth E. Jansen double pzero; 13559599516SKenneth E. Jansen double wtavei; 13659599516SKenneth E. Jansen double dtavei; 13759599516SKenneth E. Jansen double dke; 13859599516SKenneth E. Jansen double fwr1; 13959599516SKenneth E. Jansen double flump; 14059599516SKenneth E. Jansen double DES_SA_hmin; 14159599516SKenneth E. Jansen int ierrcalc; 14259599516SKenneth E. Jansen int ihessian; 14359599516SKenneth E. Jansen int itwmod; 14459599516SKenneth E. Jansen int ngaussf; 14559599516SKenneth E. Jansen int idim; 14659599516SKenneth E. Jansen int nlist; 14759599516SKenneth E. Jansen int nintf[MAXTOP]; 14859599516SKenneth E. Jansen } turbvar ; 14959599516SKenneth E. Jansen 15059599516SKenneth E. Jansen extern struct { 15159599516SKenneth E. Jansen int irans, iles, idistcalc, isubmod; 15259599516SKenneth E. Jansen int ifproj; 15359599516SKenneth E. Jansen int i2filt; 15459599516SKenneth E. Jansen int modlstats; 15559599516SKenneth E. Jansen int idis; 15659599516SKenneth E. Jansen int nohomog; 15759599516SKenneth E. Jansen int ierrsmooth; 15859599516SKenneth E. Jansen int iramp; 15959599516SKenneth E. Jansen 16059599516SKenneth E. Jansen /* int itwmod; */ 16159599516SKenneth E. Jansen /* double rtavei; */ 16259599516SKenneth E. Jansen /* int ierrcalc; */ 16359599516SKenneth E. Jansen } turbvari ; 16459599516SKenneth E. Jansen 16559599516SKenneth E. Jansen extern struct { 16659599516SKenneth E. Jansen int iISend; 16759599516SKenneth E. Jansen int iISendScal; 16859599516SKenneth E. Jansen int iIRecv; 16959599516SKenneth E. Jansen int iIRecvScal; 17059599516SKenneth E. Jansen int iWaitAll; 17159599516SKenneth E. Jansen int iWaitAllScal; 17259599516SKenneth E. Jansen int iAllR; 17359599516SKenneth E. Jansen int iAllRScal; 17459599516SKenneth E. Jansen int impistat; 17559599516SKenneth E. Jansen int impistat2; 17659599516SKenneth E. Jansen double rmpitmr; 17759599516SKenneth E. Jansen double rISend; 17859599516SKenneth E. Jansen double rISendScal; 17959599516SKenneth E. Jansen double rIRecv; 18059599516SKenneth E. Jansen double rIRecvScal; 18159599516SKenneth E. Jansen double rWaitAll; 18259599516SKenneth E. Jansen double rWaitAllScal; 18359599516SKenneth E. Jansen double rAllR; 18459599516SKenneth E. Jansen double rAllRScal; 18559599516SKenneth E. Jansen double rCommu; 18659599516SKenneth E. Jansen double rCommuScal; 18759599516SKenneth E. Jansen } mpistats ; 18859599516SKenneth E. Jansen 18959599516SKenneth E. Jansen extern struct { 19059599516SKenneth E. Jansen double rheap; 19159599516SKenneth E. Jansen double rheapavail; 19259599516SKenneth E. Jansen double rstack; 19359599516SKenneth E. Jansen double rstackavail; 19459599516SKenneth E. Jansen double rshared; 19559599516SKenneth E. Jansen double rpersist; 19659599516SKenneth E. Jansen double rguard; 19759599516SKenneth E. Jansen double rmmap; 19859599516SKenneth E. Jansen } memstats ; 19959599516SKenneth E. Jansen 20059599516SKenneth E. Jansen 20159599516SKenneth E. Jansen extern struct { 20259599516SKenneth E. Jansen int irscale; 20359599516SKenneth E. Jansen int intpres; 20459599516SKenneth E. Jansen double plandist; 20559599516SKenneth E. Jansen double thetag; 20659599516SKenneth E. Jansen double ds; 20759599516SKenneth E. Jansen double tolerence; 20859599516SKenneth E. Jansen double radcyl; 20959599516SKenneth E. Jansen double rbltin; 21059599516SKenneth E. Jansen double rvscal; 21159599516SKenneth E. Jansen } spebcvr ; 21259599516SKenneth E. Jansen 21359599516SKenneth E. Jansen extern struct { 21459599516SKenneth E. Jansen double scdiff[5]; 21559599516SKenneth E. Jansen double tdecay; 21659599516SKenneth E. Jansen int nsclr, isclr,nsolt, nosource; 21759599516SKenneth E. Jansen int consrv_sclr_conv_vel; 21859599516SKenneth E. Jansen } sclrs; 21959599516SKenneth E. Jansen 22059599516SKenneth E. Jansen extern struct { 22159599516SKenneth E. Jansen double flxID[MAXSURF+1][10] ; 22259599516SKenneth E. Jansen double Force[3]; 22359599516SKenneth E. Jansen double HFlux; 22459599516SKenneth E. Jansen int nsrflist[MAXSURF+1]; 22559599516SKenneth E. Jansen int isrfIM; 22659599516SKenneth E. Jansen double flxIDsclr[MAXSURF][4]; 22759599516SKenneth E. Jansen int irankfilesforce[MAXSURF+1]; 22859599516SKenneth E. Jansen } aerfrc ; 22959599516SKenneth E. Jansen 23059599516SKenneth E. Jansen extern struct { 23159599516SKenneth E. Jansen double a[100000]; 23259599516SKenneth E. Jansen } astore ; 23359599516SKenneth E. Jansen 23459599516SKenneth E. Jansen extern struct { 23559599516SKenneth E. Jansen int numnp; 23659599516SKenneth E. Jansen int numel; 23759599516SKenneth E. Jansen int numelb; 23859599516SKenneth E. Jansen int numpbc; 23959599516SKenneth E. Jansen int nen; 24059599516SKenneth E. Jansen int nfaces; 24159599516SKenneth E. Jansen int numflx; 24259599516SKenneth E. Jansen int ndof; 24359599516SKenneth E. Jansen int iALE; 24459599516SKenneth E. Jansen int icoord; 24559599516SKenneth E. Jansen int navier; 24659599516SKenneth E. Jansen int irs; 24759599516SKenneth E. Jansen int iexec; 24859599516SKenneth E. Jansen int necho; 24959599516SKenneth E. Jansen int ichem; 25059599516SKenneth E. Jansen int iRK; 25159599516SKenneth E. Jansen int nedof; 25259599516SKenneth E. Jansen int nshg; 25359599516SKenneth E. Jansen int nnz; 25459599516SKenneth E. Jansen int istop; 25559599516SKenneth E. Jansen int nflow; 25659599516SKenneth E. Jansen int nnz_tot; 25759599516SKenneth E. Jansen int idtn; 258*513954efSKenneth E. Jansen int ncorpsize; 259*513954efSKenneth E. Jansen int iownnodes; 260*513954efSKenneth E. Jansen int usingpetsc; 26159599516SKenneth E. Jansen } conpar ; 26259599516SKenneth E. Jansen 26359599516SKenneth E. Jansen /*chen Sep 25 2009 Flow Control Parameters*/ 26459599516SKenneth E. Jansen extern struct{ 26559599516SKenneth E. Jansen int iI2Binlet; 26659599516SKenneth E. Jansen int isetOutPres; 26759599516SKenneth E. Jansen int isetInitial; 26859599516SKenneth E. Jansen } ctrlvari; 26959599516SKenneth E. Jansen 27059599516SKenneth E. Jansen extern struct{ 271*513954efSKenneth E. Jansen double BlowingVelDuct; 272*513954efSKenneth E. Jansen double BlowingIniMdotDuct; 273*513954efSKenneth E. Jansen double BlowingFnlMdotDuct; 274*513954efSKenneth E. Jansen double suctionVbottom; 275*513954efSKenneth E. Jansen double suctionVside_lower; 276*513954efSKenneth E. Jansen double suctionVside_upper; 277*513954efSKenneth E. Jansen double suctionVtop; 278*513954efSKenneth E. Jansen double blowerVelocity; 279*513954efSKenneth E. Jansen double blowerTemperature; 280*513954efSKenneth E. Jansen double blowerEV; 281*513954efSKenneth E. Jansen int isetOutletID; 282*513954efSKenneth E. Jansen int isetInitial_Duct; 283*513954efSKenneth E. Jansen int isetInlet_Duct; 284*513954efSKenneth E. Jansen int isetSuctionID_Duct; 285*513954efSKenneth E. Jansen int isetBlowerID_Duct; 286*513954efSKenneth E. Jansen int iDuctgeometryType; 287*513954efSKenneth E. Jansen int iStraigtPrint; 288*513954efSKenneth E. Jansen int isetEV_IC_BC; 289*513954efSKenneth E. Jansen int isetEVramp; 290*513954efSKenneth E. Jansen int isetBlowing_Duct; 291*513954efSKenneth E. Jansen int ifixBlowingVel_Duct; 292*513954efSKenneth E. Jansen int nBlowingStepsDuct; 293*513954efSKenneth E. Jansen }ductvari; 294*513954efSKenneth E. Jansen 295*513954efSKenneth E. Jansen extern struct{ 29659599516SKenneth E. Jansen double inletVelX; 29759599516SKenneth E. Jansen double outPres1; 29859599516SKenneth E. Jansen double xvel_ini; 29959599516SKenneth E. Jansen double yvel_ini; 30059599516SKenneth E. Jansen double zvel_ini; 30159599516SKenneth E. Jansen double temp_ini; 30259599516SKenneth E. Jansen double pres_ini; 30359599516SKenneth E. Jansen double evis_ini; 30459599516SKenneth E. Jansen } ctrlvar; 30559599516SKenneth E. Jansen 30659599516SKenneth E. Jansen extern struct{ 307*513954efSKenneth E. Jansen double evis_IC_BC; 308*513954efSKenneth E. Jansen double EVrampXmin; 309*513954efSKenneth E. Jansen double EVrampXmax; 310*513954efSKenneth E. Jansen double EVrampMin; 311*513954efSKenneth E. Jansen double EVrampMax; 312*513954efSKenneth E. Jansen } ductvar; 313*513954efSKenneth E. Jansen ////////////////////////////////////////// 314*513954efSKenneth E. Jansen 315*513954efSKenneth E. Jansen 316*513954efSKenneth E. Jansen extern struct { 31759599516SKenneth E. Jansen double epsilon_ls; 31859599516SKenneth E. Jansen double epsilon_lsd; 31959599516SKenneth E. Jansen double dtlset; 32059599516SKenneth E. Jansen int iLSet; 32159599516SKenneth E. Jansen int ivconstraint; 32259599516SKenneth E. Jansen int iExpLSSclr1; 32359599516SKenneth E. Jansen int iExpLSSclr2; 32459599516SKenneth E. Jansen } levlset; 32559599516SKenneth E. Jansen 32659599516SKenneth E. Jansen extern struct { 32759599516SKenneth E. Jansen int nshape; 32859599516SKenneth E. Jansen int nshapeb; 32959599516SKenneth E. Jansen int maxshb; 33059599516SKenneth E. Jansen int nshl; 33159599516SKenneth E. Jansen int nshlb; 33259599516SKenneth E. Jansen int nfath; 33359599516SKenneth E. Jansen int ntopsh; 33459599516SKenneth E. Jansen int nsonmax; 33559599516SKenneth E. Jansen } shpdat ; 33659599516SKenneth E. Jansen 33759599516SKenneth E. Jansen extern struct { 33859599516SKenneth E. Jansen int mshp; 33959599516SKenneth E. Jansen int mshgl; 34059599516SKenneth E. Jansen int mwght; 34159599516SKenneth E. Jansen int mshpb; 34259599516SKenneth E. Jansen int mshglb; 34359599516SKenneth E. Jansen int mwghtb; 34459599516SKenneth E. Jansen int mmut; 34559599516SKenneth E. Jansen int mrhot; 34659599516SKenneth E. Jansen int mxst; 34759599516SKenneth E. Jansen } datpnt ; 34859599516SKenneth E. Jansen 34959599516SKenneth E. Jansen extern struct { 35059599516SKenneth E. Jansen int lelCat; 35159599516SKenneth E. Jansen int lcsyst; 35259599516SKenneth E. Jansen int iorder; 35359599516SKenneth E. Jansen int nenb; 35459599516SKenneth E. Jansen int nelblk; 35559599516SKenneth E. Jansen int nelblb; 35659599516SKenneth E. Jansen int ndofl; 35759599516SKenneth E. Jansen int nsymdl; 35859599516SKenneth E. Jansen int nenl; 35959599516SKenneth E. Jansen int nfacel; 36059599516SKenneth E. Jansen int nenbl; 36159599516SKenneth E. Jansen int intind; 36259599516SKenneth E. Jansen int mattyp; 36359599516SKenneth E. Jansen } elmpar ; 36459599516SKenneth E. Jansen 36559599516SKenneth E. Jansen extern struct { 36659599516SKenneth E. Jansen double E3nsd; 36759599516SKenneth E. Jansen int I3nsd; 36859599516SKenneth E. Jansen int nsymdf; 36959599516SKenneth E. Jansen int ndofBC; 37059599516SKenneth E. Jansen int ndiBCB; 37159599516SKenneth E. Jansen int ndBCB; 37259599516SKenneth E. Jansen int Jactyp; 37359599516SKenneth E. Jansen int jump; 37459599516SKenneth E. Jansen int ires; 37559599516SKenneth E. Jansen int iprec; 37659599516SKenneth E. Jansen int iprev; 37759599516SKenneth E. Jansen int ibound; 37859599516SKenneth E. Jansen int idiff; 37959599516SKenneth E. Jansen int lhs; 38059599516SKenneth E. Jansen int itau; 38159599516SKenneth E. Jansen int ipord; 38259599516SKenneth E. Jansen int ipred; 38359599516SKenneth E. Jansen int lstres; 38459599516SKenneth E. Jansen int iepstm; 38559599516SKenneth E. Jansen double dtsfct; 38659599516SKenneth E. Jansen double taucfct; 38759599516SKenneth E. Jansen int ibksiz; 38859599516SKenneth E. Jansen int iabc; 38959599516SKenneth E. Jansen int isurf; 39059599516SKenneth E. Jansen int idflx; 39159599516SKenneth E. Jansen double Bo; 39259599516SKenneth E. Jansen int EntropyPressure; 39359599516SKenneth E. Jansen int irampViscOutlet; 39459599516SKenneth E. Jansen int istretchOutlet; 39559599516SKenneth E. Jansen int iremoveStabTimeTerm; 396*513954efSKenneth E. Jansen int iLHScond; 39759599516SKenneth E. Jansen } genpar ; 39859599516SKenneth E. Jansen 39959599516SKenneth E. Jansen extern struct { 40059599516SKenneth E. Jansen double epstol[6]; /* 1+ max number of scalars (beginning of the 40159599516SKenneth E. Jansen end of time sequences) */ 40259599516SKenneth E. Jansen double Delt[MAXTS]; 40359599516SKenneth E. Jansen double CFLfl[MAXTS]; 40459599516SKenneth E. Jansen double CFLsl[MAXTS]; 40559599516SKenneth E. Jansen int nstep[MAXTS]; 40659599516SKenneth E. Jansen int niter[MAXTS]; 40759599516SKenneth E. Jansen int impl[MAXTS]; 40859599516SKenneth E. Jansen double rhoinf[MAXTS]; 40959599516SKenneth E. Jansen int LHSupd[6]; 41059599516SKenneth E. Jansen int loctim[MAXTS]; 41159599516SKenneth E. Jansen double deltol[2][MAXTS]; 412f4e2c78fSKenneth E. Jansen int svLSFlag; 413f4e2c78fSKenneth E. Jansen int svLSType; 41459599516SKenneth E. Jansen } inpdat ; 41559599516SKenneth E. Jansen 41659599516SKenneth E. Jansen extern struct { 41759599516SKenneth E. Jansen int iin; 41859599516SKenneth E. Jansen int igeom; 41959599516SKenneth E. Jansen int ipar; 42059599516SKenneth E. Jansen int ibndc; 42159599516SKenneth E. Jansen int imat; 42259599516SKenneth E. Jansen int iecho; 42359599516SKenneth E. Jansen int iout; 42459599516SKenneth E. Jansen int ichmou; 42559599516SKenneth E. Jansen int irstin; 42659599516SKenneth E. Jansen int irstou; 42759599516SKenneth E. Jansen int ihist; 42859599516SKenneth E. Jansen int iflux; 42959599516SKenneth E. Jansen int ierror; 43059599516SKenneth E. Jansen int itable; 43159599516SKenneth E. Jansen int iforce; 43259599516SKenneth E. Jansen int igraph; 43359599516SKenneth E. Jansen int itime; 43459599516SKenneth E. Jansen } mio ; 43559599516SKenneth E. Jansen 43659599516SKenneth E. Jansen extern struct { 43759599516SKenneth E. Jansen double fin; 43859599516SKenneth E. Jansen double fgeom; 43959599516SKenneth E. Jansen double fpar; 44059599516SKenneth E. Jansen double fbndc; 44159599516SKenneth E. Jansen double fmat; 44259599516SKenneth E. Jansen double fecho; 44359599516SKenneth E. Jansen double frstin; 44459599516SKenneth E. Jansen double frstou; 44559599516SKenneth E. Jansen double fhist; 44659599516SKenneth E. Jansen double ferror; 44759599516SKenneth E. Jansen double ftable; 44859599516SKenneth E. Jansen double fforce; 44959599516SKenneth E. Jansen double fgraph; 45059599516SKenneth E. Jansen double ftime; 45159599516SKenneth E. Jansen } mioname ; 45259599516SKenneth E. Jansen 45359599516SKenneth E. Jansen extern struct { 45459599516SKenneth E. Jansen double eGMRES; 45559599516SKenneth E. Jansen int lGMRES; 456*513954efSKenneth E. Jansen int lGMRESs; 45759599516SKenneth E. Jansen int iKs; 458*513954efSKenneth E. Jansen int iKss; 45959599516SKenneth E. Jansen int ntotGM; 460*513954efSKenneth E. Jansen int ntotGMs; 46159599516SKenneth E. Jansen } itrpar ; 46259599516SKenneth E. Jansen 46359599516SKenneth E. Jansen extern struct { 46459599516SKenneth E. Jansen int mHBrg; 46559599516SKenneth E. Jansen int meBrg; 46659599516SKenneth E. Jansen int myBrg; 46759599516SKenneth E. Jansen int mRcos; 46859599516SKenneth E. Jansen int mRsin; 46959599516SKenneth E. Jansen } itrpnt ; 47059599516SKenneth E. Jansen 47159599516SKenneth E. Jansen extern struct { 47259599516SKenneth E. Jansen double datmat[MAXTS][7][3]; 47359599516SKenneth E. Jansen int matflg[MAXTS][6]; 47459599516SKenneth E. Jansen int nummat; 47559599516SKenneth E. Jansen int mexist; 47659599516SKenneth E. Jansen } matdat ; 47759599516SKenneth E. Jansen 47859599516SKenneth E. Jansen extern struct { 47959599516SKenneth E. Jansen double pr, Planck, Stephan, Nh, Rh, Rgas; 48059599516SKenneth E. Jansen double gamma, gamma1, s0; 48108d2ac07SCameron Smith /*, const, xN2, xO2;*/ 48208d2ac07SCameron Smith /*double yN2, yO2, Msh[5], cpsh[5],s0sh[5],h0sh[5];*/ 48308d2ac07SCameron Smith /*double Rs[5], cps[5], cvs[5], h0s[5], Trot[5],sigs[5];*/ 48408d2ac07SCameron Smith /*double Tvib[5],g0s[5], dofs[5],ithm;*/ 48559599516SKenneth E. Jansen } mmatpar ; 48659599516SKenneth E. Jansen 48759599516SKenneth E. Jansen extern struct { 48859599516SKenneth E. Jansen double ro; 48959599516SKenneth E. Jansen double vel; 49059599516SKenneth E. Jansen double temper; 49159599516SKenneth E. Jansen double press; 49259599516SKenneth E. Jansen double entrop; 49359599516SKenneth E. Jansen int ntout; 49459599516SKenneth E. Jansen int ioform; 49559599516SKenneth E. Jansen int iowflux; 49659599516SKenneth E. Jansen int iofieldv; 49759599516SKenneth E. Jansen char iotype[80]; 49859599516SKenneth E. Jansen int ioybar; 49959599516SKenneth E. Jansen int nstepsincycle; 50059599516SKenneth E. Jansen int nphasesincycle; 50159599516SKenneth E. Jansen int ncycles_startphaseavg; 50259599516SKenneth E. Jansen int ivort; 50359599516SKenneth E. Jansen int icomputevort; 50459599516SKenneth E. Jansen int nsynciofiles; 50559599516SKenneth E. Jansen int nsynciofieldswriterestart; 50659599516SKenneth E. Jansen int iv_rankpercore; 50759599516SKenneth E. Jansen int iv_corepernode; 508d022ba44SCameron Smith int input_mode; //FIXME -1:streams, 0:posix, >0:syncio 509d022ba44SCameron Smith int output_mode; //FIXME -1:streams, 0:posix, >0:syncio 51059599516SKenneth E. Jansen /* int iostats; */ 51159599516SKenneth E. Jansen /* int ipresref; */ 51259599516SKenneth E. Jansen } outpar ; 51359599516SKenneth E. Jansen 51459599516SKenneth E. Jansen extern struct { 51559599516SKenneth E. Jansen int mbeg; 51659599516SKenneth E. Jansen int mend; 51759599516SKenneth E. Jansen int mprec; 51859599516SKenneth E. Jansen } point ; 51959599516SKenneth E. Jansen 52059599516SKenneth E. Jansen extern struct { 52159599516SKenneth E. Jansen double epsM; 52259599516SKenneth E. Jansen int iabres; 52359599516SKenneth E. Jansen } precis ; 52459599516SKenneth E. Jansen 52559599516SKenneth E. Jansen extern struct { 52659599516SKenneth E. Jansen int npro; 52759599516SKenneth E. Jansen } propar ; 52859599516SKenneth E. Jansen 52959599516SKenneth E. Jansen extern struct { 53059599516SKenneth E. Jansen double resfrt; 531*513954efSKenneth E. Jansen double resfrts; 53259599516SKenneth E. Jansen } resdat ; 53359599516SKenneth E. Jansen 53459599516SKenneth E. Jansen extern struct { 53559599516SKenneth E. Jansen int imap; 53659599516SKenneth E. Jansen int ivart; 53759599516SKenneth E. Jansen int iDC; 53859599516SKenneth E. Jansen int iPcond; 53959599516SKenneth E. Jansen int Kspace; 54059599516SKenneth E. Jansen int nGMRES; 54159599516SKenneth E. Jansen int iconvflow; 54259599516SKenneth E. Jansen int iconvsclr; 54359599516SKenneth E. Jansen int idcsclr[2]; 54459599516SKenneth E. Jansen } solpar ; 54559599516SKenneth E. Jansen 54659599516SKenneth E. Jansen extern struct { 54759599516SKenneth E. Jansen double time; 54859599516SKenneth E. Jansen double CFLfld; 54959599516SKenneth E. Jansen double CFLsld; 55059599516SKenneth E. Jansen double Dtgl; 55159599516SKenneth E. Jansen double Dtmax; 55259599516SKenneth E. Jansen double alpha; 55359599516SKenneth E. Jansen double etol; 554*513954efSKenneth E. Jansen int lstep; // read from numstart.dat and incremented every time step 55559599516SKenneth E. Jansen int ifunc; 55659599516SKenneth E. Jansen int itseq; 557*513954efSKenneth E. Jansen int istep; // how many steps (starting from 0 each run) 55859599516SKenneth E. Jansen int iter; 55959599516SKenneth E. Jansen int nitr; 56059599516SKenneth E. Jansen double almi; 56159599516SKenneth E. Jansen double alfi; 56259599516SKenneth E. Jansen double gami; 56359599516SKenneth E. Jansen double flmpl; 56459599516SKenneth E. Jansen double flmpr; 56559599516SKenneth E. Jansen double dtol[2]; 56659599516SKenneth E. Jansen int iCFLworst; 56759599516SKenneth E. Jansen int lskeep; 56859599516SKenneth E. Jansen } timdat ; 56959599516SKenneth E. Jansen 57059599516SKenneth E. Jansen extern struct { 57159599516SKenneth E. Jansen int LCtime; 57259599516SKenneth E. Jansen int ntseq; 57359599516SKenneth E. Jansen } timpar ; 57459599516SKenneth E. Jansen 57559599516SKenneth E. Jansen extern struct { 57659599516SKenneth E. Jansen int numeqns[100]; 57759599516SKenneth E. Jansen int minIters; 57859599516SKenneth E. Jansen int maxIters; 57959599516SKenneth E. Jansen int iprjFlag; 58059599516SKenneth E. Jansen int nPrjs; 58159599516SKenneth E. Jansen int ipresPrjFlag; 58259599516SKenneth E. Jansen int nPresPrjs; 58359599516SKenneth E. Jansen double prestol; 58459599516SKenneth E. Jansen double statsflow[6]; 58559599516SKenneth E. Jansen double statssclr[6]; 58659599516SKenneth E. Jansen int iverbose; 58759599516SKenneth E. Jansen } incomp ; 58859599516SKenneth E. Jansen 58959599516SKenneth E. Jansen extern struct { 59059599516SKenneth E. Jansen double ccode[13]; 59159599516SKenneth E. Jansen } mtimer1 ; 59259599516SKenneth E. Jansen 59359599516SKenneth E. Jansen extern struct { 59459599516SKenneth E. Jansen double flops; 59559599516SKenneth E. Jansen double gbytes; 59659599516SKenneth E. Jansen double sbytes; 59759599516SKenneth E. Jansen int iclock; 59859599516SKenneth E. Jansen int icd; 59959599516SKenneth E. Jansen int icode; 60059599516SKenneth E. Jansen int icode2; 60159599516SKenneth E. Jansen int icode3; 60259599516SKenneth E. Jansen } mtimer2 ; 60359599516SKenneth E. Jansen 60459599516SKenneth E. Jansen extern struct { 60559599516SKenneth E. Jansen double cpu[11]; 60659599516SKenneth E. Jansen double cpu0[11]; 60759599516SKenneth E. Jansen int nacess[11]; 60859599516SKenneth E. Jansen } timer3 ; 60959599516SKenneth E. Jansen 61059599516SKenneth E. Jansen extern struct { 61159599516SKenneth E. Jansen double title; 61259599516SKenneth E. Jansen int ititle; 61359599516SKenneth E. Jansen } title ; 61459599516SKenneth E. Jansen 61559599516SKenneth E. Jansen extern struct { 61659599516SKenneth E. Jansen int intg[MAXTS][2]; 61759599516SKenneth E. Jansen }intdat; 61859599516SKenneth E. Jansen 61959599516SKenneth E. Jansen extern struct { 62059599516SKenneth E. Jansen double bcttimescale; 62159599516SKenneth E. Jansen double ValueListResist[MAXSURF+1]; 62259599516SKenneth E. Jansen double rhovw; 62359599516SKenneth E. Jansen double thicknessvw; 62459599516SKenneth E. Jansen double evw; 62559599516SKenneth E. Jansen double rnuvw; 62659599516SKenneth E. Jansen double rshearconstantvw; 62759599516SKenneth E. Jansen double betai; 62859599516SKenneth E. Jansen int icardio; 62959599516SKenneth E. Jansen int itvn; 63059599516SKenneth E. Jansen int ipvsq; 63159599516SKenneth E. Jansen int numResistSrfs; 63259599516SKenneth E. Jansen int nsrflistResist[MAXSURF+1]; 63359599516SKenneth E. Jansen int numImpSrfs; 63459599516SKenneth E. Jansen int nsrflistImp[MAXSURF+1]; 63559599516SKenneth E. Jansen int impfile; 63659599516SKenneth E. Jansen int numRCRSrfs; 63759599516SKenneth E. Jansen int nsrflistRCR[MAXSURF+1]; 63859599516SKenneth E. Jansen int ircrfile; 63959599516SKenneth E. Jansen int ideformwall; 64059599516SKenneth E. Jansen int iwallmassfactor; 64159599516SKenneth E. Jansen int iwallstiffactor; 64259599516SKenneth E. Jansen int iviscflux; 64359599516SKenneth E. Jansen } nomodule; 64459599516SKenneth E. Jansen 64559599516SKenneth E. Jansen extern struct { 64659599516SKenneth E. Jansen int seqsize; 64759599516SKenneth E. Jansen int stepseq[100]; 64859599516SKenneth E. Jansen } sequence; 64959599516SKenneth E. Jansen 65059599516SKenneth E. Jansen extern struct { 65159599516SKenneth E. Jansen double strong_eps; /* strong criterion Stuben factor */ 65259599516SKenneth E. Jansen double ramg_eps; /* AMG convergence eps */ 65359599516SKenneth E. Jansen double ramg_relax; /* relaxation factor Gauss-Seidel/Jac*/ 65459599516SKenneth E. Jansen double ramg_trunc; /* truncation select */ 65559599516SKenneth E. Jansen double ramg_chebyratio; /* Eigen ratio for chebyshev smoothing */ 65659599516SKenneth E. Jansen } amgvarr ; 65759599516SKenneth E. Jansen 65859599516SKenneth E. Jansen extern struct { 65959599516SKenneth E. Jansen int irun_amg; /* Employ AMG feature solfar.f */ 66059599516SKenneth E. Jansen int irun_amg_prec; /* Run AMG as preconditioner to CG */ 66159599516SKenneth E. Jansen int iamg_verb; /* amg verbosity flag */ 66259599516SKenneth E. Jansen int iamg_neg_sten; /* neg only stencil or neg and pos */ 66359599516SKenneth E. Jansen int iamg_nlevel; /* number of levels 2-V etc. */ 66459599516SKenneth E. Jansen int iamg_c_solver; /* solve fine level iter. method */ 66559599516SKenneth E. Jansen int iamg_init; /* setup flag */ 66659599516SKenneth E. Jansen int iamg_setup_frez; /* how many solfars to re setup amg */ 66759599516SKenneth E. Jansen int iamg_interp; /* interpolation select */ 66859599516SKenneth E. Jansen int maxnev; /* total eigenvectors used for ggb*/ 66959599516SKenneth E. Jansen int maxncv; /* total iterative vectors for ggb*/ 67059599516SKenneth E. Jansen int iamg_smoother; /* Smoother type */ 67159599516SKenneth E. Jansen int mlsdeg; /* Polynomial Smoothing (MLS) degree */ 67259599516SKenneth E. Jansen int iamg_reduce; /* Run a reduced case */ 67359599516SKenneth E. Jansen } amgvari ; 67459599516SKenneth E. Jansen 67559599516SKenneth E. Jansen #ifdef __cplusplus 67659599516SKenneth E. Jansen } 67759599516SKenneth E. Jansen #endif 678