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