----- Documentation for Model\abs_eff.pro ----- NAME: ABS_EFF AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE THE WAVELENGTH DISTRIBUTION OF THE ABSORPTION EFFICIENCY (THIN DUSTY SHELL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: ABS_EFF,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + IMPACT PARAMETER RELATIVE TO STELLAR DIAM (STRUCTURE). A = PARAMETER. OUTPUTS: F = VALUE OF FUNCTION AT EACH WAVELENGTH. OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING THE PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH WAVELENGTH W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = X^(-A) WITH: X = XX.WVL = WAVELENGTH A = SPECTRAL INDEX PD_F = -LN(X)*F ;PARTIAL DERIVATIVE W/RESPECT TO A LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/08 last modification by pcr 2008/02/12 ----- Documentation for Model\central_depth.pro ----- NAME: CENTRAL_DEPTH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE OPTICAL DEPTH RADIAL DISTRIBUTION IN CENTRAL DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: CENTRAL_DEPTH,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + RELATIVE IMPACT PARAMETERS (STRUCTURE). A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF FUNCTION AT EACH WAVELENGTH AND SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = ARRAY CONTAINING PARTIAL DERIVATIVE. PD_F(I,J,K) = DERIVATIVE AT ITH WAVELENGTH AND JTH SIGHT ANGLE W/RESPECT TO KTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = NB_DENS(A1,A2,A4)*ABS_EFF(A3)*CENT_PATH(A0,A1,A2)/A5 WITH: NB_DENS = RELATIVE NUMBER DENSITY AT OUTER BOUNDARY = (A2/A1)^A4 ABS_EFF = WAVELENGTH DISTRIBUTION OF ABSORPTION EFFICIENCY = (1/X)^A3 CENT_PATH = ANGULAR OPTICAL PATH IN CENTRAL DIRECTION = A0*(SQRT((A2/A0)^2-R^2)-SQRT((A1/A0)^2-R^2))/2 X = XX.WVL = WAVELENGTH R = XX.RIP = RELATIVE IMPACT PARAMETER A0 = STELLAR DIAMETER A1 = SHELL INNER DIAMETER A2 = SHELL OUTER DIAMETER A3 = SPECTRAL INDEX A4 = POWER-LAW DENSITY INDEX A5 = REFERENCE GEOMETRICAL PATH PD_F_0 = F*PD_CENT_PATH_0/CENT_PATH ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = F*(PD_NB_DENS_1/NB_DENS+PD_CENT_PATH_1/CENT_PATH) ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = F*(PD_NB_DENS_2/NB_DENS+PD_CENT_PATH_2/CENT_PATH) ;PARTIAL DERIVATIVE W/RESPECT TO A2 PD_F_3 = F*PD_ABS_EFF_3/ABS_EFF ;PARTIAL DERIVATIVE W/RESPECT TO A3 PD_F_4 = F*PD_NB_DENS_4/NB_DENS ;PARTIAL DERIVATIVE W/RESPECT TO A4 PD_F_5 = -F/A5 ;PARTIAL DERIVATIVE W/RESPECT TO A5 LOCAL PROCEDURE CALLED: ABS_EFF CENT_PATH NB_DENS LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/08 last modification by pcr 2009/03/18 ----- Documentation for Model\cent_path.pro ----- NAME: CENT_PATH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE GEOMETRICAL-THICKNESS RADIAL DISTRIBUTION IN CENTRAL DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: CENT_PATH,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + RELATIVE IMPACT PARAMETERS (STRUCTURE). A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF THICKNESS AT EACH SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = ARRAY CONTAINING PARTIAL DERIVATIVE. PD_F(I,J) = DERIVATIVE AT ITH SIGHT ANGLE W/RESPECT TO JTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = A0*(R2-R1)/2 WITH: R = XX.RIP = RELATIVE IMPACT PARAMETER A0 = STELLAR DIAMETER A1 = SHELL INNER DIAMETER A2 = SHELL OUTER DIAMETER AA1 = A1/A0 AA2 = A2/A0 R1 = SQRT(AA1^2-R^2) R2 = SQRT(AA2^2-R^2) PD_F_0 = (AA1^2/R1-AA2^2/R2+R2-R1)/2 ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = -AA1/R1/2 ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = AA2/R2/2 ;PARTIAL DERIVATIVE W/RESPECT TO A2 LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/08 last modification by pcr 2008/12/28 ----- Documentation for Model\core_depth.pro ----- NAME: CORE_DEPTH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE OPTICAL DEPTH RADIAL DISTRIBUTION IN CORE DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: CORE_DEPTH,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + IMPACT PARAMETER RELATIVE TO INNER DIAM (STRUCTURE). A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF FUNCTION AT EACH WAVELENGTH AND SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = ARRAY CONTAINING PARTIAL DERIVATIVE. PD_F(I,J,K) = DERIVATIVE AT ITH WAVELENGTH AND JTH SIGHT ANGLE W/RESPECT TO KTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = NB_DENS(A0,A1,A3)*ABS_EFF(A2)*CORE_PATH(A0,A1,A2)/A4 WITH: NB_DENS = RELATIVE NUMBER DENSITY AT OUTER BOUNDARY = (A1/A0)^A3 ABS_EFF = WAVELENGTH DISTRIBUTION OF ABSORPTION EFFICIENCY = X^(-A2) CORE_PATH = ANGULAR OPTICAL PATH IN CORE DIRECTION = 2*(SQRT(A1^2-R^2)-SQRT(A0^2-R^2)) X = XX.WVL = WAVELENGTH R = A0/2*XX.RIP = IMPACT PARAMETER A0 = SHELL INNER DIAMETER A1 = SHELL OUTER DIAMETER A2 = SPECTRAL INDEX A3 = POWER-LAW DENSITY INDEX A4 = REFERENCE GEOMETRICAL DEPTH PD_F_0 = F*(PD_NB_DENS_0/NB_DENS+PD_CENT_PATH_0/CENT_PATH) ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = F*(PD_NB_DENS_1/NB_DENS+PD_CENT_PATH_1/CENT_PATH) ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = F*PD_ABS_EFF_2/ABS_EFF ;PARTIAL DERIVATIVE W/RESPECT TO A2 PD_F_3 = F*PD_NB_DENS_3/NB_DENS ;PARTIAL DERIVATIVE W/RESPECT TO A3 PD_F_4 = -F/A4 ;PARTIAL DERIVATIVE W/RESPECT TO A4 LOCAL PROCEDURE CALLED: ABS_EFF CORE_PATH NB_DENS LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/10 last modification by pcr 2009/03/18 ----- Documentation for Model\core_path.pro ----- NAME: CORE_PATH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE GEOMETRICAL-THICKNESS RADIAL DISTRIBUTION IN CORE DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: CORE_PATH,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + IMPACT PARAMETER RELATIVE TO INNER DIAM (STRUCTURE). A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF THICKNESS AT EACH SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = ARRAY CONTAINING PARTIAL DERIVATIVE. PD_F(I,J) = DERIVATIVE AT ITH SIGHT ANGLE W/RESPECT TO JTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = A0*(R1-R0) WITH: R = XX.RIP = RELATIVE IMPACT PARAMETER A0 = SHELL INNER DIAMETER A1 = SHELL OUTER DIAMETER AA = A1/A0 R0 = SQRT(1-R^2) R1 = SQRT(AA^2-R^2) PD_F_0 = R1-R0-AA^2/R1 ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = AA/R1 ;PARTIAL DERIVATIVE W/RESPECT TO A1 LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/10 last modification by pcr 2008/12/28 ----- Documentation for Model\delta_ring.pro ----- NAME: DELTA_RING AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE "DELTA RING" FUNCTION AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE. CATEGORY: MODELLING. CALLING SEQUENCE: DELTA_RING,X,A,F,PD_F INPUTS:. X = VALUES OF INDEPENDENT VARIABLES (SPATIAL FREQUENCIES). A = PARAMETER OF EQUATION DESCRIBED BELOW (RING DIAMETER IN MAS). OUTPUTS: F = VALUE OF FUNCTION AT EACH X(I). OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH POINT W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = A*J0(PI*A*X) PD_F = J0(PI*A*X)-(PI*A*X)*J1(PI*A*X) LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: MAS2RADIAN REVISION HISTORY: Written by pcr 2006/09/18 last modification by pcr 2008/01/23 ----- Documentation for Model\engelke.pro ----- NAME: ENGELKE AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE "ENGELKE" (=MODIFIED PLANCK) SPECTRAL RADIANT EXITANCE AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE (ENGELKE, AJ 104, 1248 (1992)). CATEGORY: MODELLING. CALLING SEQUENCE: ENGELKE,X,A,F,PDER_F INPUTS:. X = ROW VALUES OF INDEPENDENT VARIABLES (WAVELENGTHS IN MU). A = PARAMETER OF EQUATION DESCRIBED BELOW (TEMPERATURE IN KELVIN). OUTPUTS: F = ROW VALUES OF FUNCTION (in W.m^-2.mu^-1). OPTIONAL OUTPUT PARAMETERS: PDER_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH POINT W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F=PI*C1/(X^5)/(EXP(C2/(X*B))-1) PDER_F=F*(C2/(X*B))/B/(1-EXP(-C2/(X*B)))*B/A*(1-C5*(C4/(X*A))/(1+(C4/(X*A)))) where B=(C3*A*(1+C4/(A*X))^C5 LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2007/01/03 last modification by pcr 2008/02/12 ----- Documentation for Model\gaussian_disk.pro ----- NAME: GAUSSIAN_DISK AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE "GAUSSIAN_DISK" FUNCTION AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE. CATEGORY: MODELLING. CALLING SEQUENCE: GAUSSIAN_DISK,X,A,F,PD_F INPUTS:. X = VALUES OF INDEPENDENT VARIABLES (SPATIAL FREQUENCIES). A = PARAMETER OF EQUATION DESCRIBED BELOW (DISK FWHM IN MAS). OUTPUTS: F = VALUE OF FUNCTION AT EACH X(I). OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH POINT W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = (A^2)/4/LN(2)*EXP(-((PI*A*X)^2)/4/LN(2)) PD_F = F*2/A*(1-((PI*A*X)^2)/4/LN(2)) LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: GAUSSIAN LOCAL SYSTEM VARIABLE USED: MAS2RADIAN REVISION HISTORY: Written by pcr 2006/09/18 last modification by pcr 2009/01/28 ----- Documentation for Model\inner_temp.pro ----- NAME: INNER_TEMP AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE DUST EFFECTIVE TEMPERATURE AT INNER BOUNDARY (THIN DUSTY SHELL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: INNER_TEMP,A,F,PD_F INPUTS: A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF FUNCTION. OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_F(K) = DERIVATIVE W/RESPECT TO KTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = A0*(1-MU)^(1/(A3+4)) WITH: A0 = STELLAR EFFECTIVE TEMPERATURE A1 = STELLAR DIAMETER A2 = SHELL INNER DIAMETER A3 = SPECTRAL INDEX MU = SQRT(1-(A1/A2)^2) PD_F_0 = F/A0 ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = F/(A3+4)*A1/A2^2/MU/(1-MU) ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = -F/(A3+4)*A1^2/A2^3/MU/(1-MU) ;PARTIAL DERIVATIVE W/RESPECT TO A2 PD_F_3 = -F/(A3+4)^2*LN(1-MU) ;PARTIAL DERIVATIVE W/RESPECT TO A3 LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/10 last modficiation by pcr 2008/02/12 ----- Documentation for Model\marcs_disk.pro ----- NAME: MARCS_DISK AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE TRAPEZOIDAL TRANSFER FUNCTION OF MARCS INTENSITY AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE. CATEGORY: MODELLING. CALLING SEQUENCE: MARCS_DISK,XX,A,FORI,F,PD_F INPUTS:. XX = ROW VECTOR OF SPATIAL FREQUENCIES (FOR A GIVEN BASELINE) OR FREQUENCIES + RELATIVE IMPACT PARAMETERS (STRUCTURE). A = PARAMETER VECTOR (WITH 1 ELEMENT = STELLAR DISK). FORI = FLUX OR INTENSITY VALUES (SAME DIMENSION AS XX). OUTPUTS: FF = VALUE OF FUNCTION AT EACH FREQUENCY. OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_FF(I,K) = DERIVATIVE AT ITH SPATIAL FREQUENCY W/RESPECT TO STELLAR DIAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: IF FORI=INTENSITY (AND FREQ=XX.WVL AND RIP=XX.RIP): FF = TRAPEZ_HANKEL(FREQ,A,RIP,FORI) PD_F = PD_TRAPEZ_HANKEL(FREQ,A,RIP,FORI) IF FORI=FLUX (AND FREQ=XX): FF = FORI*UNIFORM_DISK(FREQ,A) PD_F = FORI*PD_UNIFORM_DISK(FREQ,A) LOCAL PROCEDURE CALLED: TRAPEZ_HANKEL UNIFORM_DISK LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2007/12/03 last modification by pcr 2008/01/23 ----- Documentation for Model\model_data_funct.pro ----- NAME: MODEL_DATA_FUNCT AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE ANALYTICAL MODEL DATA FUNCTION (FLUX/VISI/BISP) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. NORMALLY, PROCEDURE USED BY LM_FIT TO FIT MODEL ON INTERFEROMETRIC CALIBRATED DATA. CATEGORY: MODELLING. CALLING SEQUENCE: MODEL_DATA_FUNCT,X,B,BWARR,PAR,MODEL,VIS,TEFF,REF,DID,FCT,PDER INPUTS: X = ROW VECTOR OR STRUCTURE OF INDEPENDENT VARIABLES (WAVELENGTH OR WAVELENGTH AND RELATIVE IMPACT PARAMETER). B = ROW COMPLEX VECTOR OF BASELINES (LENGTH/ANGLE). BWARR = 2-D ARRAY WITH # OF BASELENGTHS AND # OF WAVELENGTHS FOR EACH PART (DEFINED BY P2VM SETTING). BWARR(I,0) = # OF BASELENGTHS FOR PART I BWARR(I,1) = # OF WAVELENGTHS FOR PART I PAR = ROW VECTOR OF PARAMETERS OF EQUATION DESCRIBED BELOW. IDXF = ROW VECTOR OF UNFREEZE-PARAMETER INDEXES. MODEL = MODEL NUMBER FOR CALCULATION OF FCTION (AND PARTIAL DERIVATIVES). VIS = FLAG FOR VISIBILITY AND PARTIAL DERIVATIVES CALCULATION (0:FLUX/1:VISI), FOR BISPECTRUM/TRIPLE PRODUCT CALCULATION VIS=+/-TABLE. TEFF = EFFECTIVE TEMPERATURE USED WITH MARCS TABULATED FLUX/INTENSITY. REF = ROW VECTOR OF NB_LAMBDA REFERENCE FLUXES OR MATRIX OF NB_LAMBDA*(NB_LUMIN+1) INTENSITIES AND ROSS2LD RATIOS. OUTPUTS: PAR = ROW VECTOR OF PARAMETERS. DID = 2-DIM COMPLEX ARRAY WITH OPTICAL DEPTH AND INTENSITY OR FLAG (=1/0) FOR OPT.DEPTH BASED MODELS. FCT = ROW REAL(COMPLEX) VECTOR OF NB_FREQ=NB_LAMBDA*NB_BASE FCTION VALUES (OF NB_BISP=NB_LAMBDA*NB_BASE^3 BISP VALUES) OPTIONAL OUTPUT PARAMETERS: PDER = 2-D REAL(COMPLEX) ARRAY CONTAINING THE PARTIAL DERIVATIVES. PDER(I,J) = DERIVATIVE AT ITH SPATIAL FREQUENCY (OR ITH FREQ. TRIPLET) W/RESPECT TO JTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: X = WAVELENGTH VECTOR OR WAVELENGTH AND RELATIVE IMPACT PARAMETER STRUCTURE. B = COMPLEX BASELINE VECTOR (LENGTH/ANGLE). REF = REFERENCE FLUX VECTOR OR INTENSITY + DIAM RATIO ARRAY. IF VIS=0: FCT = ABS(SPEC). PDER = SIGN(SPEC)*PDSPEC. IF VIS=1: FCT = ABS(SPEC/SPEC0). PDER = SIGN(SPEC)*(PDSPEC/SPEC0-SPEC/SPEC0*PDSPEC0/SPEC0). IF VIS=TAB: FCT = SPEC1*CONJ(SPEC2)*SPEC3. PDER = PDSPEC1*CONJ(SPEC2)*SPEC3+SPEC1*CONJ(PDSPEC2)*SPEC3 +SPEC1*SPEC2*PDSPEC3. IF VIS=(-1)*TAB: FCT = (SPEC1/SPEC0)*CONJ(SPEC2/SPEC0)*(SPEC3/SPEC0). PDER = (PDSPEC1/SPEC0-SPEC1/SPEC0*PDSPEC0/SPEC0)*CONJ(SPEC2/SPEC0)*(SPEC3/SPEC0) + (SPEC1/SPEC0)*CONJ(PDSPEC2/SPEC0-SPEC2/SPEC0*PDSPEC0/SPEC0)*(SPEC3/SPEC0) + (SPEC1/SPEC0)*CONJ(SPEC2/SPEC0)*(PDSPEC3/SPEC0-SPEC3/SPEC0*PDSPEC0/SPEC0). WHERE: SPEC,SPEC0,SPEC1,SPEC2,SPEC3, AND PDSPEC,PDSPEC0,PDSPEC1,PDSPEC2,PDSPEC2, GIVEN BY MODEL_SPECTRUM AND INDEX OF TAB GIVEN BY MAKE_TAB3. COMMENTS: BASED ON FCT.PRO LOCAL PROCEDURE CALLED: MODEL_SPECTRUM LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLES USED: NB_BASE_STEP NB_RAD_MAX REVISION HISTORY: Written by pcr 2006/09/25 last modification by pcr 2010/08/25 ----- Documentation for Model\model_data_funct_proj.pro ----- NAME: MODEL_DATA_FUNCT_PROJ AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE ANALYTICAL MODEL PROJECTED DATA FUNCTION AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. NORMALLY, FUNCTION USED BY LM_FIT TO FIT MODEL ON INTERFEROMETRIC CALIBRATED DATA. CATEGORY: MODELLING. CALLING SEQUENCE: MODEL_DATA_FUNCT_PROJ,XX,BASE,BW_ARR,PARAM,INDEX_FREE, MODEL_NUMBER,VISI_FLAG,TEMP,REF_DATA,DEPTH_INTENS_DATA, PROJ_FUNCT,PROJ_PDER INPUTS: XX = ROW VECTOR OR STRUCTURE OF INDEPENDENT VARIABLES (WAVELENGTH OR WAVELENGTH AND RELATIVE IMPACT PARAMETER). BASE = ROW COMPLEX VECTOR OF BASELINES (LENGTH/ANGLE). BW_ARR = 2-D ARRAY WITH # OF BASELENGTHS AND # OF WAVELENGTHS FOR EACH PART (DEFINED BY P2VM SETTING). BW_ARR(I,0) = # OF BASELENGTHS FOR PART I BW_ARR(I,1) = # OF WAVELENGTHS FOR PART I PARAM = ROW VECTOR OF PARAMETERS OF EQUATION DESCRIBED BELOW. INDEX_FREE = ROW VECTOR OF FREE-PARAMETER INDEXES. MODEL_NUMBER = NBER OF MODEL USED FOR CALCULATION OF FUNCTION (AND PARTIAL DERIVATIVES). VISI_FLAG = FLAG FOR VISIBILITY AND PARTIAL DERIVATIVES CALCULATION (0:FLUX/1:VISI), FOR BISPECTRUM/TRIPLE PRODUCT CALCULATION VISI_FLAG=+/-TAB3. TEMP = EFFECTIVE TEMPERATURE USED WITH MARCS TABULATED FLUX/INTENSITY. REF_DATA = ROW VECTOR OF LENGTH(XX) REFERENCE FLUXES OR MATRIX OF LENGTH(XX.WVL)*(NB_LUMIN+1) REFERENCE INTENSITIES AND ROSS2LD RATIO. OUTPUTS: PARAM = ROW VECTOR OF PARAMETERS. DEPTH_INTENS_DATA = 2-DIM COMPLEX ARRAY WITH OPTICAL DEPTH AND INTENSITY OR FLAG (=1/0) FOR OPT.DEPTH BASED MODELS. PROJ_FUNCT = ROW VECTOR OF PROJECTED FUNCTION VALUES AT EACH PROJECTED FREQUENCY (OR PROJECTED WAVELENGTH IF NULL BASE) OPTIONAL OUTPUT PARAMETERS: PROJ_PDER = 2-D ARRAY CONTAINING PROJECTED PARTIAL DERIVATIVES PROJ_PDER(I,J) = PROJECTED DERIVATIVE AT ITH PROJECTED FREQUENCY/WAVELENGTH W/RESPECT TO JTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: PROJ_FUNCT = FUNCTPROJ(FUNCT) OR BISP_PROJ(FUNCT) PROJ_PDER = FUNCTPROJ(PDER) OR BISP_PROJ(PDER) WHERE: FUNCT AND PDER ARE GIVEN BY MODEL_DATA_FUNCT COMMENTS: BASED ON FUNCT.PRO LOCAL PROCEDURE CALLED: MODEL_DATA_FUNCT LOCAL FUNCTION USED: FUNCTPROJ BISP_PROJ LOCAL SYSTEM VARIABLE USED: EPSILON NB_BASE_STEP NB_DATA_MAX NB_RES_STEP MODIFICATION HISTORY: Written by pcr 2007/11/30 last modification by pcr 2010/08/25 ----- Documentation for Model\model_spectrum.pro ----- NAME: MODEL_SPECTRUM AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: PRINT PARAMETER SIGNIFICANCE AND VALUES, RETURN FLUX, CREATE PARAMETER SETS FOR TEST MODEL, AND CALCULATE OPTICAL DEPTH AND INTENSITY OR EVALUATE MODEL COMPLEX SPATIAL SPECTRUM FOR GIVEN COMPLEX BASELINE AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. PROCEDURE USED BY LM_FIT TO FIT MODEL TO INTERFEROMETRIC CALIBRATED DATA. CATEGORY: MODELLING. CALLING SEQUENCE: MODEL_SPECTRUM,A,MODEL,FLUX,ODEPTH,PRANGE,DIAM_INDEX,PTIT, XX,BASE,EM,SPEC,PDER_SPEC INPUTS: A = ROW VECTOR OF MODEL PARAMETERS OF EQUATION DESCRIBED BELOW. MODEL = USED-MODEL NUMBER. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS (VECTOR, IN MU) OR WAVELENGTHS + RELATIVE IMPACT PARAMETERS (STRUCTURE). BASE = COMPLEX BASELINE (LENGTH IN M / ANGLE IN DEG). EM = SPECTRAL EXITANCE OR SPECTRAL RADIANCE. OUTPUTS: A = ROW VECTOR OF MODEL PARAMETERS. FLUX = STELLAR FLUX FLAG (1 FOR BLACKBODY, 0 FOR ENGELKE, -1 FOR MARCS). ODEPTH = 2-DIM COMPLEX ARRAY WITH OPTICAL DEPTH AND INTENSITY OR FLAG (=1/0) FOR OPT.DEPTH BASED MODELS. PRANGE = 2-DIM ARRAY OF PARAMETER MIN AND MAX VALUES (SIZE=2*LENGTH(A)), USED WITH TEST_MODEL AND CREATE_DATA, OR EFFECTIVE TEMPERATURE USED WITH MARCS FLUX/INTENSITY TABULATED DATA. DIAM_INDEX = INDEX OF PARAMETER USED AS CENTRAL DIAMETER, USED WITH TEST_MODEL, CREATE_DATA AND FIT_MODEL. PSTRING = 2-DIM ARRAY OF PARAMETER NAME AND UNIT STRINGS (SIZE=2*LENGTH(A)), FOR PLOT OF PARAMETER AXIS TITLE. SPEC = COMPLEX VALUE OF SPATIAL SPECTRUM AT EACH SPATIAL FREQUENCY B/X (X = WAVELENGTH VECTOR). OPTIONAL OUTPUT PARAMETERS: PDER_SPEC = (NLAMBDA,NPARAM) COMPLEX ARRAY CONTAINING PARTIAL DERIVATIVES. SPEC_PDER(I,J) = DERIVATIVE AT ITH WAVELENGTH W/RESPECT TO JTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: CENTRAL_DEPTH = optical depth in the central direction (thin-shell model) CORE_DEPTH = optical depth in the core direction (thin-shell model) DELTA_RING(D) = delta ring Hankel transform of diameter D GAUSSIAN_DISK(W) = gaussian disk Hankel transform of full width at half maximum W ENGELKE(T) = Engelke exitance (modified Planck) with temperature T INNER_TEMP = dust effective temperature at the inner boundary (thin-shell model) PLANCK(T) = blackbody exitance (Planck) with surface temperature T SHELL_DEPTH = optical depth in the shell direction (thin-shell model) TRAPEZ_HANKEL(I) = trapezoidal Hankel transform of intensity I UNIFORM_DISK(D) = Hankel transform of uniform disk of diameter D ***************************************** SINGLE COMPONENT 1-D MODELS (MODEL<100): ***************************************** MODEL=1 (stellar disk with tabulated exitance/radiance) if P0 = spectral radiance: SPEC = TRAPEZ_HANKEL(A0,P0) if P0 = spectral exitance: SPEC = P0*UNIFORM_DISK(A0) where A0 = disk diameter MODEL=10 (single ud bb model) SPEC = PLANCK(A0)*UNIFORM_DISK(A1) where A0 = effective temperature A1 = disk diameter MODEL=11 (single gd bb) SPEC = PLANCK(A0)*GAUSSIAN_DISK(A1) where A0 = effective temperature A1 = disk fwhm MODEL=12 (single dr bb) SPEC = PLANCK(A0)*DELTA_RING(A1) where A0 = effective temperature A1 = ring diameter MODEL=13 (single ud Engelke model) SPEC = ENGELKE(A0)*UNIFORM_DISK(A1) where A0 = effective temperature A1 = disk diameter MODEL=20 (single ur bb) SPEC = PLANCK(A0)*(UNIFORM_DISK(A2)-UNIFORM_DISK(A1)) where A0 = effective temperature A1 = outer ring internal diameter A2 = outer ring external diameter MODEL=21 (single ud bb model, increas pow law of diam vs lambda) SPEC = PLANCK(A0)*UNIFORM_DISK(A1*X^A2) where A0 = effective temperature A1 = disk diameter @ 1 mu A2 = spectral index MODEL=51 (radiative-transfer analytical model, central direction) TRM = EXP(-CENTRAL_DEPTH(A)) = central transmittance if P0 = spectral radiance: SPEC = TRAPEZ_HANKEL(P0*TRM) if P0 = spectral exitance: SPEC = P0*TRAPEZ_HANKEL(TRM) where A0 = central source diameter A1 = shell inner diameter A2 = shell outer diameter A3 = spectral index A4 = grain density index A5 = reference geometrical thickness MODEL=52 (radiative-transfer analytical model, core direction) TRM = 1-EXP(-CORE_DEPTH(B)) = core transmittance SPEC = PLANCK(A0)*TRAPEZ_HANKEL(TRM) where A0 = dust temperature A1 = B0 = shell inner diameter A2 = B1 = shell outer diameter A3 = B2 = spectral index A4 = B3 = grain density index A5 = B4 = reference geometrical thickness MODEL=53 (radiative-transfer analytical model, shell direction) TRM = 1-EXP(-SHELL_DEPTH(B)) = shell transmittance SPEC = PLANCK(A0)*TRAPEZ_HANKEL(TRM) where A0 = dust temperature A1 = B0 = shell inner diameter A2 = B1 = shell outer diameter A3 = B2 = spectral index A4 = B3 = grain density index A5 = B4 = reference geometrical thickness MODEL=54 (radiative-transfer analytical model, core+shell directions) TRM1 = 1-EXP(-CORE_DEPTH(B)) = core transmittance TRM2 = 1-EXP(-SHELL_DEPTH_1(B)) = shell transmittance, inner direction (until inner diam A1) TRM3 = 1-EXP(-SHELL_DEPTH_2(B)) = shell transmittance, outer direction (until outer diam A2) SPEC = PLANCK(A0)*(TRAPEZ_HANKEL(TRM2)-TRAPEZ_HANKEL(TRM1)+TRAPEZ_HANKEL(TRM3)) where A0 = dust temperature A1 = B0 = shell inner diameter A2 = B1 = shell outer diameter A3 = B2 = spectral index A4 = B3 = grain density index A5 = B4 = reference geometrical thickness ********************************* COMPOSITE 1-D MODELS (MODEL>99): ********************************* MODEL=130 (stellar disk with tabulated exitance/radiance + 1 ud bb) if P0 = spectral radiance: SPEC = TRAPEZ_HANKEL(A0,P0)*EXP(-A3)+PLANCK(A1)*UNIFORM_DISK(A2)*(1-EXP(-A3)) if P0 = spectral exitance: SPEC = P0*UNIFORM_DISK(A0)*EXP(-A3)+PLANCK(A1)*UNIFORM_DISK(A2)*(1-EXP(-A3)) where A0 = disk diameter A1 = outer effective temperature A2 = outer diameter A3 = global optical depth MODEL=140 (2 ud bbs) SPEC = PLANCK(A0)*UNIFORM_DISK(A1)*EXP(-A4)+PLANCK(A2)*UNIFORM_DISK(A3)*(1-EXP(-A4)) where A0 = inner effective temperature A1 = inner diameter A2 = outer effective temperature A3 = outer diameter A4 = global optical depth MODEL=141 (1 ud bb + 1 gd bb) SPEC = PLANCK(A0)*UNIFORM_DISK(A1)*EXP(-A4))+PLANCK(A2)*GAUSSIAN_DISK(A3)*(1-EXP(-A4)) where A0 = inner effective temperature A1 = inner diameter A2 = outer effective temperature A3 = outer fwhm A4 = global optical depth MODEL=142 (stellar disk with tabulated exitance/radiance + 1 ud bb, decreas pow law of opt depth vs lambda) if P0 = spectral radiance: SPEC = TRAPEZ_HANKEL(A0,P0)*EXP(-(A3*X^(-A4)))+PLANCK(A1)*UNIFORM_DISK(A2)*(1-EXP(-(A3*X^(-A4)))) if P0 = spectral exitance: SPEC = P0*UNIFORM_DISK(A0)*EXP(-(A3*X^(-A4)))+PLANCK(A1)*UNIFORM_DISK(A2)*(1-EXP(-(A3*X^(-A4)))) where A0 = disk diameter A1 = outer effective temperature A2 = outer diameter A3 = global optical depth @ 1 mum A4 = spectral index MODEL=150 (1 ud bb + 1 ur bb) SPEC = PLANCK(A0)*UNIFORM_DISK(A1)*EXP(-A5)+PLANCK(A2)*(UNIFORM_DISK(A4)-UNIFORM_DISK(A3))*(1-EXP(-A5)) where A0 = inner effective temperature A1 = inner disk diameter A2 = outer effective temperature A3 = outer ring internal diameter A4 = outer ring external diameter A5 = global optical depth MODEL=151 (2 ud bbs, decreas pow law of opt depth vs lambda) SPEC = PLANCK(A0)*UNIFORM_DISK(A1)*EXP(-(A4*X^(-A5)))+PLANCK(A2)*UNIFORM_DISK(A3)*(1-EXP(-(A4*X^(-A5)))) where A0 = inner effective temperature A1 = inner diameter A2 = outer effective temperature A3 = outer diameter A4 = global optical depth @ 1 mum A5 = spectral index MODEL=152 (MARCS disk + dust thin shell = radiative-transfer full analytical model) T1 = INNER_TEMP(AA) TRM0 = EXP(-CENTRAL_DEPTH(A)) = central transmittance TRM1 = 1-EXP(-CORE_DEPTH_0(B)) = core transmittance, central direction (until stellar diam A0) TRM2 = 1-EXP(-CORE_DEPTH_1(B)) = core transmittance, inner direction (until inner diam A1) TRM3 = 1-EXP(-SHELL_DEPTH_1(B)) = shell transmittance, inner direction (until inner diam A1) TRM4 = 1-EXP(-SHELL_DEPTH_2(B)) = shell transmittance, outer direction (until outer diam A2) if P0 = spectral radiance: SPEC0 = TRAPEZ_HANKEL(P0*TRM0) if P0 = spectral exitance: SPEC0 = P0*TRAPEZ_HANKEL(TRM0) SPEC1 = TRAPEZ_HANKEL(TRM1) SPEC2 = TRAPEZ_HANKEL(TRM2) SPEC3 = TRAPEZ_HANKEL(TRM3) SPEC4 = TRAPEZ_HANKEL(TRM4) SPEC = SPEC0+PLANCK(T1)*(SPEC2-SPEC1+SPEC4-SPEC3) where T0 = AA0 = central source temperature (fixed, not a model parameter) A0 = AA1 = central source diameter A1 = AA2 = B0 = shell inner diameter A2 = B1 = shell outer diameter A3 = AA3 = B2 = spectral index A4 = B3 = grain density index A5 = B4 = reference geometrical thickness LOCAL PROCEDURE CALLED: CENTRAL_DEPTH CORE_DEPTH DELTA_RING ENGELKE GAUSSIAN_DISK INNER_TEMP MARCS_DISK PLANCK SHELL_DEPTH UNIFORM_DISK LOCAL FUNCTION USED: COSD SIND LOCAL SYSTEM VARIABLE USED: EPSILON MAS2RADIAN NB_CORE NB_MAX_PARAM NB_RES_STEP NB_SHELL NB_STAR OBS_PATH PARAM_REL_DIST REVISION HISTORY: Written by pcr 2006/09/16 last modification by pcr 2011/01/18 ----- Documentation for Model\nb_dens.pro ----- NAME: NB_DENS AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE RELATIVE NUMBER DENSITY AT OUTER BOUNDARY (THIN DUSTY SHELL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: NB_DENS,A,F,PD_F INPUTS:. A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF FUNCTION. OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE PD_F(K) = DERIVATIVE W/RESPECT TO KTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = (A1/A0)^A2 WITH: A0 = SHELL INNER DIAMETER A1 = SHELL OUTER DIAMETER A2 = POWER-LAW DENSITY INDEX PD_F_0 = -A2/A0*F ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = A2/A1*F ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = LN(A1/A0)*F ;PARTIAL DERIVATIVE W/RESPECT TO A2 LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/08 last modification by pcr 2008/02/12 ----- Documentation for Model\planck.pro ----- NAME: PLANCK AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE "PLANCK" (BLACK BODY) SPECTRAL RADIANT EXITANCE AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE. CATEGORY: MODELLING. CALLING SEQUENCE: PLANCK,X,A,F,PDER_F INPUTS:. X = ROW VALUES OF INDEPENDENT VARIABLES (WAVELENGTHS IN MU). A = PARAMETER OF EQUATION DESCRIBED BELOW (TEMPERATURE IN KELVIN). OUTPUTS: F = ROW VALUES OF FUNCTION (IN W.m^-2.mu^-1). OPTIONAL OUTPUT PARAMETERS: PDER_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PDER_F(I) = DERIVATIVE AT ITH POINT W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F=PI*C1/(X^5)/(EXP(C2/(X*A))-1) PDER_F=F*(C2/(X*A))/A/(1-EXP(-C2/(X*A))) LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2006/08/20 last modification by pcr 2008/02/12 ----- Documentation for Model\shell_depth.pro ----- NAME: SHELL_DEPTH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE OPTICAL DEPTH RADIAL DISTRIBUTION IN SHELL DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: SHELL_DEPTH,XX,A,F,PD_F INPUTS:. XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + IMPACT PARAMETER RELATIVE TO OUTER DIAM (STRUCTURE). A = ROW VECTOR OF PARAMETERS. OUTPUTS: F = VALUE OF FUNCTION AT EACH WAVELENGTH AND SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = ARRAY CONTAINING PARTIAL DERIVATIVE. PD_F(I,J,K) = DERIVATIVE AT ITH WAVELENGTH AND JTH SIGHT ANGLE W/RESPECT TO KTH PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = NB_DENS(A0,A1,A3)*ABS_EFF(A2)*SHELL_PATH(A1)/A4 WITH: NB_DENS = RELATIVE NUMBER DENSITY AT OUTER BOUNDARY = (A1/A0)^A3 ABS_EFF = WAVELENGTH DISTRIBUTION OF ABSORPTION EFFICIENCY = (1/X)^A2 SHELL_PATH = ANGULAR OPTICAL PATH IN SHELL DIRECTION = A1*SQRT(1-R^2) X = XX.WVL = WAVELENGTH R = XX.RIP = RELATIVE IMPACT PARAMETER A0 = SHELL INNER DIAMETER A1 = SHELL OUTER DIAMETER A2 = SPECTRAL INDEX A3 = POWER-LAW DENSITY INDEX A4 = REFERENCE GEOMETRICAL PATH PD_F_0 = F*PD_NB_DENS_0/NB_DENS ;PARTIAL DERIVATIVE W/RESPECT TO A0 PD_F_1 = F*(PD_NB_DENS_1/NB_DENS+PD_SHELL_PATH_1/SHELL_PATH) ;PARTIAL DERIVATIVE W/RESPECT TO A1 PD_F_2 = F*PD_ABS_EFF_2/ABS_EFF ;PARTIAL DERIVATIVE W/RESPECT TO A2 PD_F_3 = F*PD_NB_DENS_3/NB_DENS ;PARTIAL DERIVATIVE W/RESPECT TO A3 PD_F_4 = -F/A4 ;PARTIAL DERIVATIVE W/RESPECT TO A4 LOCAL PROCEDURE CALLED: ABS_EFF NB_DENS SHELL_PATH LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE MODIFICATION HISTORY: Written by pcr 2008/01/10 last modification by pcr 2009/03/18 ----- Documentation for Model\shell_path.pro ----- NAME: SHELL_PATH AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE GEOMETRICAL-THICKNESS RADIAL DISTRIBUTION IN SHELL DIRECTION (RADIATIVE-TRANSFER ANALYTICAL MODEL) AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVES. CATEGORY: MODELLING. CALLING SEQUENCE: SHELL_PATH,XX,A,F,PD_F INPUTS: XX = VALUES OF INDEPENDENT VARIABLES = WAVELENGTHS + IMPACT PARAMETER RELATIVE TO OUTER DIAM (STRUCTURE). A = PARAMETER. OUTPUTS: F = VALUE OF THICKNESS AT EACH SIGHT ANGLE. OPTIONAL OUTPUT PARAMETERS: PD_F = VECTOR CONTAINING PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH SIGHT ANGLE W/RESPECT TO PARAMETER. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: F = A*SQRT(1-R^2) WITH: R = XX.RIP = RELATIVE IMPACT PARAMETER A = SHELL OUTER DIAMETER PD_F = SQRT(1-R^2) ;PARTIAL DERIVATIVE W/RESPECT TO A LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: NONE REVISION HISTORY: Written by pcr 2008/01/10 last modification by pcr 2008/12/28 ----- Documentation for Model\uniform_disk.pro ----- NAME: UNIFORM_DISK AUTHOR: pierre.cruzalebes@oca.eu PURPOSE: EVALUATE "UNIFORM_DISK" FUNCTION AND OPTIONALLY RETURN VALUE OF PARTIAL DERIVATIVE. CATEGORY: MODELLING. CALLING SEQUENCE: UNIFORM_DISK,X,A,FCT,PD_FCT INPUTS:. X = VALUES OF INDEPENDENT VARIABLES (SPATIAL FREQUENCIES, IN RAD^-1). A = PARAMETER OF EQUATION DESCRIBED BELOW (DISK DIAMETER, IN MAS). OUTPUTS: FCT = VALUE OF FUNCTION AT EACH X(I). OPTIONAL OUTPUT PARAMETERS: PD_FCT = VECTOR CONTAINING THE PARTIAL DERIVATIVE. PD_F(I) = DERIVATIVE AT ITH POINT W/RESPECT TO A. COMMON BLOCKS: NONE. SIDE EFFECTS: NONE. RESTRICTIONS: NONE. PROCEDURE: FCT = (A^2)/4*2*J1(PI*A*X)/(PI*A*X) PD_FCT = (A/2)*J0(PI*A*X) LOCAL PROCEDURE CALLED: NONE LOCAL FUNCTION USED: NONE LOCAL SYSTEM VARIABLE USED: EPSILON MAS2RADIAN REVISION HISTORY: Written by pcr 2006/09/18 last modification by pcr 2011/01/13