! ! Task UV_FIT (new version R. Lucas) ! 6 parameters needed for all functions ! TASK\CHARACTER "UVtable name" UVTABLE$ 'name'.uvt TASK\INTEGER "Channels: first, last (0,0 for all)" CHANNEL$[2] 'first' 'last' TASK\REAL "UV range (max, min) in meters" UV_RANGE$[2] 'uv_range[1]' 'uv_range[2]' TASK\INTEGER "Number of functions" NF$ 'N_FUNCT' ! ! --- ! repeat the following five for each function, changing the variable names ! ( e.g. FUNCT02$, ... ! valid functions are POINT, C_GAUSS, E_GAUSS, C_DISK, E_DISK, RING, ! EXP, POWER-2, POWER-3 ! TASK\CHARACTER "Function #1 " FUNCT01$ 'funct01' TASK\REAL "Parameters" PARAM01$[6] 'param01[1]' 'param01[2]' 'param01[3]' 'param01[4]' 'param01[5]' 'param01[6]' TASK\REAL "Starting range" RANGE01$[6] 'range01[1]' 'range01[2]' 'range01[3]' 'range01[4]' 'range01[5]' 'range01[6]' ! ! use -1 in START01$ to fix a parameter. TASK\INTEGER "numb. of starts" START01$[6] 'start01[1]' 'start01[2]' 'start01[3]' 'start01[4]' 'start01[5]' 'start01[6]' ! if YES, the residuals are obtained by subtracting the function ! from the table; if NO the function is not subtracted. TASK\LOGICAL "Subtract function" SUBSF01$ 'SUBSF01' ! if (n_funct.gt.1) then TASK\CHARACTER "Function #1 " FUNCT02$ 'funct02' TASK\REAL "Parameters" PARAM02$[6] 'param02[1]' 'param02[2]' 'param02[3]' 'param02[4]' 'param02[5]' 'param02[6]' TASK\REAL "Starting range" RANGE02$[6] 'range02[1]' 'range02[2]' 'range02[3]' 'range02[4]' 'range02[5]' 'range02[6]' ! ! use -1 in START02$ to fix a parameter. TASK\INTEGER "numb. of starts" START02$[6] 'start02[1]' 'start02[2]' 'start02[3]' 'start02[4]' 'start02[5]' 'start02[6]' ! if YES, the residuals are obtained by subtracting the function ! from the table; if NO the function is not subtracted. TASK\LOGICAL "Subtract function" SUBSF02$ 'SUBSF02' endif ! ! end repeat --- ! TASK\CHARACTER "fit table name" RESULT$ 'name'.uvfit TASK\CHARACTER "residuals UVtable" RESIDUALS$ 'name'-res.uvt TASK\GO