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 conpar FortranCInterface_GLOBAL_(conpar,CONPAR) 2359599516SKenneth E. Jansen #define ctrlvari FortranCInterface_GLOBAL_(ctrlvari,CTRLVARI) 24513954efSKenneth E. Jansen #define ductvari FortranCInterface_GLOBAL_(ductvari,DUCTVARI) 2559599516SKenneth E. Jansen #define ctrlvar FortranCInterface_GLOBAL_(ctrlvar,CTRLVAR) 26513954efSKenneth E. Jansen #define ductvar FortranCInterface_GLOBAL_(ductvar,DUCTVAR) 2759599516SKenneth E. Jansen #define shpdat FortranCInterface_GLOBAL_(shpdat,SHPDAT) 2859599516SKenneth E. Jansen #define elmpar FortranCInterface_GLOBAL_(elmpar,ELMPAR) 2959599516SKenneth E. Jansen #define genpar FortranCInterface_GLOBAL_(genpar,GENPAR) 3059599516SKenneth E. Jansen #define inpdat FortranCInterface_GLOBAL_(inpdat,INPDAT) 3159599516SKenneth E. Jansen #define intdat FortranCInterface_GLOBAL_(intdat,INTDAT) 3259599516SKenneth E. Jansen #define mio FortranCInterface_GLOBAL_(mio,MIO) 3359599516SKenneth E. Jansen #define mioname FortranCInterface_GLOBAL_(mioname,MIONAME) 3459599516SKenneth E. Jansen #define itrpar FortranCInterface_GLOBAL_(itrpar,ITRPAR) 3559599516SKenneth E. Jansen #define itrpnt FortranCInterface_GLOBAL_(itrpnt,ITRPNT) 3659599516SKenneth E. Jansen #define matdat FortranCInterface_GLOBAL_(matdat,MATDAT) 3759599516SKenneth E. Jansen #define mmatpar FortranCInterface_GLOBAL_(mmatpar,MMATPAR) 3859599516SKenneth E. Jansen #define outpar FortranCInterface_GLOBAL_(outpar,OUTPAR) 3959599516SKenneth E. Jansen #define point FortranCInterface_GLOBAL_(point,POINT) 4059599516SKenneth E. Jansen #define precis FortranCInterface_GLOBAL_(precis,PRECIS) 4159599516SKenneth E. Jansen #define propar FortranCInterface_GLOBAL_(propar,PROPAR) 4259599516SKenneth E. Jansen #define resdat FortranCInterface_GLOBAL_(resdat,RESDAT) 4359599516SKenneth E. Jansen #define solpar FortranCInterface_GLOBAL_(solpar,SOLPAR) 4459599516SKenneth E. Jansen #define timdat FortranCInterface_GLOBAL_(timdat,TIMDAT) 4559599516SKenneth E. Jansen #define timpar FortranCInterface_GLOBAL_(timpar,TIMPAR) 4659599516SKenneth E. Jansen #define incomp FortranCInterface_GLOBAL_(incomp,INCOMP) 4759599516SKenneth E. Jansen #define mtimer1 FortranCInterface_GLOBAL_(mtimer1,MTIMER1) 4859599516SKenneth E. Jansen #define mtimer2 FortranCInterface_GLOBAL_(mtimer2,MTIMER2) 4959599516SKenneth E. Jansen #define timer3 FortranCInterface_GLOBAL_(timer3,TIMER3) 5059599516SKenneth E. Jansen #define title FortranCInterface_GLOBAL_(title,TITLE) 5159599516SKenneth E. Jansen #define sclrs FortranCInterface_GLOBAL_(sclrs,SCLRS) 5259599516SKenneth E. Jansen #define levlset FortranCInterface_GLOBAL_(levlset,LEVLSET) 5359599516SKenneth E. Jansen #define nomodule FortranCInterface_GLOBAL_(nomodule,NOMODULE) 5459599516SKenneth E. Jansen #define sequence FortranCInterface_GLOBAL_(sequence,SEQUENCE) 5559599516SKenneth E. Jansen #define amgvarr FortranCInterface_GLOBAL_(amgvarr,AMGVARR) 5659599516SKenneth E. Jansen #define amgvari FortranCInterface_GLOBAL_(amgvari,AMGVARI) 5759599516SKenneth E. Jansen 5859599516SKenneth E. Jansen #define MAXBLK 50000 59513954efSKenneth E. Jansen #define MAXSURF 1000 6059599516SKenneth E. Jansen #define MAXTS 100 6159599516SKenneth E. Jansen #define MAXTOP 6 6259599516SKenneth E. Jansen #define MAXQPT 125 6359599516SKenneth E. Jansen #define MAXSH 32 6459599516SKenneth E. Jansen #define NSD 3 6559599516SKenneth E. Jansen #define NSDSQ 9 6659599516SKenneth E. Jansen #define machin 'RS/6000' 6759599516SKenneth E. Jansen #define machfl 4 6859599516SKenneth E. Jansen #define zero 0.0000000000000000000000000000000d0 6959599516SKenneth E. Jansen #define pt125 0.1250000000000000000000000000000d0 7059599516SKenneth E. Jansen #define pt25 0.2500000000000000000000000000000d0 7159599516SKenneth E. Jansen #define pt33 0.3333333333333333333333333333333d0 7259599516SKenneth E. Jansen #define pt39 0.3968502629920498686879264098181d0 7359599516SKenneth E. Jansen #define pt5 0.5000000000000000000000000000000d0 7459599516SKenneth E. Jansen #define pt57 0.5773502691896257645091487805020d0 7559599516SKenneth E. Jansen #define pt66 0.6666666666666666666666666666667d0 7659599516SKenneth E. Jansen #define pt75 0.7500000000000000000000000000000d0 7759599516SKenneth E. Jansen #define one 1.0000000000000000000000000000000d0 7859599516SKenneth E. Jansen #define sqt2 1.4142135623730950488016887242097d0 7959599516SKenneth E. Jansen #define onept5 1.5000000000000000000000000000000d0 8059599516SKenneth E. Jansen #define two 2.0000000000000000000000000000000d0 8159599516SKenneth E. Jansen #define three 3.0000000000000000000000000000000d0 8259599516SKenneth E. Jansen #define four 4.0000000000000000000000000000000d0 8359599516SKenneth E. Jansen #define five 5.0000000000000000000000000000000d0 8459599516SKenneth E. Jansen #define pi 3.1415926535897932384626433832795d0 8559599516SKenneth E. Jansen #define inv1024sq 9.5367431640625e-7 8659599516SKenneth E. Jansen 8759599516SKenneth E. Jansen #ifdef __cplusplus 8859599516SKenneth E. Jansen extern "C" { 8959599516SKenneth E. Jansen #endif 9059599516SKenneth E. Jansen extern struct { 9159599516SKenneth E. Jansen int master; 9259599516SKenneth E. Jansen int numpe; 9359599516SKenneth E. Jansen int myrank; 9459599516SKenneth E. Jansen } workfc ; 9559599516SKenneth E. Jansen 9659599516SKenneth E. Jansen extern struct { 9759599516SKenneth E. Jansen int maxfront; 9859599516SKenneth E. Jansen int nlwork; 9959599516SKenneth E. Jansen } fronts ; 10059599516SKenneth E. Jansen 10159599516SKenneth E. Jansen extern struct { 102513954efSKenneth E. Jansen long long int nshgt; 103513954efSKenneth E. Jansen long long int minowned; 104513954efSKenneth E. Jansen long long int maxowned; 10559599516SKenneth E. Jansen int numper; 106513954efSKenneth E. Jansen //int nshgt; 10759599516SKenneth E. Jansen int nshg0; 10859599516SKenneth E. Jansen } newdim ; 10959599516SKenneth E. Jansen 11059599516SKenneth E. Jansen extern struct { 11159599516SKenneth E. Jansen double birth; 11259599516SKenneth E. Jansen double death; 11359599516SKenneth E. Jansen double comtim; 11459599516SKenneth E. Jansen } timer4 ; 11559599516SKenneth E. Jansen 11659599516SKenneth E. Jansen extern struct { 11759599516SKenneth E. Jansen double ttim[100]; 11859599516SKenneth E. Jansen } extrat ; 11959599516SKenneth E. Jansen 12059599516SKenneth E. Jansen extern struct { 12159599516SKenneth E. Jansen double zoutsponge, radsponge, zinsponge, grthosponge, grthisponge; 12259599516SKenneth E. Jansen double betamax; 12359599516SKenneth E. Jansen int spongecontinuity, spongemomentum1, spongemomentum2; 12459599516SKenneth E. Jansen int spongeenergy, spongemomentum3; 12559599516SKenneth E. Jansen } spongevar ; 12659599516SKenneth E. Jansen 12759599516SKenneth E. Jansen extern struct { 12859599516SKenneth E. Jansen double eles; 12959599516SKenneth E. Jansen double ylimit[9][3]; /* 9 = 5 + 4 = puvwT + 4Scalars */ 13059599516SKenneth E. Jansen double rampmdot[3][2]; 13159599516SKenneth E. Jansen double rmutarget; 13259599516SKenneth E. Jansen double pzero; 13359599516SKenneth E. Jansen double wtavei; 13459599516SKenneth E. Jansen double dtavei; 13559599516SKenneth E. Jansen double dke; 13659599516SKenneth E. Jansen double fwr1; 13759599516SKenneth E. Jansen double flump; 13859599516SKenneth E. Jansen double DES_SA_hmin; 13959599516SKenneth E. Jansen int ierrcalc; 14059599516SKenneth E. Jansen int ihessian; 14159599516SKenneth E. Jansen int itwmod; 14259599516SKenneth E. Jansen int ngaussf; 14359599516SKenneth E. Jansen int idim; 14459599516SKenneth E. Jansen int nlist; 14559599516SKenneth E. Jansen int nintf[MAXTOP]; 14659599516SKenneth E. Jansen } turbvar ; 14759599516SKenneth E. Jansen 14859599516SKenneth E. Jansen extern struct { 14959599516SKenneth E. Jansen int irans, iles, idistcalc, isubmod; 15059599516SKenneth E. Jansen int ifproj; 15159599516SKenneth E. Jansen int i2filt; 15259599516SKenneth E. Jansen int modlstats; 15359599516SKenneth E. Jansen int idis; 15459599516SKenneth E. Jansen int nohomog; 15559599516SKenneth E. Jansen int ierrsmooth; 15659599516SKenneth E. Jansen int iramp; 15759599516SKenneth E. Jansen 15859599516SKenneth E. Jansen /* int itwmod; */ 15959599516SKenneth E. Jansen /* double rtavei; */ 16059599516SKenneth E. Jansen /* int ierrcalc; */ 16159599516SKenneth E. Jansen } turbvari ; 16259599516SKenneth E. Jansen 16359599516SKenneth E. Jansen extern struct { 16459599516SKenneth E. Jansen int iISend; 16559599516SKenneth E. Jansen int iISendScal; 16659599516SKenneth E. Jansen int iIRecv; 16759599516SKenneth E. Jansen int iIRecvScal; 16859599516SKenneth E. Jansen int iWaitAll; 16959599516SKenneth E. Jansen int iWaitAllScal; 17059599516SKenneth E. Jansen int iAllR; 17159599516SKenneth E. Jansen int iAllRScal; 17259599516SKenneth E. Jansen int impistat; 17359599516SKenneth E. Jansen int impistat2; 17459599516SKenneth E. Jansen double rmpitmr; 17559599516SKenneth E. Jansen double rISend; 17659599516SKenneth E. Jansen double rISendScal; 17759599516SKenneth E. Jansen double rIRecv; 17859599516SKenneth E. Jansen double rIRecvScal; 17959599516SKenneth E. Jansen double rWaitAll; 18059599516SKenneth E. Jansen double rWaitAllScal; 18159599516SKenneth E. Jansen double rAllR; 18259599516SKenneth E. Jansen double rAllRScal; 18359599516SKenneth E. Jansen double rCommu; 18459599516SKenneth E. Jansen double rCommuScal; 18559599516SKenneth E. Jansen } mpistats ; 18659599516SKenneth E. Jansen 18759599516SKenneth E. Jansen extern struct { 18859599516SKenneth E. Jansen double rheap; 18959599516SKenneth E. Jansen double rheapavail; 19059599516SKenneth E. Jansen double rstack; 19159599516SKenneth E. Jansen double rstackavail; 19259599516SKenneth E. Jansen double rshared; 19359599516SKenneth E. Jansen double rpersist; 19459599516SKenneth E. Jansen double rguard; 19559599516SKenneth E. Jansen double rmmap; 19659599516SKenneth E. Jansen } memstats ; 19759599516SKenneth E. Jansen 19859599516SKenneth E. Jansen 19959599516SKenneth E. Jansen extern struct { 20059599516SKenneth E. Jansen int irscale; 20159599516SKenneth E. Jansen int intpres; 20259599516SKenneth E. Jansen double plandist; 20359599516SKenneth E. Jansen double thetag; 20459599516SKenneth E. Jansen double ds; 20559599516SKenneth E. Jansen double tolerence; 20659599516SKenneth E. Jansen double radcyl; 20759599516SKenneth E. Jansen double rbltin; 20859599516SKenneth E. Jansen double rvscal; 20959599516SKenneth E. Jansen } spebcvr ; 21059599516SKenneth E. Jansen 21159599516SKenneth E. Jansen extern struct { 21259599516SKenneth E. Jansen double scdiff[5]; 21359599516SKenneth E. Jansen double tdecay; 21459599516SKenneth E. Jansen int nsclr, isclr,nsolt, nosource; 21559599516SKenneth E. Jansen int consrv_sclr_conv_vel; 21659599516SKenneth E. Jansen } sclrs; 21759599516SKenneth E. Jansen 21859599516SKenneth E. Jansen extern struct { 21959599516SKenneth E. Jansen double flxID[MAXSURF+1][10] ; 22059599516SKenneth E. Jansen double Force[3]; 22159599516SKenneth E. Jansen double HFlux; 22259599516SKenneth E. Jansen int nsrflist[MAXSURF+1]; 22359599516SKenneth E. Jansen int isrfIM; 22459599516SKenneth E. Jansen double flxIDsclr[MAXSURF][4]; 22559599516SKenneth E. Jansen int irankfilesforce[MAXSURF+1]; 22659599516SKenneth E. Jansen } aerfrc ; 22759599516SKenneth E. Jansen 22859599516SKenneth E. Jansen extern struct { 22959599516SKenneth E. Jansen int numnp; 23059599516SKenneth E. Jansen int numel; 23159599516SKenneth E. Jansen int numelb; 23259599516SKenneth E. Jansen int numpbc; 23359599516SKenneth E. Jansen int nen; 23459599516SKenneth E. Jansen int nfaces; 23559599516SKenneth E. Jansen int numflx; 23659599516SKenneth E. Jansen int ndof; 23759599516SKenneth E. Jansen int iALE; 23859599516SKenneth E. Jansen int icoord; 23959599516SKenneth E. Jansen int navier; 24059599516SKenneth E. Jansen int irs; 24159599516SKenneth E. Jansen int iexec; 24259599516SKenneth E. Jansen int necho; 24359599516SKenneth E. Jansen int ichem; 24459599516SKenneth E. Jansen int iRK; 24559599516SKenneth E. Jansen int nedof; 24659599516SKenneth E. Jansen int nshg; 24759599516SKenneth E. Jansen int nnz; 24859599516SKenneth E. Jansen int istop; 24959599516SKenneth E. Jansen int nflow; 25059599516SKenneth E. Jansen int nnz_tot; 25159599516SKenneth E. Jansen int idtn; 252513954efSKenneth E. Jansen int ncorpsize; 253513954efSKenneth E. Jansen int iownnodes; 254513954efSKenneth E. Jansen int usingpetsc; 25559599516SKenneth E. Jansen } conpar ; 2565124a526SKenneth E. Jansen 2575124a526SKenneth E. Jansen /*Woolwine June 4 2014 NASA Inlet*/ 2585124a526SKenneth E. Jansen extern struct{ 2595124a526SKenneth E. Jansen int BCdtKW; 2605124a526SKenneth E. Jansen int tsBase; 2615124a526SKenneth E. Jansen } nasavari; 2625124a526SKenneth E. Jansen 2635124a526SKenneth E. Jansen extern struct{ 2645124a526SKenneth E. Jansen double PresFreq; 2655124a526SKenneth E. Jansen double PresAmp; 2665124a526SKenneth E. Jansen double AlphaFreq; 2675124a526SKenneth E. Jansen double AlphaAmp; 2685124a526SKenneth E. Jansen } nasavar; 26959599516SKenneth E. Jansen 27059599516SKenneth E. Jansen /*chen Sep 25 2009 Flow Control Parameters*/ 27159599516SKenneth E. Jansen extern struct{ 27259599516SKenneth E. Jansen int iI2Binlet; 27359599516SKenneth E. Jansen int isetOutPres; 27459599516SKenneth E. Jansen int isetInitial; 27559599516SKenneth E. Jansen } ctrlvari; 27659599516SKenneth E. Jansen 27759599516SKenneth E. Jansen extern struct{ 278513954efSKenneth E. Jansen double BlowingVelDuct; 279513954efSKenneth E. Jansen double BlowingIniMdotDuct; 280513954efSKenneth E. Jansen double BlowingFnlMdotDuct; 281513954efSKenneth E. Jansen double suctionVbottom; 282513954efSKenneth E. Jansen double suctionVside_lower; 283513954efSKenneth E. Jansen double suctionVside_upper; 284513954efSKenneth E. Jansen double suctionVtop; 285513954efSKenneth E. Jansen double blowerVelocity; 286513954efSKenneth E. Jansen double blowerTemperature; 287513954efSKenneth E. Jansen double blowerEV; 288513954efSKenneth E. Jansen int isetOutletID; 289513954efSKenneth E. Jansen int isetInitial_Duct; 290513954efSKenneth E. Jansen int isetInlet_Duct; 291513954efSKenneth E. Jansen int isetSuctionID_Duct; 292513954efSKenneth E. Jansen int isetBlowerID_Duct; 293513954efSKenneth E. Jansen int iDuctgeometryType; 294513954efSKenneth E. Jansen int iStraigtPrint; 295513954efSKenneth E. Jansen int isetEV_IC_BC; 296513954efSKenneth E. Jansen int isetEVramp; 297513954efSKenneth E. Jansen int isetBlowing_Duct; 298513954efSKenneth E. Jansen int ifixBlowingVel_Duct; 299513954efSKenneth E. Jansen int nBlowingStepsDuct; 300513954efSKenneth E. Jansen }ductvari; 301513954efSKenneth E. Jansen 302513954efSKenneth E. Jansen extern struct{ 30359599516SKenneth E. Jansen double inletVelX; 30459599516SKenneth E. Jansen double outPres1; 30559599516SKenneth E. Jansen double xvel_ini; 30659599516SKenneth E. Jansen double yvel_ini; 30759599516SKenneth E. Jansen double zvel_ini; 30859599516SKenneth E. Jansen double temp_ini; 30959599516SKenneth E. Jansen double pres_ini; 31059599516SKenneth E. Jansen double evis_ini; 31159599516SKenneth E. Jansen } ctrlvar; 31259599516SKenneth E. Jansen 31359599516SKenneth E. Jansen extern struct{ 314513954efSKenneth E. Jansen double evis_IC_BC; 315513954efSKenneth E. Jansen double EVrampXmin; 316513954efSKenneth E. Jansen double EVrampXmax; 317513954efSKenneth E. Jansen double EVrampMin; 318513954efSKenneth E. Jansen double EVrampMax; 319513954efSKenneth E. Jansen } ductvar; 320513954efSKenneth E. Jansen ////////////////////////////////////////// 321513954efSKenneth E. Jansen 322513954efSKenneth E. Jansen 323513954efSKenneth E. Jansen extern struct { 32459599516SKenneth E. Jansen double epsilon_ls; 32559599516SKenneth E. Jansen double epsilon_lsd; 32659599516SKenneth E. Jansen double dtlset; 32759599516SKenneth E. Jansen int iLSet; 32859599516SKenneth E. Jansen int ivconstraint; 32959599516SKenneth E. Jansen int iExpLSSclr1; 33059599516SKenneth E. Jansen int iExpLSSclr2; 33159599516SKenneth E. Jansen } levlset; 33259599516SKenneth E. Jansen 33359599516SKenneth E. Jansen extern struct { 33459599516SKenneth E. Jansen int nshape; 33559599516SKenneth E. Jansen int nshapeb; 33659599516SKenneth E. Jansen int maxshb; 33759599516SKenneth E. Jansen int nshl; 33859599516SKenneth E. Jansen int nshlb; 33959599516SKenneth E. Jansen int nfath; 34059599516SKenneth E. Jansen int ntopsh; 34159599516SKenneth E. Jansen int nsonmax; 34259599516SKenneth E. Jansen } shpdat ; 34359599516SKenneth E. Jansen 34459599516SKenneth E. Jansen extern struct { 34559599516SKenneth E. Jansen int lelCat; 34659599516SKenneth E. Jansen int lcsyst; 34759599516SKenneth E. Jansen int iorder; 34859599516SKenneth E. Jansen int nenb; 34959599516SKenneth E. Jansen int nelblk; 35059599516SKenneth E. Jansen int nelblb; 35159599516SKenneth E. Jansen int ndofl; 35259599516SKenneth E. Jansen int nsymdl; 35359599516SKenneth E. Jansen int nenl; 35459599516SKenneth E. Jansen int nfacel; 35559599516SKenneth E. Jansen int nenbl; 35659599516SKenneth E. Jansen int intind; 35759599516SKenneth E. Jansen int mattyp; 35859599516SKenneth E. Jansen } elmpar ; 35959599516SKenneth E. Jansen 36059599516SKenneth E. Jansen extern struct { 36159599516SKenneth E. Jansen double E3nsd; 36259599516SKenneth E. Jansen int I3nsd; 36359599516SKenneth E. Jansen int nsymdf; 36459599516SKenneth E. Jansen int ndofBC; 36559599516SKenneth E. Jansen int ndiBCB; 36659599516SKenneth E. Jansen int ndBCB; 36759599516SKenneth E. Jansen int Jactyp; 36859599516SKenneth E. Jansen int jump; 36959599516SKenneth E. Jansen int ires; 37059599516SKenneth E. Jansen int iprec; 37159599516SKenneth E. Jansen int iprev; 37259599516SKenneth E. Jansen int ibound; 37359599516SKenneth E. Jansen int idiff; 37459599516SKenneth E. Jansen int lhs; 37559599516SKenneth E. Jansen int itau; 37659599516SKenneth E. Jansen int ipord; 37759599516SKenneth E. Jansen int ipred; 37859599516SKenneth E. Jansen int lstres; 37959599516SKenneth E. Jansen int iepstm; 38059599516SKenneth E. Jansen double dtsfct; 38159599516SKenneth E. Jansen double taucfct; 38259599516SKenneth E. Jansen int ibksiz; 38359599516SKenneth E. Jansen int iabc; 38459599516SKenneth E. Jansen int isurf; 38559599516SKenneth E. Jansen int idflx; 38659599516SKenneth E. Jansen double Bo; 38759599516SKenneth E. Jansen int EntropyPressure; 38859599516SKenneth E. Jansen int irampViscOutlet; 38959599516SKenneth E. Jansen int istretchOutlet; 39059599516SKenneth E. Jansen int iremoveStabTimeTerm; 391513954efSKenneth E. Jansen int iLHScond; 39259599516SKenneth E. Jansen } genpar ; 39359599516SKenneth E. Jansen 39459599516SKenneth E. Jansen extern struct { 39559599516SKenneth E. Jansen double epstol[6]; /* 1+ max number of scalars (beginning of the 39659599516SKenneth E. Jansen end of time sequences) */ 39759599516SKenneth E. Jansen double Delt[MAXTS]; 39859599516SKenneth E. Jansen double CFLfl[MAXTS]; 39959599516SKenneth E. Jansen double CFLsl[MAXTS]; 40059599516SKenneth E. Jansen int nstep[MAXTS]; 40159599516SKenneth E. Jansen int niter[MAXTS]; 40259599516SKenneth E. Jansen int impl[MAXTS]; 40359599516SKenneth E. Jansen double rhoinf[MAXTS]; 40459599516SKenneth E. Jansen int LHSupd[6]; 40559599516SKenneth E. Jansen int loctim[MAXTS]; 40659599516SKenneth E. Jansen double deltol[2][MAXTS]; 40779f1763eSKenneth E. Jansen int leslib; 408f4e2c78fSKenneth E. Jansen int svLSFlag; 409f4e2c78fSKenneth E. Jansen int svLSType; 41059599516SKenneth E. Jansen } inpdat ; 41159599516SKenneth E. Jansen 41259599516SKenneth E. Jansen extern struct { 41359599516SKenneth E. Jansen int iin; 41459599516SKenneth E. Jansen int igeom; 41559599516SKenneth E. Jansen int ipar; 41659599516SKenneth E. Jansen int ibndc; 41759599516SKenneth E. Jansen int imat; 41859599516SKenneth E. Jansen int iecho; 41959599516SKenneth E. Jansen int iout; 42059599516SKenneth E. Jansen int ichmou; 42159599516SKenneth E. Jansen int irstin; 42259599516SKenneth E. Jansen int irstou; 42359599516SKenneth E. Jansen int ihist; 42459599516SKenneth E. Jansen int iflux; 42559599516SKenneth E. Jansen int ierror; 42659599516SKenneth E. Jansen int itable; 42759599516SKenneth E. Jansen int iforce; 42859599516SKenneth E. Jansen int igraph; 42959599516SKenneth E. Jansen int itime; 43059599516SKenneth E. Jansen } mio ; 43159599516SKenneth E. Jansen 43259599516SKenneth E. Jansen extern struct { 43359599516SKenneth E. Jansen double fin; 43459599516SKenneth E. Jansen double fgeom; 43559599516SKenneth E. Jansen double fpar; 43659599516SKenneth E. Jansen double fbndc; 43759599516SKenneth E. Jansen double fmat; 43859599516SKenneth E. Jansen double fecho; 43959599516SKenneth E. Jansen double frstin; 44059599516SKenneth E. Jansen double frstou; 44159599516SKenneth E. Jansen double fhist; 44259599516SKenneth E. Jansen double ferror; 44359599516SKenneth E. Jansen double ftable; 44459599516SKenneth E. Jansen double fforce; 44559599516SKenneth E. Jansen double fgraph; 44659599516SKenneth E. Jansen double ftime; 44759599516SKenneth E. Jansen } mioname ; 44859599516SKenneth E. Jansen 44959599516SKenneth E. Jansen extern struct { 45059599516SKenneth E. Jansen double eGMRES; 45159599516SKenneth E. Jansen int lGMRES; 452513954efSKenneth E. Jansen int lGMRESs; 45359599516SKenneth E. Jansen int iKs; 454513954efSKenneth E. Jansen int iKss; 45559599516SKenneth E. Jansen int ntotGM; 456513954efSKenneth E. Jansen int ntotGMs; 45759599516SKenneth E. Jansen } itrpar ; 45859599516SKenneth E. Jansen 45959599516SKenneth E. Jansen extern struct { 46059599516SKenneth E. Jansen double datmat[MAXTS][7][3]; 46159599516SKenneth E. Jansen int matflg[MAXTS][6]; 46259599516SKenneth E. Jansen int nummat; 46359599516SKenneth E. Jansen int mexist; 46459599516SKenneth E. Jansen } matdat ; 46559599516SKenneth E. Jansen 46659599516SKenneth E. Jansen extern struct { 46759599516SKenneth E. Jansen double pr, Planck, Stephan, Nh, Rh, Rgas; 46859599516SKenneth E. Jansen double gamma, gamma1, s0; 46908d2ac07SCameron Smith /*, const, xN2, xO2;*/ 47008d2ac07SCameron Smith /*double yN2, yO2, Msh[5], cpsh[5],s0sh[5],h0sh[5];*/ 47108d2ac07SCameron Smith /*double Rs[5], cps[5], cvs[5], h0s[5], Trot[5],sigs[5];*/ 47208d2ac07SCameron Smith /*double Tvib[5],g0s[5], dofs[5],ithm;*/ 47359599516SKenneth E. Jansen } mmatpar ; 47459599516SKenneth E. Jansen 47559599516SKenneth E. Jansen extern struct { 47659599516SKenneth E. Jansen double ro; 47759599516SKenneth E. Jansen double vel; 47859599516SKenneth E. Jansen double temper; 47959599516SKenneth E. Jansen double press; 48059599516SKenneth E. Jansen double entrop; 48159599516SKenneth E. Jansen int ntout; 48259599516SKenneth E. Jansen int ioform; 48359599516SKenneth E. Jansen int iowflux; 48459599516SKenneth E. Jansen int iofieldv; 48559599516SKenneth E. Jansen char iotype[80]; 48659599516SKenneth E. Jansen int ioybar; 48759599516SKenneth E. Jansen int nstepsincycle; 48859599516SKenneth E. Jansen int nphasesincycle; 48959599516SKenneth E. Jansen int ncycles_startphaseavg; 49059599516SKenneth E. Jansen int ivort; 49159599516SKenneth E. Jansen int icomputevort; 49259599516SKenneth E. Jansen int nsynciofiles; 49359599516SKenneth E. Jansen int nsynciofieldswriterestart; 49459599516SKenneth E. Jansen int iv_rankpercore; 49559599516SKenneth E. Jansen int iv_corepernode; 496d022ba44SCameron Smith int input_mode; //FIXME -1:streams, 0:posix, >0:syncio 497d022ba44SCameron Smith int output_mode; //FIXME -1:streams, 0:posix, >0:syncio 49859599516SKenneth E. Jansen /* int iostats; */ 49959599516SKenneth E. Jansen /* int ipresref; */ 50059599516SKenneth E. Jansen } outpar ; 50159599516SKenneth E. Jansen 50259599516SKenneth E. Jansen extern struct { 50359599516SKenneth E. Jansen int mbeg; 50459599516SKenneth E. Jansen int mend; 50559599516SKenneth E. Jansen int mprec; 50659599516SKenneth E. Jansen } point ; 50759599516SKenneth E. Jansen 50859599516SKenneth E. Jansen extern struct { 50959599516SKenneth E. Jansen double epsM; 51059599516SKenneth E. Jansen int iabres; 51159599516SKenneth E. Jansen } precis ; 51259599516SKenneth E. Jansen 51359599516SKenneth E. Jansen extern struct { 51459599516SKenneth E. Jansen int npro; 51559599516SKenneth E. Jansen } propar ; 51659599516SKenneth E. Jansen 51759599516SKenneth E. Jansen extern struct { 518*6d194905SKenneth E. Jansen double resfrt[2]; 519513954efSKenneth E. Jansen double resfrts; 52059599516SKenneth E. Jansen } resdat ; 52159599516SKenneth E. Jansen 52259599516SKenneth E. Jansen extern struct { 52359599516SKenneth E. Jansen int imap; 52459599516SKenneth E. Jansen int ivart; 52559599516SKenneth E. Jansen int iDC; 52659599516SKenneth E. Jansen int iPcond; 52759599516SKenneth E. Jansen int Kspace; 52859599516SKenneth E. Jansen int nGMRES; 52959599516SKenneth E. Jansen int iconvflow; 53059599516SKenneth E. Jansen int iconvsclr; 53159599516SKenneth E. Jansen int idcsclr[2]; 53259599516SKenneth E. Jansen } solpar ; 53359599516SKenneth E. Jansen 53459599516SKenneth E. Jansen extern struct { 53559599516SKenneth E. Jansen double time; 53659599516SKenneth E. Jansen double CFLfld; 53759599516SKenneth E. Jansen double CFLsld; 53859599516SKenneth E. Jansen double Dtgl; 53959599516SKenneth E. Jansen double Dtmax; 54059599516SKenneth E. Jansen double alpha; 54159599516SKenneth E. Jansen double etol; 542513954efSKenneth E. Jansen int lstep; // read from numstart.dat and incremented every time step 54359599516SKenneth E. Jansen int ifunc; 54459599516SKenneth E. Jansen int itseq; 545513954efSKenneth E. Jansen int istep; // how many steps (starting from 0 each run) 54659599516SKenneth E. Jansen int iter; 54759599516SKenneth E. Jansen int nitr; 54859599516SKenneth E. Jansen double almi; 54959599516SKenneth E. Jansen double alfi; 55059599516SKenneth E. Jansen double gami; 55159599516SKenneth E. Jansen double flmpl; 55259599516SKenneth E. Jansen double flmpr; 55359599516SKenneth E. Jansen double dtol[2]; 55459599516SKenneth E. Jansen int iCFLworst; 55559599516SKenneth E. Jansen int lskeep; 55659599516SKenneth E. Jansen } timdat ; 55759599516SKenneth E. Jansen 55859599516SKenneth E. Jansen extern struct { 55959599516SKenneth E. Jansen int LCtime; 56059599516SKenneth E. Jansen int ntseq; 56159599516SKenneth E. Jansen } timpar ; 56259599516SKenneth E. Jansen 56359599516SKenneth E. Jansen extern struct { 56459599516SKenneth E. Jansen int numeqns[100]; 56559599516SKenneth E. Jansen int minIters; 56659599516SKenneth E. Jansen int maxIters; 56759599516SKenneth E. Jansen int iprjFlag; 56859599516SKenneth E. Jansen int nPrjs; 56959599516SKenneth E. Jansen int ipresPrjFlag; 57059599516SKenneth E. Jansen int nPresPrjs; 57159599516SKenneth E. Jansen double prestol; 57259599516SKenneth E. Jansen double statsflow[6]; 57359599516SKenneth E. Jansen double statssclr[6]; 57459599516SKenneth E. Jansen int iverbose; 57559599516SKenneth E. Jansen } incomp ; 57659599516SKenneth E. Jansen 57759599516SKenneth E. Jansen extern struct { 57859599516SKenneth E. Jansen double ccode[13]; 57959599516SKenneth E. Jansen } mtimer1 ; 58059599516SKenneth E. Jansen 58159599516SKenneth E. Jansen extern struct { 58259599516SKenneth E. Jansen double flops; 58359599516SKenneth E. Jansen double gbytes; 58459599516SKenneth E. Jansen double sbytes; 58559599516SKenneth E. Jansen int iclock; 58659599516SKenneth E. Jansen int icd; 58759599516SKenneth E. Jansen int icode; 58859599516SKenneth E. Jansen int icode2; 58959599516SKenneth E. Jansen int icode3; 59059599516SKenneth E. Jansen } mtimer2 ; 59159599516SKenneth E. Jansen 59259599516SKenneth E. Jansen extern struct { 59359599516SKenneth E. Jansen double cpu[11]; 59459599516SKenneth E. Jansen double cpu0[11]; 59559599516SKenneth E. Jansen int nacess[11]; 59659599516SKenneth E. Jansen } timer3 ; 59759599516SKenneth E. Jansen 59859599516SKenneth E. Jansen extern struct { 59959599516SKenneth E. Jansen double title; 60059599516SKenneth E. Jansen int ititle; 60159599516SKenneth E. Jansen } title ; 60259599516SKenneth E. Jansen 60359599516SKenneth E. Jansen extern struct { 60459599516SKenneth E. Jansen int intg[MAXTS][2]; 60559599516SKenneth E. Jansen }intdat; 60659599516SKenneth E. Jansen 60759599516SKenneth E. Jansen extern struct { 60859599516SKenneth E. Jansen double bcttimescale; 60959599516SKenneth E. Jansen double ValueListResist[MAXSURF+1]; 61059599516SKenneth E. Jansen double rhovw; 61159599516SKenneth E. Jansen double thicknessvw; 61259599516SKenneth E. Jansen double evw; 61359599516SKenneth E. Jansen double rnuvw; 61459599516SKenneth E. Jansen double rshearconstantvw; 61559599516SKenneth E. Jansen double betai; 61659599516SKenneth E. Jansen int icardio; 61759599516SKenneth E. Jansen int itvn; 61859599516SKenneth E. Jansen int ipvsq; 61959599516SKenneth E. Jansen int numResistSrfs; 62059599516SKenneth E. Jansen int nsrflistResist[MAXSURF+1]; 62159599516SKenneth E. Jansen int numImpSrfs; 62259599516SKenneth E. Jansen int nsrflistImp[MAXSURF+1]; 62359599516SKenneth E. Jansen int impfile; 62459599516SKenneth E. Jansen int numRCRSrfs; 62559599516SKenneth E. Jansen int nsrflistRCR[MAXSURF+1]; 62659599516SKenneth E. Jansen int ircrfile; 62759599516SKenneth E. Jansen int ideformwall; 62859599516SKenneth E. Jansen int iwallmassfactor; 62959599516SKenneth E. Jansen int iwallstiffactor; 63059599516SKenneth E. Jansen int iviscflux; 63159599516SKenneth E. Jansen } nomodule; 63259599516SKenneth E. Jansen 63359599516SKenneth E. Jansen extern struct { 63459599516SKenneth E. Jansen int seqsize; 63559599516SKenneth E. Jansen int stepseq[100]; 63659599516SKenneth E. Jansen } sequence; 63759599516SKenneth E. Jansen 63859599516SKenneth E. Jansen extern struct { 63959599516SKenneth E. Jansen double strong_eps; /* strong criterion Stuben factor */ 64059599516SKenneth E. Jansen double ramg_eps; /* AMG convergence eps */ 64159599516SKenneth E. Jansen double ramg_relax; /* relaxation factor Gauss-Seidel/Jac*/ 64259599516SKenneth E. Jansen double ramg_trunc; /* truncation select */ 64359599516SKenneth E. Jansen double ramg_chebyratio; /* Eigen ratio for chebyshev smoothing */ 64459599516SKenneth E. Jansen } amgvarr ; 64559599516SKenneth E. Jansen 64659599516SKenneth E. Jansen extern struct { 64759599516SKenneth E. Jansen int irun_amg; /* Employ AMG feature solfar.f */ 64859599516SKenneth E. Jansen int irun_amg_prec; /* Run AMG as preconditioner to CG */ 64959599516SKenneth E. Jansen int iamg_verb; /* amg verbosity flag */ 65059599516SKenneth E. Jansen int iamg_neg_sten; /* neg only stencil or neg and pos */ 65159599516SKenneth E. Jansen int iamg_nlevel; /* number of levels 2-V etc. */ 65259599516SKenneth E. Jansen int iamg_c_solver; /* solve fine level iter. method */ 65359599516SKenneth E. Jansen int iamg_init; /* setup flag */ 65459599516SKenneth E. Jansen int iamg_setup_frez; /* how many solfars to re setup amg */ 65559599516SKenneth E. Jansen int iamg_interp; /* interpolation select */ 65659599516SKenneth E. Jansen int maxnev; /* total eigenvectors used for ggb*/ 65759599516SKenneth E. Jansen int maxncv; /* total iterative vectors for ggb*/ 65859599516SKenneth E. Jansen int iamg_smoother; /* Smoother type */ 65959599516SKenneth E. Jansen int mlsdeg; /* Polynomial Smoothing (MLS) degree */ 66059599516SKenneth E. Jansen int iamg_reduce; /* Run a reduced case */ 66159599516SKenneth E. Jansen } amgvari ; 66259599516SKenneth E. Jansen 66359599516SKenneth E. Jansen #ifdef __cplusplus 66459599516SKenneth E. Jansen } 66559599516SKenneth E. Jansen #endif 666