29 fprintf(
ioQQQ,
"grid_do: too many parameters are varied, increase LIMPAR\n" );
34 grid.nintparm = nInterpVars;
42 grid.totNumModels = 1;
44 for( i=0; i<nInterpVars; i++ )
47 grid.totNumModels *=
grid.numParamValues[i];
53 grid.paramNames = (
char**)
MALLOC(
sizeof(
char*)*(
unsigned)(nInterpVars+
grid.naddparm) );
54 grid.paramMethods = (
long*)
MALLOC(
sizeof(
long)*(
unsigned)(nInterpVars+
grid.naddparm) );
59 for( i=0; i<nInterpVars+
grid.naddparm; i++ )
61 grid.paramNames[i] = (
char*)
MALLOC(
sizeof(
char)*(
unsigned)(12) );
65 sprintf(
grid.paramNames[i],
"%s%ld",
"PARAM", i+1 );
67 grid.paramMethods[i] = 0;
69 grid.paramRange[i][0] = xc[i]+
grid.paramIncrements[i]*(
grid.numParamValues[i]-1.f)/2.f;
71 grid.paramRange[i][1] =
grid.paramIncrements[i]/10.f;
73 grid.paramRange[i][2] = xc[i];
75 grid.paramRange[i][3] = xc[i]+
grid.paramIncrements[i]/10.f;
77 grid.paramRange[i][4] = xc[i]+
grid.paramIncrements[i]*(
grid.numParamValues[i]-1.f)-
grid.paramIncrements[i]/10.f;
79 grid.paramRange[i][5] = xc[i]+
grid.paramIncrements[i]*(
grid.numParamValues[i]-1.f);
81 for(
long j=0; j<
grid.numParamValues[i]; j++ )
83 grid.paramData[i][j] = xc[i]+
grid.paramIncrements[i]*j;
87 for( i=0; i<
grid.totNumModels; i++ )
92 for( i=0; i<
grid.totNumModels; i++ )
97 for( j=0; j<nInterpVars; j++ )
100 long volumeOtherDimensions = 1;
107 for(
long k=j+1; k<nInterpVars; k++ )
109 volumeOtherDimensions *=
grid.numParamValues[k];
133 index = (int)( (i/volumeOtherDimensions)%(
grid.numParamValues[j]) );
136 if(
grid.lgStrictRepeat )
137 variableVector[j] = xc[j];
139 variableVector[j] = xc[j] +
grid.paramIncrements[j]*index;
141 grid.interpParameters[i][j] = variableVector[j];
143 if(
grid.lgLinearIncrements[j] && !
optimize.lgOptimizeAsLinear[j] )
144 variableVector[j] = log10(variableVector[j]);
147 for( j=nInterpVars; j<
LIMPAR; j++ )
149 variableVector[j] = xc[j];
152 if( i ==
grid.totNumModels - 1 )
156 called.lgTalkIsOK =
cpu.i().lgMPI_talk();
157 prt.lgFaintOn =
true;
158 grid.lgGridDone =
true;
void cdSPEC2(int Option, long int nEnergy, long int ipLoEnergy, long int ipHiEnergy, realnum ReturnedSpectrum[])