dustem_create_functions.pro 1.16 KB
PRO dustem_create_functions,p_min,cont=cont,res=res

p_dim = p_min * (*(*!dustem_fit).param_init_values)

f=1
FOR i=0L,n_elements(p_min)-1 DO BEGIN
   IF ((*(*!dustem_fit).param_func)(i) NE 0.) THEN BEGIN
        ftn = strmid((*(*!dustem_fit).param_descs)(i), 0, strlen((*(*!dustem_fit).param_descs)(i))-2)
        tmp = (where(*(*!dustem_fit).param_func eq f, count))
        PDO_tmp = (*(*!dustem_fit).param_descs)(tmp)
        p_dim_tmp = p_dim(tmp)
        index = fltarr(count) & value = fltarr(count)
        FOR k=0, count-1 DO BEGIN
           index(k) = strmid(PDO_tmp(k),0,1,/REV )
           value(k) = p_dim_tmp(k)
        ENDFOR
        IF ftn EQ 'dustem_create_ionfrac' THEN BEGIN
           key_ionfrac=index
           val_ionfrac=value
        ENDIF
        IF ftn NE 'dustem_create_continuum' THEN BEGIN
           str='res='+ftn+'(key=index,val=value)'
           toto=execute(str)
           IF !dustem_verbose NE 0 THEN message,str,/info
        ENDIF ELSE BEGIN
           str='cont='+ftn+'(key=index,val=value)'
           toto=execute(str)
           IF !dustem_verbose NE 0 THEN message,str,/info
        ENDELSE
        f=f+1 & i=i+count-1
  ENDIF
ENDFOR

END