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