xref: /phasta/phSolver/common/common_c.h (revision d06028c1ed09954bf598b0145fe1ac8aecabad11)
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