00001
00002
00003
00006 bool lgOptimize_do(void);
00007
00011 void vary_input(bool *lgLimOK);
00012
00027 void optimize_subplex(long int n,
00028 double tol,
00029 long int maxnfe,
00030 long int mode,
00031 float scale[],
00032 float x[],
00033 float *fx,
00034 long int *nfe,
00035 float work[],
00036 long int iwork[],
00037 long int *iflag);
00038
00039
00041 #define VRSNEW 3.00f
00042
00044
00045 #define CNTFILE "continue.pmr"
00046
00047 void optimize_phymir(float[],float[],long,float*,float);
00048
00050 double optimize_func(float param[]);
00051
00052
00054 #define LIMEXT 5L
00055 #define LIMPAR 20L
00056 #define NCOLLM 100L
00057 #define NOBSLM 100L
00058
00059 EXTERN char chOptimFileName[INPUT_LINE_LENGTH];
00082 EXTERN struct t_optimize {
00083
00085 bool lgVaryOn,
00087 lgNoVary;
00088
00090 bool lgOptimr;
00091
00092 float
00094 varmax[LIMPAR],
00095 varmin[LIMPAR],
00096
00099 vparm[LIMEXT][LIMPAR],
00100
00102 vincr[LIMPAR];
00103
00105 long int nvarxt[LIMPAR],
00106 nvfpnt[LIMPAR];
00107
00108 float vpused[LIMPAR],
00109 OptIncrm[LIMPAR],
00110 varang[LIMPAR][2];
00111
00112 long int nvary,
00113 nparm,
00114 nRangeSet;
00115 bool lgVarOn;
00116 float ColDen_Obs[NCOLLM],
00117 chColDen_error[NCOLLM];
00118 long int ion_ColDen[NCOLLM],
00119 ncobs,
00120 ionTemp[NCOLLM];
00121
00122 float xLineInt_Obs[NOBSLM],
00123 xLineInt_error[NOBSLM];
00124
00125 float temp_obs[NOBSLM],
00126 temp_error[NOBSLM];
00127 char chTempWeight[NOBSLM][7];
00128
00129 long int
00130 nlobs,
00131 nIterOptim,
00133 nTempObs;
00134
00136 float wavelength [NOBSLM],
00138 errorwave[NOBSLM];
00139
00141 FILE *ioOptim;
00142 float OptGlobalErr;
00143 long int nOptimiz;
00144 bool lgOptimFlow;
00145 float optint,
00146 optier;
00147 long int nTrOpt;
00148 bool lgTrOpt,
00149 lgOptLin,
00150 lgOptLum,
00151 lgOptCol,
00152 lgOptTemp;
00153
00155 bool lgParallel,
00156 lgOptCont;
00157 long useCPU;
00158
00159 char chVarFmt[LIMPAR][FILENAME_PATH_LENGTH_2],
00160 chColDen_label[NCOLLM][5],
00161 chLineLabel[NOBSLM][5],
00162 chTempLab[NOBSLM][5],
00163 chOptRtn[5];
00164
00165 double SavGenericData[10];
00166
00167 } optimize;
00168
00169