DustEMWrap Extended IDL Help

Last modified: Thu Apr 13 14:45:24 2023.


List of DustEMWrap Routines


Routine Descriptions

DSTMWRP_EXP

[Next Routine] [List of Routines]
 NAME:
   dstmwrp_exp
  
 PURPOSE:
   Returns formatted string for exponents in graphical output
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Plotting
  
 CALLING SEQUENCE:
    dstmwrp_exp, axis, index, number

 INPUTS:
    axis : deprecated but kept for backwards compatibility
    index : deprecated but kept for backwards compatibility
    number : value to be converted to exponential as formatted string  

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    exponential as formatted string 

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    expstr=dstmwrp_exp(axis, index, 15000.)

 MODIFICATION HISTORY:
    Written by IC
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dstmwrp_exp.pro)


DUSTEMWRAP_PLOT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustemwrap_plot

 PURPOSE:
    plots dustemwrap observed sed, predicted sed, predicted spectra for total intensity, polarization in emission and extinction

 CATEGORY:
    DustEMWrap, Distributed, Plotting, Mid-Level
  
 CALLING SEQUENCE:
    dustemwrap_plot,p_dim,st=st,dustem_sed=dustem_sed,SED_spec=SED_spec,dustem_qsed=dustem_qsed,Q_spec=Q_spec,dustem_used=dustem_used,U_spec=U_spec $
                  ,dustem_polsed,P_spec,dustem_polfrac,SP_spec,dustem_psi_em,PSI_spec $
                  ,dustem_ext,EXT_spec,dustem_qext,QEXT_spec,dustem_uext,UEXT_spec $
                  ,dustem_polext,POLEXT_spec,dustem_fpolext,SPEXT_spec,dustem_psi_ext,PSIEXT_spec $
                  ,_extra=_extra 

 INPUTS:
    p_dim

 OPTIONAL INPUT PARAMETERS:
    st             = dustem output structure 
    dustem_sed     = dustem predicted SED
    dustem_qsed    = dustem predicted StokesQ SED
    dustem_used    = dustem predicted StokesU SED
    dustem_polsed  = dustem predicted LargeP SED
    dustem_polfrac = dustem predicted smallP SED  
    dustem_psi_em  = dustem predicted PSI SED  
    dustem_ext     = dustem predicted EXT
    dustem_qext    = dustem predicted StokesQ EXT
    dustem_uext    = dustem predicted StokesU EXT 
    dustem_polext  = dustem predicted LargeP EXT
    dustem_fpolext = dustem predicted smallP EXT
    dustem_psi_ext = dustem prediced PSI EXT 
    SED_spec       = dustem predicted total emission spectrum (total = all-grain)
    Q_spec         = dustem precicted total StokesQ emission spectrum
    U_spec         = dustem predicted total Stokes U emission spectrum
    P_spec         = dustem predicted total LargeP emission spectrum
    SP_spec        = dustem predicted total smallP emission spectrum 
    PSI_spec       = dustem predicted total PSI emission spectrum
    EXT_spec       = dustem predicted total extinction spectrum
    QEXT_spec      = dustem predicted total StokesQ extinction spectrum
    UEXT_spec      = dustem predicted total StokesU extinction spectrum
    POLEXT_spec    = dustem predicted total LargeP extinction spectrum
    SPEXT_spec     = dustem predicted total smallP extinction spectrum  
    PSIEXT_spec    = dustem predicted total PSI extinction spectrum

 OUTPUTS:
    dustem_sed     = dustem predicted SED
    dustem_qsed    = dustem predicted StokesQ SED
    dustem_used    = dustem predicted StokesU SED
    dustem_polsed  = dustem predicted LargeP SED
    dustem_polfrac = dustem predicted smallP SED  
    dustem_psi_em  = dustem predicted PSI SED  
    dustem_ext     = dustem predicted EXT
    dustem_qext    = dustem predicted StokesQ EXT
    dustem_uext    = dustem predicted StokesU EXT 
    dustem_polext  = dustem predicted LargeP EXT
    dustem_fpolext = dustem predicted smallP EXT
    dustem_psi_ext = dustem prediced PSI EXT 
    SED_spec       = dustem predicted total emission spectrum
    Q_spec         = dustem precicted total StokesQ emission spectrum
    U_spec         = dustem predicted total Stokes U emission spectrum
    P_spec         = dustem predicted total LargeP emission spectrum
    SP_spec        = dustem predicted total smallP emission spectrum 
    PSI_spec       = dustem predicted total PSI emission spectrum
    EXT_spec       = dustem predicted total extinction spectrum
    QEXT_spec      = dustem predicted total StokesQ extinction spectrum
    UEXT_spec      = dustem predicted total StokesU extinction spectrum
    POLEXT_spec    = dustem predicted total LargeP extinction spectrum
    SPEXT_spec     = dustem predicted total smallP extinction spectrum  
    PSIEXT_spec    = dustem predicted total PSI extinction spectrum;

 OPTIONAL OUTPUT PARAMETERS:
    
 ACCEPTED KEY-WORDS:
    help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Generates plots!

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES:
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustemwrap_plot.pro)


DUSTEMWRAP_PLOT_NOOBJ

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustemwrap_plot_noobj
 PURPOSE:
    plots dustemwrap observed sed, predicted sed, predicted spectra for total Intensity, polarization in emission and extinction without OOP routines
 CATEGORY:
    DustEMWrap
 CALLING SEQUENCE:
    dustemwrap_plot_noobj,p_dim,st,dustem_sed,SED_spec,dustem_qsed,Q_spec,dustem_used,U_spec,dustem_polsed,P_spec,dustem_polfrac,SP_spec,dustem_psi_em,PSI_spec,dustem_ext,EXT_spec,dustem_qext,QEXT_spec,dustem_uext,UEXT_spec,dustem_polext,POLEXT_spec,dustem_fpolext,SPEXT_spec,dustem_psi_ext,PSIEXT_spec,_extra=_extra 
 INPUTS:
    p_dim         = dustemwrap free parameter values
 OPTIONAL INPUT PARAMETERS:
    st            = dustemwrap structure.
    dustem_sed
    dustem_qsed
    dustem_used
    dustem_polsed
    dustem_polfrac
    dustem_psi_em
    dustem_ext
    dustem_qext
    dustem_uext
    dustem_polext
    dustem_fpolext
    dustem_psi_ext
 OUTPUTS:
 OPTIONAL OUTPUT PARAMETERS:
    st              = currently returns dustemwrap structure if not provided as an entry.
    dustem_sed      = 
    dustem_qsed
    dustem_used
    dustem_polsed
    dustem_polfrac
    dustem_psi_em
    dustem_ext
    dustem_qext
    dustem_uext
    dustem_polext
    dustem_fpolext
    dustem_psi_ext
    SED_spec
    Q_spec
    U_spec
    P_spec
    SP_spec
    PSI_spec
    EXT_spec
    QEXT_spec
    UEXT_spec
    POLEXT_spec
    SPEXT_spec
    PSIEXT_spec
 ACCEPTED KEY-WORDS:
    help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    Does a plot
 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed
 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani
    Evolution details on the DustEMWrap gitlab.

(See src/idl/dustemwrap_plot_noobj.pro)


DUSTEM_ACTIVATE_PLUGINS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_activate_plugins

 PURPOSE:
    activates the plugins present in the parameter description vector (pd) and the fixed parameter description vector (fpd)

 CATEGORY:
    DustEMWrapp, Distributed, Mid-Level, Plugins

 CALLING SEQUENCE:
    dustem_activate_plugins,p_min[,st][,/help] 

 INPUTS:
    p_min = (parameter values)/(initial parameter values) 

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    st = Dustem output structure

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_activate_plugins, p_min ,st=st

 MODIFICATION HISTORY:
    Written by IC
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_activate_plugins.pro)


DUSTEM_CC

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_cc

 PURPOSE:
    Computes observed SED and color correction for a given spectrum in a given filter

 CATEGORY:
    DustEMWrap, Mid-Level, Distributed, Color corrections

 CALLING SEQUENCE:
    sed=dustem_cc(wave,spec,filter_names,cc=cc,fluxconv=fluxconv,help=help)

 INPUTS:
    wave: array of wavelengths for spec
    spec: spectrum (must be in brightness units)
    filter_names: names of filters for which color correction is
    needed
  
 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    sed: SED as observed in filters provided in filter_names

 OPTIONAL OUTPUT PARAMETERS:
    cc        = color correction coefficients (spec*cc=sed)

 ACCEPTED KEY-WORDS:
    fluxconv  = if set, these are taken for flux conventions
              possible values: 'nuInu=cste', 'FLAMBDA=cste', 'FLAMBDA=cste'
              , 'IRAC', 'MIPS', 'CMB', 'HFI', 'LABOCA', 'NIKA2'
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_cc.pro)


DUSTEM_CHECK_DATA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_check_data

 PURPOSE:
    Clean and modify the input DustEMWrap structure to meet the requirements of DustEMWrap. 
    This is important for the subsequent internal handling/fitting of data. 

 CATEGORY:
    DustEMWrap, Mid-Level, Distributed, Initialization

 CALLING SEQUENCE:
    dustem_check_data,data_sed,data_ext,sed=sed,ext=ext,polext=polext,polsed=polsed,polfrac=polfrac,psi_em=psi_em,qsed=qsed,used=used,qext=qext,uext=uext,psi_ext=psi_ext,fpolext=fpolext,[/help]

 INPUTS:
    data_sed : Emission DustEMWrap structure
    data_ext : Extinction DustEMWrap structure

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS: 
    sed : modified emission structure 
    ext : modified extinction structure
    polext : modified polarized extinction structure
    polsed : modified polarized emission structure 
    polfrac : modified fractional polarized emission structure
    psi_em  : modified emission polarization angle structure 
    qsed : modified StokesQ emission structure
    used : modified StokesU emission structure
    qext : modified StokesQ extinction structure
    uext : modified StokesU extinction structure
    psi_ext : modified extinction polarization angle structure
    fpolext : modified fractional extinction polarization structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_check_data,data_sed,data_ext,sed=sed,ext=ext,polext=polext,polsed=polsed,polfrac=polfrac,psi_em=psi_em,qsed=qsed,used=used,qext=qext,uext=uext,psi_ext=psi_ext,fpolext=fpolext,[/help]
    dustem_check_data,/help
 MODIFICATION HISTORY:
    Written IC 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.   
 COMMENTS:
    Might still need a bit of cleaning. I am unsure of the availability of covariance data in polarized extinction.
    Still regarding extinction, some of the error messages haven't been mirrored correctly with respect to the emission block.

(See src/idl/dustem_check_data.pro)


DUSTEM_COMPUTE_EXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_ext
  
 PURPOSE:
    Computes Extinction in units of optical depth for a given Dustem spectrum

 CATEGORY:
    DustEMWrap, Mid-level, Distributed

 CALLING SEQUENCE:
    ext=dustem_compute_ext(p_dim[,st=][,ext_spec=][,/help])
 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st        = Dustem output structure

 OUTPUTS:
    ext_spec  = computed EXT for spectrum points in !dustem_data 

 OPTIONAL OUTPUT PARAMETERS:
    st      = Dustem output structure
 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
  
 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.

(See src/idl/dustem_compute_ext.pro)


DUSTEM_COMPUTE_GB_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_gb_sed
 PURPOSE:
    Computes an SED for a modified blackbody 
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    sed=dustem_compute_sed(p_dim[,st=][,_extra=][,/help])
 INPUTS:
    p_dim      = [a0,a1,a2] modified blackbody parameter values
                 a0 -- normalisation
                 a1 -- dust temperature
                 a2 -- emissivity
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    sed       = computed SED for filters in !dustem_data.sed
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 PROCEDURE:
    None
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written JP Bernard  2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_gb_sed.pro)


DUSTEM_COMPUTE_GB_SED_FAST

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_gb_sed_fast

 PURPOSE:
    Computes an SED from a given Grey Body spectrum

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    sed=dustem_compute_sed(p_dim[,st=][,cont=][,_extra=][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    sed       = computed SED for filters in !dustem_data

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_gb_sed_fast.pro)


DUSTEM_COMPUTE_POLEXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_polext

 PURPOSE:
    Computes Polarized Extinction in units of optical depth for a given Dustem spectrum

 CATEGORY:
    Dustem, Distributed, 

 CALLING SEQUENCE:
    polext=dustem_compute_polext(p_dim[,st=][,polext_spec=][,spext_spec=][,dustem_fpolext=][,dustem_ext=][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st              = Dustem output structure
    dustem_ext      = Computed polarized extinction for spectrum points in !dustem_data

 OUTPUTS:
    polext       = computed Polarized Extinction for spectrum points in !dustem_data 

 OPTIONAL OUTPUT PARAMETERS:
    st          = Dustem output structure
    polext_spec = Dustem polarized extiction output 
    spext_spec  = Dustem polarized exinction fraction
    dustem_fpolext  = Computed polarized extinction fraction for spectrum points in !dustem_data 

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 MODIFICATION HISTORY:
    Written by JPB,NF,DP Jan-2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_polext.pro)


DUSTEM_COMPUTE_POLSED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_polsed

 PURPOSE:
    Computes a Polarized SED for a given Dustem spectrum

 CATEGORY:
    DustEMWrap, Mid-Level, Distributed

 CALLING SEQUENCE:
    sed=dustem_compute_polsed(p_dim[,st=][,P_spec=][,SP_spec=][,dustem_polfrac=][,dustem_sed=][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st        = Dustem structure
    dustem_sed = Computed emission for spectrum points in !dustem_data

 OUTPUTS:
    sed         = computed SED for filters in !dustem_data
    dustem_polsed = Computed polarized emission for spectrum points in !dustem_data
    P_spec        = Dustem polarized emission output 
    SP_spec       = Dustem polarized emission fraction
    dustem_polfrac = Computed polarization emission fraction for spectrum points in !dustem_data

 OPTIONAL OUTPUT PARAMETERS:
    st        = Dustem structure
    dustem_sed = Computed emission for spectrum points in !dustem_data

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_polsed.pro)


DUSTEM_COMPUTE_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_sed

 PURPOSE:
    Computes a SED for a given Dustem model

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    sed=dustem_compute_sed(p_dim[,st][,sed_spec][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st        = Dustem output structure

 OUTPUTS:
    sed       = computed SED for filters in !dustem_data

 OPTIONAL OUTPUT PARAMETERS:
    st      = dustem output structure
    sed_spec    = dustem emission spectrum

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2008
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_sed.pro)


DUSTEM_COMPUTE_STOKES

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_stokes

 PURPOSE:
    Computes Stokes Parmeters SEDs for a given Dustem spectrum

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    out=dustem_compute_stokes(p_dim[,st=][,Q_spec=][,U_spec=][,PSI_spec=][,dustem_psi_em=][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st        = Dustem structure

 OUTPUTS:
    out        = List Containing the Stokes parameters emission for spectrum points in !dustem_data 
    out[0]     = Computed Stokes Q emission for spectrum points in !dustem_data
    out[1]     = Computed Stokes U emission for spectrum points in !dustem_data 

 OPTIONAL OUTPUT PARAMETERS:
    st          = Dustem output structure
    Q_spec        = Dustem Stokes Q emission 
    U_spec        = Dustem Stokes U emission
    PSI_spec      = Dustem Polarization angle output in emission
    dustem_psi_em = Computed Polarization angle ouput for spectrum points in !dustem_data

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURES:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2021
    Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.

(See src/idl/dustem_compute_stokes.pro)


DUSTEM_COMPUTE_STOKEXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_compute_stokext

 PURPOSE:
    Computes Stokes Parameters for extinction in units of optical depth for a given Dustem spectrum

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    out=dustem_compute_stokext(p_dim[,st=][,QEXT_spec=QEXT_spec][,UEXT_spec=UEXT_spec][,PSIEXT_spec=PSIEXT_spec][,dustem_psi_ext=dustem_psi_ext][,/help])

 INPUTS:
    p_dim      = parameter values

 OPTIONAL INPUT PARAMETERS:
    st        = Dustem structure

 OUTPUTS:
    out        = List Containing the Stokes parameters extinction for spectrum points in !dustem_data 
    out[0]     = Computed Stokes Q extinction for spectrum points in !dustem_data
    out[1]     = Computed Stokes U extinction for spectrum points in !dustem_data 

 OPTIONAL OUTPUT PARAMETERS:
    st        = Dustem output structure
    QEXT_spec        = Dustem Stokes Q extinction 
    UEXT_spec        = Dustem Stokes U extinction
    PSIEXT_spec      = Dustem Polarization angle output in extinction
    dustem_psi_ext   = Computed Polarization angle ouput for spectrum points in !dustem_data

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_compute_stokext.pro)


DUSTEM_CREATE_IONFRAC

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_create_ionfrac
  
 PURPOSE:
   Calculates the neutral/positive/negative PAH fractions for a given
   temperature, density and grain size distribution and writes it to
   the appropriate .DAT file (according to !run_ionfrac). Deprecated
  
 CATEGORY:
    DustEMWrap, Distributed, MidLevel, Deprecated
  
 CALLING SEQUENCE:
   
 INPUTS:
  key --  (1) gas temperature and (2) n_elec
  val -- values corresponding to parameters passed by key
  other physical parameters taken from the dust model as specified in
  the grain structure, i.e. (*!dustem_params).grains
  
 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help = print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
  
 MODIFICATION HISTORY:
    Written by NF 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_create_ionfrac.pro)


DUSTEM_CREATE_RFIELD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_create_rfield
  
 PURPOSE:
   generates a file with the radiation field in format suitable for
   DUSTEM (ISRF.DAT). Units erg/cm2/s/Hz (4*!pi*I_nu)
   RFIELD = ISRF + WDIL*PI*BB(TEMP) '
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Helper
  
 CALLING SEQUENCE:
   mathis = DUSTEM_MATHIS_FIELD(x,unit=unit)

 INPUTS:
 TEMP -- blackbody temperature (can be an array). If 0 only ISRF.

  OPTIONAL INPUT PARAMETERS:
  X  --  wavelength -grid for the ISRF in microns. Default is 200 pts over 0.01-10^5 microns.
           (including WCUT point). You want to include WCUT for accurate edges.
 ISRF -- if set to 0 no ISRF is added, 1 is Mathis (default), 2 is Habing
 WDIL --  blackbody dilution factor (can be an array)
 FNAME -- filename for ISRF.DAT
 WCUT --- for wave < wcut radiation field is 0 

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:
     G0   -- factor flux(6-13.6eV) wrt. Mathis field
     CHI  -- scaling factor at 100nm wrt. Mathis field

 ACCEPTED KEY-WORDS:
    help = print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    tt = dustem_create_rfield([2d4,5d4],wdil=[1.d-14,1.d-16],x=x,fname='ISRF.DAT')
  
 MODIFICATION HISTORY:
    Written by LV 2009
    Initially distributed with the Fortran, incorporated into DustEMWrap 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_create_rfield.pro)


DUSTEM_CREATE_STEXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_create_stext

 PURPOSE:
    Produces stokes extinction parameters (cross sections / optical depths)

 CATEGORY:
    DUSTEM Wrapper, Plugin, Distributed

 CALLING SEQUENCE:
    dustem_create_stext(st,key=key,val=val)

 INPUTS:
    st (st = dustem_run(p_dim))

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value

 OUTPUTS:
    out = array containing the extinction stokes parameters

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    This is a dustem plugin
 EXAMPLES
    
 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.

(See src/idl/dustem_create_stext.pro)


DUSTEM_DATA_TAG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_data_tag
  
 PURPOSE:
   Returns index and optionally number of tags in !dustem_data system
   variable structure
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel
  
 CALLING SEQUENCE:
   idx = dustem_data_tag(count=ntags)

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    index of valid tags

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
   count = number of valid tags found

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    idx = dustem_data_tag(count=ntags)

 MODIFICATION HISTORY:
    Written by JPB
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_data_tag.pro)


DUSTEM_DEFINE_DUSTEM_DATA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_define_dustem_data
  
 PURPOSE:
   Returns data structure with appropriate tags (format depends on polarized vs non polarized run)
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel
  
 CALLING SEQUENCE:
   dustem_data = dustem_define_dustem_data([/pol],[rchi2=outvar])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    data structure with appropriate tags

 OPTIONAL OUTPUT PARAMETERS:
    structure with the same tags for the corresponding reduced chi2 weights
  
 ACCEPTED KEY-WORDS:

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    dustem_data = dustem_define_dustem_data(pol=1)

 MODIFICATION HISTORY:
    Written by JPB
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_define_dustem_data.pro)


DUSTEM_DEFINE_LA_COMMON

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_define_la_common

 PURPOSE:
   Defines common blocks needed by the la_ routines

 CATEGORY:
    DustEMWrap, Distributed, Low-Level, Initialization

 CALLING SEQUENCE:
   dustem_define_la_common

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
   None

 COMMON BLOCKS:
    ERROR_CURRENT; SESSION_MODE; STATUS_BOOL

 SIDE EFFECTS:
    Initializes common blocks

 RESTRICTIONS:
    None

 PROCEDURES AND SUBROUTINES USED:
    None

 EXAMPLES
    dustem_define_la_common

 MODIFICATION HISTORY:
    Written 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_define_la_common.pro)


DUSTEM_EXTRACT_SED_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_extract_sed_example  

 PURPOSE:
 This routine contains a simple example of how to extract an SED to use with DustEMWrap. 

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_extract_sed_example

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    None
  
 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    
 EXAMPLES

 MODIFICATION HISTORY:
    Written by JPB Jan 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_extract_sed_example.pro)


DUSTEM_FILL_EXT_DEPENDENT_COLUMNS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fill_ext_dependent_columns

 PURPOSE:
    fill up columns of a DustEMWrap EXT that are dependent on I,Q,U and associated (co-)variances

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User-convenience

 CALLING SEQUENCE:
    output=dustem_fill_ext_dependent_columns(ext[,/help])

 INPUTS:
    ext    : a valid DustEMWrap ext

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    filled_ext=dustem_fill_ext_dependent_columns(ext)

 MODIFICATION HISTORY:
    Written by AH Nov-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fill_ext_dependent_columns.pro)


DUSTEM_FILL_SED_DEPENDENT_COLUMNS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fill_sed_dependent_columns

 PURPOSE:
    fill up columns of a DustEMWrap SED that are depednent on I,Q,U and associated (co-)variances

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User-convenience

 CALLING SEQUENCE:
    output=dustem_fill_sed_dependent_columns(sed[,/help])

 INPUTS:
    sed    : a valid dustemwrap sed

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    filled_sed=dustem_fill_sed_dependent_columns(sed)

 MODIFICATION HISTORY:
    Written by JPB June-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fill_sed_dependent_columns.pro)


DUSTEM_FILTER2FILTER_FILENAME

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2filter_filename

 PURPOSE:
    Returns transmission file name given the filter name

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters

 CALLING SEQUENCE:
    filename=dustem_filter2filter_filename(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    filename = file name

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    restart   = If set, (re-)initialise DustEMWrap  

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2filter_filename(['MIRI1'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2filter_filename.pro)


DUSTEM_FILTER2FLUXCONV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2fluxconv

 PURPOSE:
    Returns flux convention given filter name

 CATEGORY:
    DustEMWrap, Low-level, Distributed, Filters

 CALLING SEQUENCE:
    flx_conv=dustem_filter2fluxconv(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    flx_conv = Flux convention string

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The dustem idl wrapper must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2fluxconv(['IRAS1','MIPS3'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard  2008
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2fluxconv.pro)


DUSTEM_FILTER2FREQ

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2freq

 PURPOSE:
    Returns reference frequency given filter name

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters, User-convenience

 CALLING SEQUENCE:
    freq=dustem_filter2freq(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    freq = reference frequency (GHz)

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Reads instrument_description.xcat at each call. Not optimal.

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2freq(['IRAS1','MIPS3'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2freq.pro)


DUSTEM_FILTER2INSTRU

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2instru

 PURPOSE:
    Returns instrument name given filter name

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters

 CALLING SEQUENCE:
    inst_name=dustem_filter2instru(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    inst_name = Instrument name

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2instru(['IRAS1','MIPS3'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2instru.pro)


DUSTEM_FILTER2NAME

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2name

 PURPOSE:
    Returns the instrument team's name for a given filter

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters, User-convenience

 CALLING SEQUENCE:
    filename=dustem_filter2name(filter[,/help][,/restart])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    filename = file name

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    restart   = If set, (re-)initialise DustEMWrap  

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2name(['MIRI1'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2name.pro)


DUSTEM_FILTER2RESO

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2reso

 PURPOSE:
    Returns the native resolution of an instrument in a given filter
    (if information is present in instrument_description.xcat file)

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters, User-convenience

 CALLING SEQUENCE:
    filename=dustem_filter2reso(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    filename = file name

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    restart   = If set, (re-)initialise DustEMWrap  

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2reso(['MIRI1'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2reso.pro)


DUSTEM_FILTER2WAV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter2wav

 PURPOSE:
    Returns reference wavelength given filter name

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters, User-convenience

 CALLING SEQUENCE:
    wave=dustem_filter2wav(filter[,/help])

 INPUTS:
    filter  = Filter name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    wave = reference wavelength (microns)

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Reads instrument_description.xcat at each call. Not optimal.

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_filter2wav(['IRAS1','MIPS3'])

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter2wav.pro)


DUSTEM_FILTER_INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_filter_init

 PURPOSE:
    Initializes the dustem filter structure (!dustem_filters)

 CATEGORY:
    DustEMWrap, Distributed, High-Level, Initialization

 CALLING SEQUENCE:
    dustem_filter_init[,/help]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    initializes !dustem_filters

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init
    dustem_filter_init

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_filter_init.pro)


DUSTEM_FIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit

 PURPOSE:
    Runs conjointly a fit on extinction, emission and polarization by extinction

 CATEGORY:
    DustEMWrap, Deprecated

 CALLING SEQUENCE:
    sed=dustem_fit([/noplot,/help])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    noplot : do not display figures

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES


 MODIFICATION HISTORY:
    Written by V. Guillet (2012)
    TLS added by D. Paradis.
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit.pro)


DUSTEM_FIT_EXT_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_ext_example  

 PURPOSE:
 This routine is an example of how to fit an observational extinction SED
 (StokesI only) with DustEM and DustEMWrap.
  
 See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_ext_example[,model=][ext_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose,/noobj]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    ext_file = string naming the path to text file in .xcat format that
          describes the observational extinction SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/Mathis90Fitz99_DISM_NH20.xcat' is used.  
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. 
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    

 EXAMPLES
    dustem_fit_ext_example
    dustem_fit_ext_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_ext_example,model='DBP90'

 MODIFICATION HISTORY:
    Written by AH Oct 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_ext_example.pro)


DUSTEM_FIT_EXT_POL_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_ext_pol_example  

 PURPOSE:
 This routine is an example of how to fit an observational extinction SED
 (StokesI,Q,U) with DustEM and DustEMWrap.
  
 See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_ext_pol_example[,model=][ext_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose,/noobj]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_init.pro for more details about
            available models.
    ext_file = string naming the path to text file in .xcat format that
          describes the observational extinction SED.
           If not set, the file
          'Data/EXAMPLE_OBSDATA/Mathis90Fitz99_DISM_NH20.xcat' is
          used to define the observational structure, and a synthetic
          observation is generated using the dust model.
    Nitermax = maximum number of fit iterations. Default is 5.
    postscript = if set, final plot is saved as postscript file
    fits_save = if set, save the fit results in a binary
               FITS file. 
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    

 EXAMPLES
    dustem_fit_ext_pol_example
    dustem_fit_ext_pol_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_ext_pol_example,model='G17_MODELD'

 MODIFICATION HISTORY:
    Written by JPB Apr-2021
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_ext_pol_example.pro)


DUSTEM_FIT_INTENSITY_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_intensity_example  

 PURPOSE:
 This routine is an example of how to fit an observational SED
 (StokesI only) with DustEM and DustEMWrap. The objective is to
 illustrate how to use DustEMWrap and not to do science -- the fit
 obtained by running this example is likely to be poor.
  
 For this example, the code uses the SED in the file example_SED_1.xcat,
 which is distributed in the Data/EXAMPLE_OBSDATA/ directory 

 The example SED has Stokes I photometric data points from
 IRAC, MIPS and IRAS. Examples illustrating running DustEMWrap to
 fit spectral data, polarisation data and extinction data
 are provided in other _example routines in the src/idl/
 directory. See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_intensity_example[,model=][sed_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. 
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    
 EXAMPLES
    dustem_fit_intensity_example
    dustem_fit_intensity_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_intensity_example,model='DBP90'

 MODIFICATION HISTORY:
    Written by JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_intensity_example.pro)


DUSTEM_FIT_INTENSITY_MBB_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_intensity_mbb_example  

 PURPOSE:
 This routine is an example of how to fit an observational SED
 (StokesI only) with DustEM and DustEMWrap.
  
 For this example, the code uses the SED in the file example_SED_1.xcat,
 which is distributed in the Data/EXAMPLE_OBSDATA/ directory 

 In addition, this example uses the plugin dustem_plugin_mbbdy.pro to
 fit the FIR part of the spectrum using a modified black-body rather
 than a physical ISM dust model for the big grain population.
  
 The example SED has Stokes I photometric data points from
 IRAC, MIPS and IRAS. Examples illustrating running DustEMWrap to
 fit spectral data, polarisation data and extinction data
 are provided in other _example routines in the src/idl/
 directory. See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_intensity_mbb_example[,model=][sed_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
    postscript = if set, final plot is saved as postscript 
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. 
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    

 EXAMPLES
    dustem_fit_intensity_mbb_example
    dustem_fit_intensity_mbb_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_intensity_mbb_example,model='DBP90'

 MODIFICATION HISTORY:
    Written by AH Apr-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_intensity_mbb_example.pro)


DUSTEM_FIT_POLARIZATION_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_polarization_example  

 PURPOSE:
    This is an example of how to fit observational SEDs (with
    measurements in Stokes IQU) using DustEMWrap.
    It is intended as an example to follow when writing your own
    programs to analyse data with DustEMWrap.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_polarization_example[,model=][sed_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, Results save structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_3.xcat' is used.  
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, saves results in a FITS file.
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_fit_polarization_example
    dustem_fit_polarization_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_polarization_example,model='DBP90'

 MODIFICATION HISTORY:
    Written by JPB Apr-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_polarization_example.pro)


DUSTEM_FIT_SED_EXT_POL_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_sed_ext_pol_example  

 PURPOSE: This routine is an example of how to fit an observational
 data in emission + extinction SED (StokesI,Q,U) with DustEM and
 DustEMWrap.
  
 See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_sed_ext_pol_example[,model=][sed_file=][ext_file=][postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose,/noobj]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_2.xcat' is used.  
    ext_file = string naming the path to text file in .xcat format that
          describes the observational extinction SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/Mathis90Fitz99_DISM_NH20.xcat' is used.  
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. The code then restore this file and plots
               the results using the saved results information.
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_fit_sed_ext_pol_example
    dustem_fit_sed_ext_pol_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_sed_ext_pol_example,model='G17_MODELC'

 MODIFICATION HISTORY:
    Written by JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_sed_ext_pol_example.pro)


DUSTEM_FIT_SED_EXT_STOKESI_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_sed_ext_stokesi_example  

 PURPOSE: This routine is an example of how to fit an observational
 data in emission + extinction SED (StokesI only) with DustEM and
 DustEMWrap.
  
 See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_sed_ext_stokesi_example[,model=][sed_file=][ext_file=][postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose,/noobj]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current
            release. Default for this example is J13.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_3.xcat' is used to
          identify the filters, and the model is used to generate a
          predicted SED.  
    ext_file = string naming the path to text file in .xcat format that
          describes the observational extinction SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/Mathis90Fitz99_DISM_NH20.xcat' is
          used to identify the wavelength range, and the dust model
          is used to generate the corresponding extinction. 
    Nitermax = maximum number of fit iterations. Default is 5.
    postscript = if set, final plot is saved as postscript file
    fits_save = if set, save the fit results in a binary
               FITS file. 
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_fit_sed_ext_stokesi_example
    dustem_fit_sed_ext_stokesi_example,Nitermax=1,fits_save='/tmp/mysavefile.fits'
    dustem_fit_sed_ext_stokesi_example,model='MC10'

 MODIFICATION HISTORY:
    Written by JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_sed_ext_stokesi_example.pro)


DUSTEM_FIT_SPECTRO_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_fit_spectro_example  

 PURPOSE:
  This routine is an example of how to fit spectrometer data in
  emission (StokesI only) with DustEM and DustEMWrap.
  
 See the DustEMWrap User Guide for more information.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_spectro_example[,model=][sed_file=][ext_file=][postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose,/noobj]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_2.xcat' is used.  
    Nitermax = maximum number of fit iterations. Default is 5.
    ucfactor = Multiplicative factor for uncertainties on
               spectrometer data. Default is 1.
    fits_save = if set, save the fit results in a binary
               FITS file.
    postscript = if set, final plot is saved as postscript file
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_fit_spectro_example
    dustem_fit_spectro_example,Nitermax=10,fits_save='/tmp/mysavefile.fits'
    dustem_fit_spectro_example,model='DBP90'

 MODIFICATION HISTORY:
    Written by AH Oct 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_fit_spectro_example.pro)


DUSTEM_GB_PLOT_FIT_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_gb_plot_fit_sed
 PURPOSE:
    Plots a model and SED. Parameter values and error are
    printed on plot. Used for plotting results during fit.
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_gb_plot_fit_sed,ww,spec,sed[,/no_spec_error][,res=][,errors=][,chi2=][,rchi2=][/help][_extra=]
 INPUTS:
    ww        = wavelengths for spec (micron)
    spec      = Model spectrum
    sed       = SED corresponding to the model
 OPTIONAL INPUT PARAMETERS:
    res       = fit result values. If set values are written on plot.
    errors    = fit result errors. If set values are written on plot.
    chi2      = fit chi^2. if set value is written on plot.
    rchi2     = Reduced fit chi^2. if set value is written on plot.
    _extra    = extra parameters for the plot routine
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    SED and model are plotted
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    dustem_gb_plot_fit_sed,ww,spec,sed
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_gb_plot_fit_sed.pro)


DUSTEM_GET_WAVELENGTHS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_get_wavelengths
 PURPOSE:
    returns the wavelengths used for dustemwrap spectra. (Are they the same for emission and extinction ?)
 CATEGORY:
    DUSTEM Wrapper
 CALLING SEQUENCE:
    wavelengths=dustem_get_wavelengths([/help])
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    wavelengths = set of wavelengths [mic]
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    None
 PROCEDURE:
    
 EXAMPLES

 MODIFICATION HISTORY:
    Written by JPB 

(See src/idl/dustem_get_wavelengths.pro)


DUSTEM_GRAINS_COLORS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_grains_colors
  
 PURPOSE:
   Returns color information for representing different grain
   populations in graphical output
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Plotting
  
 CALLING SEQUENCE:
   cols=dustem_grains_colors(Ngrains,ls_outvar,[/ps,/cgplot])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    colors
    ls = linestyles  

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
   ps = color information for output as a postscript file
   cgplot = color informatin for output using cg_ routines

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    cols=dustem_grains_colors(3,ls,/cgplot)

 MODIFICATION HISTORY:
    Written by JPB
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_grains_colors.pro)


DUSTEM_GREYBODY_MPFIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_greybody_mpfit
 PURPOSE:
    function used to fit greybody with dustem_mpfit_sed
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    res=dustem_greybody_mpfit(x,params[,_EXTRA=extra][,cc_sed=cc_sed][,/help])
 INPUTS:
    x         = necessary for interface but unused
    params    = Model parameters normalized to initial values ([amplitude,T,beta])
 OPTIONAL INPUT PARAMETERS:
    cc_sed    = SED color correction factors
    _extra    = extra parameters for the plot routine
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    SED and model are plotted if !dustem_show_plot
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    res=dustem_greybody_mpfit(x,params[,_EXTRA=extra][,cc_sed=cc_sed][,/help])
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_greybody_mpfit.pro)


DUSTEM_HABING_FIELD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_habing_field
  
 PURPOSE:
   Returns the Habing interstellar radiation field SED (ISRF)
   in W/m2 (4*!pi*nu*I_nu)
   (from Draine & Bertoldi 1996)

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Helper
  
 CALLING SEQUENCE:
   habing = DUSTEM_HABING_FIELD(x,unit=unit)

 INPUTS:
    x : wavelength grid for the ISRF (1D array)

 OPTIONAL INPUT PARAMETERS:
    UNIT: unit of the ISRF. Choices are 
	     'W': wave in um [Default]
	     'F': frequency in cm-1
	     'E': energy in eV

 OUTPUTS:
    ISRF : the Habing isrf as 1d vector in requested units

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help = print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
      wavs=3.+findgen(3000) ; wavelenghts 3 to 3003um
      isrf = DUSTEM_HABING_FIELD(wavs,unit='W')

 MODIFICATION HISTORY:
    Written by LV 2009
    Initially distributed with the Fortran, incorporated into DustEMWrap 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_habing_field.pro)


DUSTEM_INIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_init
  
 PURPOSE:
   Defines system variables to run the DUSTEM code
  
 CATEGORY:
    DustEMWrap, Distributed, HighLevel, Initialization
  
 CALLING SEQUENCE:
   dustem_init,model=model,

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    ;   st_model

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
   wraptest       = test running dustem f90 through the wrapper
   plot_it        = plots result of wraptest (ignored if wraptest not set)
   help           = if set, print this help
   verbose        = if set, output code diagnostic info (default OFF)
   polarization   = set this variables for runs taking polarization into account
   noerase        : set this keyword to not erase the temporary DAT files used by DustEMWrap
   noobj          : set this keyword to turn off object-oriented
                    graphical output when using IDL. Object-oriented
                    graphics are OFF by default for GDL and Fawlty.
   grain_keywords : Fortran grain keywords. Must be an array of Ngrains strings. Use '?' to keep default values.

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    1/ The following system variables are initialized to null values
	or empty pointers:
       !dustem_fit
       !dustem_data
       !dustem_inputs
       !dustem_params
       !run_ionfrac
       !dustem_idl_continuum
       !dustem_filters
       !dustem_verbose
       !dustem_show_plot
    2/ optionally runs the fortran code (if wraptest)
       This step calls the Fortran code to run a standard model
    3/ !dustem_filters is initialized calling dustem_filter_init.pro.

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
    dustem_init,model="MC10",/wrap,/plot_it

 MODIFICATION HISTORY:
    Written by JPB,NF,DP Jan-2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_init.pro)


DUSTEM_INITIALIZE_EXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_initialize_ext

 PURPOSE:
    Initializes an empty Dustem EXT structure

 CATEGORY:
    DUSTEM Wrapper, Distribued, Low-Level

 CALLING SEQUENCE:
    st=dustem_initialize_ext(Next[,/help])

 INPUTS:
    Next: Number of elements/filters in the EXT structure

 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    st = EXT structure
    The structure contains the following tags
      instru  : name of the instrument. Actually not used by DustemWrap.
      filter  : name of the filter. Actually defines the wavelength, the flux convention, etc ...
      wave    : wavelength in microns. Actually not used by DustemWrap. [microns]
      EXT_I   : Total Extinction Cross-section (a.k.a. Ext_I) [cm^2/H]
      EXT_Q   : Q Extinction Cross-section [cm^2/H]
      EXT_U   : U Extintion Cross-section  [cm^2/H]
      EXT_P   : P Extinction Cross-section [cm^2/H] (computed from EXT_Q,EXT_U or directly from VG's models)
      EXT_smallp  : Smallp Extinction Cross-section (Extinction polarization fraction) []
      psi     : polarization angle [deg] (computed from EXT_Q,EXT_U)
      sigextII : = error^2 (for completness on sigmas) [cm^2/H^2]
      sigextQQ : variance on Q [cm^2/H^2]
      sigextUU : variance on U [cm^2/H^2]
      sigextIQ : IQ covariance [cm^2/H^2]
      sigextIU : IU covariance [cm^2/H^2]
      sigextQU : QU covariance [cm^2/H^2]
      sigextP : uncertainty on largep [cm^2/H]
      sigextsmallp = uncertainty on smallp [] 
      sigextpsi  : uncertainty on psi [deg]

 OPTIONAL OUTPUT PARAMETERS:
    comments : string comments about the EXT SED

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    None

 PROCEDURE:
    Straightforward

 EXAMPLES
    st=dustem_initialize_ext(10)
    help,st

 MODIFICATION HISTORY:
    Written by JPB 2009
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_initialize_ext.pro)


DUSTEM_INITIALIZE_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_initialize_sed

 PURPOSE:
    Initializes an empty DustEMWrapper SED structure

 CATEGORY:
    DustEMWrapper, Distributed, Lowlevel

 CALLING SEQUENCE:
    st=dustem_initialize_sed(Nsed[,/help])

 INPUTS:
    Nsed: Number of elements/filters in the SED structure

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st = SED structure
    The structure contains the following tags
      instru  : name of the instrument. Actually not used by DustemWrap.
      filter  : name of the filter. Actually defines the wavelength, the flux convention, etc ...
      wave    : wavelength in microns. Actually not used by DustemWrap. [microns]
      spec    : Total intensity Intensity (a.k.a. Stokes I) [MJy/sr]
      StokesQ : Stokes Q intensity [MJy/sr]
      StokesU : Stokes U intensity [MJy/sr]
      largeP  : polarized intensity [MJy/sr] (computed from StokesQ,StokesU)
      smallp  : polarization fraction [] (computed from StokesI, StokesQ,StokesU)
      psi     : polarization angle [deg] (computed from StokesQ,StokesU)
      sigmaII : = error^2 (for completness on sigmas) [MJy/sr^2]
      sigmaQQ : variance on Q [MJy/sr^2]
      sigmaUU : variance on U [MJy/sr^2]
      sigmaIQ : IQ covariance [MJy/sr^2]
      sigmaIU : IU covariance [MJy/sr^2]
      sigmaQU : QU covariance [MJy/sr^2]
      sigma_largep : uncertainty on largep [MJy/sr]
      sigma_smallp: uncertainty on smallp []
      sigma_psi  : uncertainty on psi [deg]

 OPTIONAL OUTPUT PARAMETERS:
    comments : string comments about the SED

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    None

 PROCEDURE:
    Straightforward

 EXAMPLES
    st=dustem_initialize_sed(10)
    help,st

 MODIFICATION HISTORY:
    Written by JPB 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_initialize_sed.pro)


DUSTEM_INIT_FIXED_PARAMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_init_fixed_params

 PURPOSE:
 This routine updates the fixed parameters of both the
 dust models and plugins in the input files
  
 CATEGORY:
    DustEMWrap, Distributed, Low-Level, Initialization

 CALLING SEQUENCE:
    dustem_init_params, pd, iv, [,fpd=fpd,fiv=fiv,ulimed=ulimed,llimed=llimed,ulims=ulims,lolims=llims,tied=tied,fixed=fixed]
  
 INPUTS:
    model -- the dust model
    pd -- the parameter description vector
    iv -- the initial values of the free parameters 

 OPTIONAL INPUT PARAMETERS:
    

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by DustEM
           'MC10' model from Compiegne et al 2010 (default)
           'DBP90' model from Desert et al 1990
           'DL01' model from Draine & Li 2001
           'WD01_RV5p5B' model from Weingartner & Draine 2002 with Rv=5.5
           'DL07' model from Draine & Li 2007
           'J13' model from Jones et al 2013, as updated in
                 Koehler et al 2014
           'G17_ModelA' model A from Guillet et al (2018). Includes
                 polarisation. See Tables 2 and 3 of that paper for details.
           'G17_ModelB' model B from Guillet et al (2018)
           'G17_ModelC' model C from Guillet et al (2018)
           'G17_ModelD' model A from Guillet et al (2018)
    help      = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
   dustem_init_parinfo
   dustem_init_plugins
   dustem_init_fixed_params
  
 EXAMPLES

 MODIFICATION HISTORY:
    Written by AH October-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_init_fixed_params.pro)


DUSTEM_INIT_PARAMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_init_params

 PURPOSE:
 This routine initialises the free and fixed parameters of both the
 dust models and plugins. It does some basic sanity checking.
  
 CATEGORY:
    DustEMWrap, Distributed, Mid-Level, Initialization

 CALLING SEQUENCE:
    dustem_init_params, model, pd, iv, [,fpd=fpd,fiv=fiv,ulimed=ulimed,llimed=llimed,ulims=ulims,lolims=llims,tied=tied,fixed=fixed]
  
 INPUTS:
    model -- the dust model
    pd -- the parameter description vector
    iv -- the initial values of the free parameters 

 OPTIONAL INPUT PARAMETERS:
    fpd -- the fixed parameter description vector
    fiv -- the initial values of the fixed parameters 
    ulimed -- flag 1/0 if upper limits ON/OFF
    llimed -- flag 1/0 if lower limits ON/OFF
    ulims -- upper limit values
    llims -- lower limit values




 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    polarization = assume dustem is running in polarization mode
    help      = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
   dustem_init_parinfo
   dustem_init_plugins
   dustem_init_fixed_params
  
 EXAMPLES

 MODIFICATION HISTORY:
    Written by AH October-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_init_params.pro)


DUSTEM_INIT_PARINFO

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_init_parinfo

 PURPOSE:

 CATEGORY:
    DustEMWrap, Distributed, Low-Level, Initialization

 CALLING SEQUENCE:
    dustem_init_parinfo
  
 INPUTS:

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    
 EXAMPLES

 MODIFICATION HISTORY:
    Written by 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_init_parinfo.pro)


DUSTEM_INIT_PLUGINS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_init_plugins
 PURPOSE:
    initializes variable !dustem_plugin
 CATEGORY:
    DustEMWrap
 CALLING SEQUENCE:
    dustem_init_plugins,pd,[fpd=fpd,help=help]
 INPUTS:
    pd : variable parameters description
 OPTIONAL INPUT PARAMETERS:
    fpd : fixed parameters description
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    !dustem_plugin is set
 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed
 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani
    Evolution details on the DustEMWrap gitlab.

(See src/idl/dustem_init_plugins.pro)


DUSTEM_INSTRU2FILTERS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_instru2filters

 PURPOSE:
    Returns the filters of a given instrument known to DustEMWrap as
    an array of strings

 CATEGORY:
    DustEMWrap, Low-Level, Distributed, Filters, User-convenience

 CALLING SEQUENCE:
    filters=dustem_instru2filters(instru)

 INPUTS:
    instru  = Instrument name

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    filters = filters of the instruments as an array of strings

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    print,dustem_instru2filter('AKARI')

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see Evolution details on the DustEMWrap gitlab
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_instru2filters.pro)


DUSTEM_MAKE_FITS_PREDICTED_EXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_make_fits_predicted_ext
  
 PURPOSE:
    extracts dustemwrap predicted extinction SED from dustem system variable syst_var, to be put into fits files

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Convenience

 CALLING SEQUENCE:
    str_predicted_EXT=dustem_make_fits_predicted_ext(syst_var,dustem_predicted_ext[,str_input_ext=])
    see dustem_write_fits_table.pro

 INPUTS:
    syst_var  : dustem system variable (*!dustem_data or *!dustem_show)
    dustem_predicted_ext : dustemwrap predicted extinction SED as output by dustem_compute_ext.pro

 OPTIONAL INPUT PARAMETERS:
    dustem_predicted_Qext : Stokes Q extinction SED
    dustem_predicted_Uext : Stokes U extinction SED

 OUTPUTS:
    str_predicted_EXT : dustemwrap predicted extinction SED as used to store into fits file

 OPTIONAL OUTPUT PARAMETERS:
    str_input_ext : dustem wrap input extinction SED

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES:
    str_predicted_EXT=dustem_make_fits_predicted_ext(*!dustem_data,dustem_predicted_ext,str_input_ext=str_input_ext)

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard Dec 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_make_fits_predicted_ext.pro)


DUSTEM_MAKE_FITS_PREDICTED_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_make_fits_predicted_sed
 PURPOSE:
    extracts dustemwrap predicted SED from dustem system variable syst_var, to be put into fits files
 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Convenience
 CALLING SEQUENCE:
    str_predicted_SED=dustem_make_fits_predicted_sed(syst_var,dustem_predicted_sed[,str_input_sed=])
    see dustem_write_fits_table.pro
 INPUTS:
    syst_var  : dustem system variable (*!dustem_data or *!dustem_show)
    what      = which tag of syst_var must be treated (can be sed, qsed, used, ...)
    dustem_predicted_sed : dustemwrap predicted SED as output by dustem_compute_sed.pro
 OPTIONAL INPUT PARAMETERS:
    dustem_predicted_Qsed : Stokes Q SED
    dustem_predicted_Used : Stokes U SED
 OUTPUTS:
    str_predicted_SED : dustemwrap predicted SED as used to store into fits file
 OPTIONAL OUTPUT PARAMETERS:
    str_input_sed : dustem wrap input SED
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 PROCEDURE:
    None
 EXAMPLES:
    str_predicted_SED=dustem_make_fits_predicted_sed(*!dustem_data,dustem_predicted_sed,str_input_sed=str_input_sed)
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard Dec 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_make_fits_predicted_sed.pro)


DUSTEM_MAKE_POLARIZATION_EXT_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_make_polarization_ext_example

 PURPOSE:
    This is an example of how to generate an extinction curve (Stokes
    IQU) using one of the physical dust models in DustEMWrap.
    It is meant to be an example to follow when writing your own
    programs using DustEMWrap

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_make_polarization_ext_example[,model=][,filters=][,/help]

 INPUTS:
    wave = wavelength range specified as [minwave,maxwave] in microns over which
           to construct the extinction curve. The resulting curve
           will be defined on the vector :
           wave_vector=10^(alog10(wave[0])+alog10(wave[1])*findgen(Next)/float(Next))
           default is [0.01,50]
    Next = number of measurements in the extinction curve. Default is 100.

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    outfile = path+filename for .xcat output of the EXT

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    help      = If set print this help
    verbose      = If set, subroutines will be more chatty

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_make_polarization_ext_example
    dustem_make_polarization_ext_example,model='G17_MODELC',outfile='my_polarized_ext.xcat'

 MODIFICATION HISTORY:
    Written by AH Nov-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_make_polarization_ext_example.pro)


DUSTEM_MAKE_POLARIZATION_SED_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_make_polarization_sed_example

 PURPOSE:
    This is an example of how to generate an SED (StokesIQU) using DustEMWrap.
    It is meant to be an example to follow when writing your own
    programs using DustEMWrap

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_make_polarization_sed_example[,model=][,filters=][,/help]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    filters = instrument bands for which SED is created. Default is
    ['IRAS1','IRAS2','IRAS3','IRAS4','PACS3','SPIRE1','SPIRE2','SPIRE3','HFI2','HFI3','HFI4','HFI5','HFI6','LFI1','LFI2','LFI3']

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    outfile = path+filename for .xcat output of the SED. Default is './polarization_sed.xcat'

 ACCEPTED KEY-WORDS:
    model     = if set, name of the DustEM dust model to use (default='G17_MODELD')
    help      = If set print this help
    verbose      = If set, subroutines will be more chatty

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_make_polarization_sed_example
    dustem_make_polarization_sed_example,model='G17_MODELA',outfile='mysed.xcat'

 MODIFICATION HISTORY:
    Written by JPB June-2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_make_polarization_sed_example.pro)


DUSTEM_MASK_DATA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_mask_data
 PURPOSE:
    Set dataset values to la_undef() for specified filter/spectrum data in an input DustEmWrap data structure.
 CATEGORY:
    DUSTEM Wrapper
 CALLING SEQUENCE:
    data_struct=dustem_mask_data(data_struct,filters,data_set=,/default)
 INPUTS:
    data_struct : SED Data structure following the format explained in the DustermWrap Users' Guide

    filters : Can be an array or list. In both cases it should contain the filter names as character strings. 
    ie: filters=['SPIRE1','SPIRE2'] for an array or filters=list(['SPIRE2','SPIRE1','PACS2'],['HFI5','HFI4']) for a list.
    When using a list, its shape (dimension) and the number of elements of the data_set array should be equal.
    Each dimension is an array of filters to be removed from the corresponding data set in the data_set array.
    ie: filters=list(['SPIRE2','SPIRE1','PACS2'],['LFI2','LFI3']) for datas_set=['STOKESI','STOKESQ']
 OPTIONAL INPUT PARAMETERS:
    data_set : Array of character strings containing the different data sets to be filtered.
    ie: ['STOKESI','STOKESQ','STOKESU'] or just ['STOKESQ'] for example.
 OUTPUTS:
    data_struct 
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

    default               = if set, remove targeted filter/spectrum point(s) from datasets that depend on the filtered dataset(s).
 EAMPLE
    masked_structure = dustem_mask_data(data_struct,['IRAS1','IRAS2'],data_set=['STOKESI'])  
 COMMENTS
    IC:
    If a wavelength value is supplied instead of a filter name, the procedure masks for a spectrum point with that corresponding wavelength
    If the dataset array isn't supplied, all the datasets in the input data structure will be considered.
    If both filters and dataset are arrays, all mentioned filters will be masked from all mentioned datasets.
    This procedure does not change the shape of the output structure partly because dustem_check_data.pro does.
 MODIFICATION HISTORY:
    Written by IC 2022

(See src/idl/dustem_mask_data.pro)


DUSTEM_MATHIS_FIELD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_mathis_field
  
 PURPOSE:
 Returns the Mathis interstellar radiation field SED (ISRF) in W/m2 (4*!pi*nu*I_nu)
 from Mathis et al. 1983, A&A 128, 212
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Helper
  
 CALLING SEQUENCE:
   mathis = DUSTEM_MATHIS_FIELD(x,unit=unit)

 INPUTS:
    x : wavelength grid for the ISRF (1D array)

 OPTIONAL INPUT PARAMETERS:
    UNIT: unit of the ISRF. Choices are 
	     'W': wave in um [Default]
	     'F': frequency in cm-1
	     'E': energy in eV

 OUTPUTS:
    ISRF : the Mathis isrf as 1d vector in requested units

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help = print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
      wavs=3.+findgen(3000) ; wavelenghts 3 to 3003um
      isrf = DUSTEM_MATHIS_FIELD(wavs,unit='W')

 MODIFICATION HISTORY:
    Written by LV 2009
    Initially distributed with the Fortran, incorporated into DustEMWrap 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_mathis_field.pro)


DUSTEM_MBB_FUNCTION

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	dustem_mbb_function

 PURPOSE: 
	To calculate a modified BB in units of MJy/sr, i.e. 
       MBB=tau0*(wav/wav0)^{alpha})*(2hc/wav^3)*(1/(exp(hc/wavkT)-1))
  
 CALLING SEQUENCE: 
	mbbflux = dustem_mbb_function(temp,alpha,wav0,wave) 

 INPUT PARAMETERS: 
	WAVE   in microns [vector]
	WAV0   reference wavelength in microns 
	TEMP   Scalar giving the temperature of the Planck function in degree K
	ALPHA   Scalar, (wave/wav0)^{alpha}. Typical values are alpha = -1, -2
       TAU   Scalar, optical depth, assume =1
  
 OUTPUT PARAMETERS:
	MBBFLUX - Scalar or vector giving the MBB function evaluated at the specified
		wavelength points.

 EXAMPLES:

 RESTRICTIONS:
	Values less than approximately 1E-24 are truncated to 0.

 PROCEDURE:

 MODIFICATION HISTORY:

(See src/idl/dustem_mbb_function.pro)


DUSTEM_MPFIT_DATA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_mpfit_data

 PURPOSE:
    call MPFIT to fit observational datas using ponderated reduced chi2
    between extinction, emission, and polarisation as defined in !fit_rchi2_weight

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    res=dustem_mpfit_data(tol=tol,Nitermax=Nitermax,gtol=gtol) 

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES

 MODIFICATION HISTORY:
    Written by V. Guillet (2012)
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_mpfit_data.pro)


DUSTEM_MPFIT_RUN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_mpfit_run 

 PURPOSE:
    function used to fit dustem model with dustem_mpfit_sed

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    res=dustem_mpfit_run_vg(x,params[,_EXTRA=extra][,cc_sed=cc_sed][,/help])

 INPUTS:
    x         = necessary for interface but unused
    params    = Dustem Model parameters normalized to initial values

 OPTIONAL INPUT PARAMETERS:
    cc_sed    = SED color correction factors
    _extra    = extra parameters for the plot routine

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    SED and model are plotted if !dustem_show_plot

 RESTRICTIONS:
    The dustem idl wrapper must be installed

 PROCEDURE:
    None

 EXAMPLES
    res=dustem_mpfit_run_vg(x,params[,_EXTRA=extra][,cc_sed=cc_sed][,/help])

 MODIFICATION HISTORY:
    Adapted to extinction and polarization by Vincent Guillet (IAS)
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_mpfit_run.pro)


DUSTEM_MYISRF_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_myisrf_example  

 PURPOSE:
 This routine is an example of how to generate an alternative ISRF
 and then fit an observational SED (StokesI only) with DustEM and
 DustEMWrap using this non-default ISRF. The objective is to
 illustrate how to use dustem_plugin_modify_isrf and not to do
 science -- the fit obtained by running this example is likely to be
 poor.
  
 For this example, the code uses the SED in the file example_SED_1.xcat,
 which is distributed in the Data/EXAMPLE_OBSDATA/ directory 

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_myisrf_example[,model=][,sed_file=][,isrf_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]

 INPUTS:
  
 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_1.xcat' is used.  
    isrf_file = text file describing ISRF
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. 
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    

 EXAMPLES
    dustem_myisrf_example,isrf_file='my_isrf.xcat',nitermax=10,fits_save='/tmp/mysavefile.fits'

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_myisrf_example.pro)


DUSTEM_NIR_CONTINUUM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_nir_continuum
 PURPOSE:
    Dustem Wrapper plugin to add NIR continuum to SED
 CATEGORY:
    DUSTEM Wrapper (plugin)
 CALLING SEQUENCE:
    cont=dustem_nir_continuum([key=][,val=][,scope=][,/help])
 INPUTS:
    
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter numbers (starting at 1)
    val  = input parameter values (same dimension as key)
 OUTPUTS:
    result = continuum spectrum (computed on DustemWrap SED wavelengths)
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    None
 PROCEDURE:
    This is a dustem pluggin
 EXAMPLES

 MODIFICATION HISTORY:
    Written by JPB 

(See src/idl/dustem_nir_continuum.pro)


DUSTEM_PARAMETER_DESCRIPTION2TYPE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_parameter_description2type
  
 PURPOSE:
   Returns index and optionally number of tags in !dustem_data system
   variable structure
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel
  
 CALLING SEQUENCE:
   parameter_type = dustem_parameter_description2type(parameter_description,[string_name=string_name])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    parameter_type as formatted string

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
     ptype = dustem_parameter_description2type(param_description)

 MODIFICATION HISTORY:
    Written by JPB
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_parameter_description2type.pro)


DUSTEM_PLANCK_FUNCTION

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	dustem_planck_function

 PURPOSE: 
	To calculate the Planck function in units of MJy/sr 

 CATEGORY:
    DustEMWrap, Distributed, Low-Level, User convenience, Analysis

 CALLING SEQUENCE: 
	bbflux = dustem_planck_function(temp,wave) 

 INPUT PARAMETERS: 
	WAVE   in microns
	TEMP   Scalar giving the temperature of the Planck function in degree K

 OUTPUT:
	BBFLUX - Scalar or vector giving the Planck function at the specified
		wavelength points.
 ACCEPTED KEYWORDS
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 EXAMPLES:

 RESTRICTIONS:
	Values less than approximately 1E-24 are truncated to 0.
;
 MODIFICATION HISTORY:
    Written by JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_planck_function.pro)


DUSTEM_PLOT_DATASET

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plot_dataset

 PURPOSE:
    Allows the plotting of a (several) dataset(s) 

 CATEGORY:
    DustEMWrap, Distributed, Low-level, Plotting

 CALLING SEQUENCE:
    dustem_plot_dataset, st, dustem_interp, dustem_spec, dataset ,extra_spec=extra_spec, refresh=refresh, position=position,positive_only=positive_only, negative_only=negative_only, _extra=_extra 

 INPUTS:
    st = DustEM output structure

 INPUT and OUTPUT KEYWORDS:
    dustem_interp = dustem SED predictions - type = array or list of arrays.
    dustem_spec = dustem spectra predictions (Emission or Extinction) - type = array or list of arrays 
    extra_spec = Specific to the use of polfrac that requires an extra spectrum (that of SED) - type = array or list of arrays
    dataset = Dataset(s) to be plotted - type = array. If absent, nothing gets plotted.
    position =  Position(s) of the plot(s) - type = list 
    positive_only = Plotting of positive data on a 'modified logarithm' axis/plot - type = Boolean array   
    negative_only = Plotting of negative data on a 'modified logarithm' axis/plot - type =  

 OUTPUTS:
    NONE
 ACCEPTED KEY-WORDS:
    help
    refresh = Plot the datasets that change after each DustEM run 

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Does a plot

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_dataset.pro)


DUSTEM_PLOT_DATA_SED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plot_data_sed
 PURPOSE:
    Plots Dustem SED data
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_plot_data_sed[,/help][_extra=]
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    SED and model are plotted
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    dustem_plot_data_sed
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard June 10 2011
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_plot_data_sed.pro)


DUSTEM_PLOT_EXT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_ext

 PURPOSE:
    Plots a Dustem extinction curve

 CATEGORY:
    Dustem, Plotting, Low-level
  
 CALLING SEQUENCE:
    dustem_plot_ext,st[,/help]

 INPUTS:
    st        = Dustem model output structure

 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine (currently not passed)

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    model is plotted

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init,/wrap
    dir_in=getenv('DUSTEM_SOFT_DIR')
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir_in)
    loadct,13
    dustem_plot_ext,st,yr=[1.e-6,1.e0],/ysty,xr=[1.,400],/xsty

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Modified by VG with flags /UV,/IR
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_ext.pro)


DUSTEM_PLOT_EXTINCTION

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_extinction

 PURPOSE:
    Plots a DustEM extinction curve

 CATEGORY:
    DustEM, Plotting, Low-Level

 CALLING SEQUENCE:
    dustem_plot_extinction,st,st_model[,/help][,_extra=]

 INPUTS:
    st        = Dustem model output structure
    st_model  = Dustem model parameters structure

 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    model is plotted

 RESTRICTIONS:
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init,/wrap
    dir_in=getenv('DUSTEM_SOFT_DIR')
    st_model=dustem_read_all(dir_in)
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir_in)
    loadct,13
    dustem_plot_extinction,st,st_model,yr=[1.e-6,1.e0],/ysty,xr=[1.,400],/xsty

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_extinction.pro)


DUSTEM_PLOT_EXT_DEPRECATED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_ext_deprecated

 PURPOSE:
    Plots a Dustem extinction

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    dustem_plot_ext,st,st_model[,/help][,_extra=]

 INPUTS:
    st        = Dustem model output structure
    st_model  = Dustem model parameters structure

 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    model is plotted

 RESTRICTIONS:
    The dustem idl wrapper must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init,/wrap
    dir_in=getenv('DUSTEM_SOFT_DIR')+'/src/dustem3.8_web/'
    st_model=dustem_read_all(dir_in)
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir_in)
    loadct,13
    dustem_plot_ext,st,st_model,yr=[1.e-6,1.e0],/ysty,xr=[1.,400],/xsty

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Modified by VG with flags /UV,/IR
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_ext_deprecated.pro)


DUSTEM_PLOT_FIT_EXTSED

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plot_fit_extsed
 PURPOSE:
    Plots a Dustem model and SED. Parameter values and error are
    printed on plot. Used for plotting results during fit.
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_plot_fit_sed,st,sed,cont[,/no_spec_error][,res=][,errors=][,chi2=][,rchi2=][/help][_extra=]
 INPUTS:
    st        = Dustem model output structure
    sed       = Dustem model SED
    cont      = Dustem model NIR continuum
 OPTIONAL INPUT PARAMETERS:
    res       = fit result values. If set values are written on plot.
    errors    = fit result errors. If set values are written on plot.
    chi2      = fit chi^2. if set value is written on plot.
    rchi2     = Reduced fit chi^2. if set value is written on plot.
    _extra    = extra parameters for the plot routine
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    SED and model are plotted
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    dustem_plot_fit_sed,st,sed,cont
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_plot_fit_extsed.pro)


DUSTEM_PLOT_MLOG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_mlog

 CALLING SEQUENCE:
     plot_negative_log,x,y,_extra=_extra

 PURPOSE:
     plots an array in log scale including negative values in two half-plots

 INPUTS:
     x = x vector to plot
     y = y vector to plot

 OPTIONAL INPUT:
     ppositions = a 4-element vector for global plot position in the window
     dy = fractional distance between the two half-plots along y

 ACCEPTED KEY-WORDS:
     _extra is filtered and passed to cgplot

 EXAMPLES
x=[0,1,2,3,4,7,12] & y=[1.e-2,2,-1,-2,-5,-10,-50.]
dustem_plot_mlog,x,y,xtitle='x',ytitle='y',xrange=[-1,15],/xsty,yrange=[0.001,100],/ysty,ppositions=[0.3,0.2,0.8,0.9],dy=0.001
x=lindgen(1000)/500. & y=sin(x*10)*exp(-x*2.)*1.e2
dustem_plot_mlog,x,y,xtitle='x',ytitle='y',xrange=[-0.1,2.],/xsty,yrange=[0.001,100],/ysty

 OUTPUTS:
     None

 OPTIONAL OUTPUTS:
     None

 PROCEDURE AND SUBROUTINE USED
     
 COMMONS:
   
 SIDE EFFECTS:
     The two half plots are forced to have the same (reflected) y axis.

 MODIFICATION HISTORY:
    written 28-06-22 by JPB
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_mlog.pro)


DUSTEM_PLOT_NUINU_EM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_nuinu_em

 PURPOSE:
    Plots a DustEM emission spectrum

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    dustem_plot_nuinu_em,st[,/help][,_extra=]

 INPUTS:
    st        = Dustem model output structure

 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init,/wrap
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir)
    dustem_plot_nuinu_em,st,yr=[1e-28,1.e-22],/ysty,xr=[1,5e3],/xsty

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plot_nuinu_em.pro)


DUSTEM_PLOT_POLAR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     dustem_plot_polar
 PURPOSE:
    Plots a Dustem polarization curve
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_plot_curve,st,,/help][,_extra=]
 INPUTS:
    st        = Dustem model output structure
 OPTIONAL INPUT PARAMETERS:
    _extra    = extra parameters for the plot routine
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    model is plotted
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    dustem_init,/wrap
    dir_in=getenv('DUSTEM_SOFT_DIR')+'/src/dustem3.8_web/'
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir_in)
    loadct,13
    dustem_plot_curve,st,yr=[1.e-6,1.e0],/ysty,xr=[1.,400],/xsty
 MODIFICATION HISTORY:

    Adapted by VG from dustem_plot_ext.pro

    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_plot_polar.pro)


DUSTEM_PLUGIN_CONTINUUM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_continuum
 PURPOSE:
    DUSTEM plugin to compute a blackbody continuum
 CATEGORY:
    DUSTEM Wrapper
 CALLING SEQUENCE:
    cont=dustem_plugin_continuum([,key=][,val=])
 INPUTS:
    
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value
 OUTPUTS:
    cont = continuum spectrum (on dustem wavelengths)
 OPTIONAL OUTPUT PARAMETERS:
    scope = scope of the plugin
    paramdefault = default values of parameters
    paramtag = plugin parameter names as strings
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    None
 PROCEDURE:
    This is a dustem plugin
 EXAMPLES


 MODIFICATION HISTORY:
    Written by JPB 

(See src/idl/dustem_plugin_continuum.pro)


DUSTEM_PLUGIN_FF_HII

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_ff_hii
 PURPOSE:
    DustEMWrap plugin to compute free-free emission
 CATEGORY:
    DustEM, Distributed, Mid-Level, Plugin
 CALLING SEQUENCE:
    freefree=dustem_plugin_freefree([,key=][,val=])
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value
 OUTPUTS:
    freefree = free-free spectrum (on dustem wavelengths)
 OPTIONAL OUTPUT PARAMETERS:
    scope = scope of the plugin
    paramdefault = default values of parameters
    paramtag = plugin parameter names as strings
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 PROCEDURE:
    This is a DustEMWrap plugin
 EXAMPLES
    dustem_init
    vec=dustem_plugin_freefree(scope=scope)
 MODIFICATION HISTORY:
    Written by JPB 2022 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_ff_hii.pro)


DUSTEM_PLUGIN_FREEFREE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_freefree

 PURPOSE:
    DustEMWrap plugin to compute free-free emission

 CATEGORY:
    DustEM, Distributed, Mid-Level, Plugin

 CALLING SEQUENCE:
    freefree=dustem_plugin_freefree([,key=][,val=])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value

 OUTPUTS:
    freefree = free-free spectrum (on dustem wavelengths)

 OPTIONAL OUTPUT PARAMETERS:
    scope = scope of the plugin
    paramdefault = default values of parameters
    paramtag = plugin parameter names as strings

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    This is a DustEMWrap plugin

 EXAMPLES
    dustem_init
    vec=dustem_plugin_freefree(scope=scope)

 MODIFICATION HISTORY:
    Written by JPB 2022 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_freefree.pro)


DUSTEM_PLUGIN_MBBDY

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_mbbdy
 PURPOSE:
    DUSTEM plugin to compute modified black-body emission
 CATEGORY:
    DUSTEM Wrapper
 CALLING SEQUENCE:
    output=dustem_plugin_mbbdy([,key=][,val=])
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value
 OUTPUTS:
    output = MBB spectrum (on dustem wavelengths) (output[*,0] is Stokes I, output[*,1] Stokes Q and output[*,2] Stokes U)
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    None
 PROCEDURE:
    This is a dustem plugin
 EXAMPLES

 MODIFICATION HISTORY:
    Written by JPB 

(See src/idl/dustem_plugin_mbbdy.pro)


DUSTEM_PLUGIN_MBBDY_ISRF

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_mbbdy_isrf

 PURPOSE:
    DUSTEM plugin to compute modified black-body emission

 CATEGORY:
    DUSTEM Wrapper, Plugins, Lowlevel

 CALLING SEQUENCE:
    output=dustem_plugin_mbbdy([,key=][,val=])

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value

 OUTPUTS:
    output = MBB spectrum (on dustem wavelengths) (output[*,0] is Stokes I, output[*,1] Stokes Q and output[*,2] Stokes U)

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    This is a dustem plugin

 EXAMPLES:

 MODIFICATION HISTORY:
    Written by JPB 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_mbbdy_isrf.pro)


DUSTEM_PLUGIN_MDFY_SPINNING_POL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_mdfy_spinning_pol

 PURPOSE:
    MODIFIES THE SPINNING DUST SED BY INTRODUCING A POLARIZATION FRACTION p AND A POLARIZATION ANGLE psi

 CATEGORY:
    DUSTEM Wrapper, Plugins, Low-Level

 CALLING SEQUENCE:
    dustem_plugin_modify_spinning_sed(st,key=key,val=val)

 INPUTS:
    st (st = dustem_run(p_dim))

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value

 OUTPUTS:
    out = array containing the extinction stokes parameters

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    This is a dustem plugin

(See src/idl/dustem_plugin_mdfy_spinning_pol.pro)


DUSTEM_PLUGIN_MODIFY_DUST_POL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_modify_dust_pol
  
 PURPOSE:
    modifies Emission Stokes Q,U values for dust polarization in st according to the given keywords and values

 CATEGORY:
    DustEMWrap, Plugin, Mid-level, Distributed

 CALLING SEQUENCE:
    a=dustem_plugin_modify_dust_pol(st,[key=][val=][,scope=][,paramtag=][,paramdefault=][,/help])

 INPUTS:
    st = dustem structure

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter numbers (first = polarization fraction in %, default=1.%, second=polarization angle, default=0.)
    val  = input parameter values

 OUTPUTS:
    out = array containing the stokes emission parameters associated to the dust/synchrotron component or a concatenated version for both

 OPTIONAL OUTPUT PARAMETERS:
    scope = if set, returns only the scope of the pluggin
    paramtag = if set, returns only the parameter tags

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The dustem fortran code must be installed
    The dustem idl wrapper must be installed

 MODIFICATION HISTORY:
    Written by IC 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_modify_dust_pol.pro)


DUSTEM_PLUGIN_MODIFY_DUST_POLX

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_modify_dust_polx

 PURPOSE:
    modifies Extinction Stokes Q,U values for dust polarization in st according to the given keywords and values

 CATEGORY:
    DustEMWrap, Plugin, Mid-level, Distributed

 CALLING SEQUENCE:
    a=dustem_plugin_modify_dust_polx(st,[key=][val=][,scope=][,paramtag=][,/help])

 INPUTS:
    st = dustem structure

 OPTIONAL INPUT PARAMETERS:
    key  = input parameter numbers (first = polarization fraction in %, default=1.%, second=polarization angle, default=0.)
    val  = input parameter values

 OUTPUTS:
    out = array containing the stokes emission parameters associated to the dust/synchrotron component or a concatenated version for both

 OPTIONAL OUTPUT PARAMETERS:
    scope = if set, returns only the scope of the pluggin
    paramtag = if set, returns only the parameter tags

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The dustem fortran code must be installed
    The dustem idl wrapper must be installed

 MODIFICATION HISTORY:
    Written by IC 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_modify_dust_polx.pro)


DUSTEM_PLUGIN_MODIFY_ISRF

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_modify_isrf

 PURPOSE:
    REPLACES THE DEFAULT DUSTEM ISRF with a user-defined one  

 CATEGORY:
    DUSTEM Wrapper

 CALLING SEQUENCE:
    dustem_plugin_modify_isrf(key=key,val=val)

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    key = input parameter number 
    val = input parameter value

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed
    The path of the ISRF must be assigned to one of the DustEMWrap free pointers.
    The user-defined ISRF needs to be on the same dustem ISRF grid.

 PROCEDURE:
    
 EXAMPLES
    dustem_plugin_modify_isrf

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_modify_isrf.pro)


DUSTEM_PLUGIN_STELLAR_POPULATION

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_stellar_population
 PURPOSE:
    replaces the default DUSTEM ISRF with a composite stellar spectrum
 CATEGORY:
    DUSTEM Wrapper
 CALLING SEQUENCE:
    dustem_plugin_stellar_population(key=key,val=val)
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    The dustem fortran code must be installed
    The dustem idl wrapper must be installed
 PROCEDURE:
    This is a dustem plugin

(See src/idl/dustem_plugin_stellar_population.pro)


DUSTEM_PLUGIN_SYNCHROTRON

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_plugin_synchrotron
 PURPOSE:
    DustEMWrap plugin to compute synchrotron emission
 CATEGORY:
    DustEM, Distributed, Mid-Level, Plugin
 CALLING SEQUENCE:
    synch=dustem_plugin_synchrotron([,key=][,val=])
 INPUTS:
    None
 OPTIONAL INPUT PARAMETERS:
    key  = input parameter number
    val  = input parameter value
 OUTPUTS:
    synch = synch spectrum (on dustem wavelengths)
 OPTIONAL OUTPUT PARAMETERS:
    scope = scope of the plugin
    paramdefault = default values of parameters
    paramtag = plugin parameter names as strings
 ACCEPTED KEY-WORDS:
    help                  = if set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    None
 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 PROCEDURE:
    This is a DustEMWrap plugin
 EXAMPLES
    dustem_init
    vec=dustem_plugin_sychrotron(scope=scope)
 MODIFICATION HISTORY:
    Written by JPB 2022 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_plugin_synchrotron.pro)


DUSTEM_READ_ALIGN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_align

 PURPOSE:
   reads the ALIGN.DAT file

 CATEGORY:
    DustEMWrap, Distributed, HighLevel, Initialization

 CALLING SEQUENCE:
   dustem_read_align,dir_in,st_grains[,/help]

 INPUTS:
    dir_in      : input directory where to read the file from
    st_grains   : structure describing grain parameters for various grains (usually !dustem.grains)

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    silent       : if set, run silent (not used, actually)
    help         : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED  

 EXAMPLES

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_align.pro)


DUSTEM_READ_ALL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_all

 PURPOSE:
    Manages reading DustEM input data about properties of grain mixture

 CATEGORY:
    DustEM,  Distributed, High-Level, Initialization

 CALLING SEQUENCE:
    st=dustem_read_all(dir_in,silent=silent,help=help)

 INPUTS:
    dir_in: directory containing .DAT files to describe grain
    population properties

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    Structure containing information about properties of grain mixture

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    silent    = If set, function is silent
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    st=dustem_read_all(!dustem_wrap_soft_dir)

 MODIFICATION HISTORY:
    Written by JP Bernard 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_all.pro)


DUSTEM_READ_ALL_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_all_lv

 PURPOSE:
  Manages reading of information from .DAT files used by the
  LV version of the fortran

 CATEGORY:
    DustEMWrap, Distributed, MidLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_all_lv(dir_in)

 INPUTS:
    dir_in  : directory where input files are found

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_all_lv.pro)


DUSTEM_READ_ALL_RELEASE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_all_release

 PURPOSE:
    Reads all Dustem input data

 CATEGORY:
    Dustem, Distributed, High-Level, Initialization

 CALLING SEQUENCE:
    st=dustem_read_all_release(dir_in[,/silent])

 INPUTS:
    dir_in: input directory

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    silent    = If set, keep silent

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by JP Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_all_release.pro)


DUSTEM_READ_ALL_RES

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_all_res

 PURPOSE:
    Reads all Dustem fortran outputs (*.RES files)

 CATEGORY:
    Dustem, Low-level, Distributed, Fortran

 CALLING SEQUENCE:
    st=dustem_read_all_res(dir_out[,/silent][,/help])

 INPUTS:
    dir_out: Dustem output directory

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st: Dustem output structure
      structure:
      DUSTEM          STRUCT    ->  Array[800]
        WAV             FLOAT         0.0400000
        EM_GRAIN_1      FLOAT           0.00000
        EM_GRAIN_2      FLOAT           0.00000
        EM_GRAIN_3      FLOAT           0.00000
        EM_GRAIN_4      FLOAT           0.00000
        EM_GRAIN_5      FLOAT           0.00000
        EM_TOT          FLOAT           0.00000
      EXT             STRUCT    ->  Array[799]
        WAV             FLOAT         0.0406570
        ABS_GRAIN       FLOAT     Array[5]
        SCA_GRAIN       FLOAT     Array[5]

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    silent    = If set, function is silent

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_init,/wrap
    dir=getenv('DUSTEM_RES')
    st=dustem_read_all_res(dir)
    help,st,/str

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2008
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_all_res.pro)


DUSTEM_READ_CALOR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_calor

 PURPOSE:
   reads information relating to grain heat capacities from the
    .DAT file to a dustem data structure

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_calor(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_calor.pro)


DUSTEM_READ_CALOR_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_calor_lv

 PURPOSE:
   reads .DAT files relating to grain heat capacities for the LV
   fortran version

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_read_calor_lv,dir,st

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_calor_lv.pro)


DUSTEM_READ_CHRG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_chrg

 PURPOSE:
   reads information relating to grain charge from the
   appropriate .DAT files

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_chrg(file)

 INPUTS:
    file  : file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_chrg.pro)


DUSTEM_READ_CIRC_VG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_circ_vg

 PURPOSE:
   reads information relating to stellar polarisation from the
   appropriate .RES files

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_circ_vg(file)

 INPUTS:
    file  : file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_circ_vg.pro)


DUSTEM_READ_DUSTEM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_dustem

 PURPOSE:
   reads information relating to the emission from each grain type
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_dustem(file)

 INPUTS:
    file  : output file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_dustem.pro)


DUSTEM_READ_DUSTEM_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_dustem_lv

 PURPOSE:
    Reads all Dustem SED output

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User-Convenience

 CALLING SEQUENCE:
    st=dustem_read_dustem_lv,file,[/silent],[/help])

 INPUTS:
    file: file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st: Dustem output structure
      structure:
      IDL> help,st,/str
      ** Structure <1733e38>, 7 tags, length=28, data length=28, refs=2:
      WAV             FLOAT         0.0400000
      EM_GRAIN_1      FLOAT           0.00000
      EM_GRAIN_2      FLOAT           0.00000
      EM_GRAIN_3      FLOAT           0.00000
      EM_GRAIN_4      FLOAT           0.00000
      EM_GRAIN_5      FLOAT           0.00000
      EM_TOT          FLOAT           0.00000

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    silent    = If set, function is silent

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_dustem_lv.pro)


DUSTEM_READ_EXT_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_ext_lv

 PURPOSE:
   reads information relating to the extinction from each grain type
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_ext_lv(file)

 INPUTS:
    file  : output file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_ext_lv.pro)


DUSTEM_READ_FILTERS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_filters

 PURPOSE:
 Read filter information into the filter structure

 cc_method is the name of the IDL function used to compute the SED for
 those filters, including the color correction appropriate for each
 instrument.

 The tags of the filter structure are:

 Name:                 Filter name
 Nbands:               Number of photometric bands
 filter_names:         Name of the filters
 central_wavelengths:  Filter central wavelengths (microns)
 central_frequencies:  Filter central frequencies (Hz)
 filter_frequencies:   Pointer array towards filter frequency arrays for each filter
 filter_transmissions: Pointer array towards filter transmission arrays for each filter
 use_frequencies:      Pointer array towards filter frequencies to be used for in-band integrations of a given model (empty at this stage)
 use_transmissions:    Pointer array towards filter transmission interpolated on use_frequencies (empty at this stage)
 cc_method:            Color correction method to be used for these filters

 The following instruments are known:
; IRAC:irac_struct, $
;    MIPS:mips_struct, $
;    MSX:msx_struct, $
;    IRAS:iras_struct, $
;    DIRBE:dirbe_struct, $
;    SPM:spm_struct, $
;    ISOCAM:isocam_struct, $
;    ISOPHOTP:isophotP_struct, $
;    ISOPHOTC:isophotC_struct, $
;    EFIRAS:efiras_struct, $
;    ARCHEOPS:archeops_struct, $
;    HFI:hfi_struct, $
;    LFI:lfi_struct, $
;    WMAP:wmap_struct, $
;    SPIRE:spire_struct, $
;    PACS:pacs_struct, $
;    PILOT:pilot_struct, $
;    AKARI:akari_struct, $
;    BOLOCAM:bolocam_struct, $
;    WISE:wise_struct, $
;    LABOCA:laboca_struct, $
;    SABOCA:saboca_struct, $
;    GISMO:gismo_struct, $
;    SPASS:spass_struct, $
;    NIKA2:nika2_struct, $
;    SCUBA2:scuba2_struct, $
;    HAWCPLUS:hawcplus_struct, $
;    IRS:irs_struct, $
;    MIRI:miri_struct, $
;    NIRCAM:nircam_struct, $
;    NIRISS:niriss_struct $

 CATEGORY:
    DustEMWrap, Distributed, Low-Level, Instrument Filters

 CALLING SEQUENCE:
    dustem_read_filters

 INPUTS:

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    plot_it      = If set, make a plot of the filter transmission
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    
 EXAMPLES

 MODIFICATION HISTORY:
    Authors: J.P. Bernard, N. Flagey, D. Paradis, A. Hughes
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_filters.pro)


DUSTEM_READ_FITS_TABLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_fits_table

 PURPOSE:
    Reads a Dustem fits table into current DustEMWrap system variables

 CATEGORY:
    DustEMWrap, High-Level, Distributed, User convenience

 CALLING SEQUENCE:
    dustem_read_fits_table[,filename=][,/help]

 INPUTS:

 OPTIONAL INPUT PARAMETERS:
    filename      = File name to be read (default='./dustemwrap_results.fits')

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    dustem_st = emission and extinction dustem output structure (total and for each grain type)

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    DustEMWrap system variables are set

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard July 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_fits_table.pro)


DUSTEM_READ_GAS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_gas

 PURPOSE:
    reads the file GAS.dat and returns the corresponding data structure

 CATEGORY:
    Dustem

 CALLING SEQUENCE:
    st=dustem_read_gas(file,[/silent][,/help])

 INPUTS:
    file = file name to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st: output data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    silent      = If set, keeps quiet
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by JPB,NF,DP Jan-2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_gas.pro)


DUSTEM_READ_GEMISSIV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_gemissiv

 PURPOSE:
   reads information relating to emissivity of each grain type
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_gmissiv(file)

 INPUTS:
    file  : output file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_gemissiv.pro)


DUSTEM_READ_GRAIN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_read_grain

 PURPOSE:
    reads the file GRAIN.dat and returns the corresponding grain structure

 CATEGORY:
    Dustem, Distributed, Mid-Level, Fortran

 CALLING SEQUENCE:
    st=dustem_read_grain(file,[/silent][,key_str=][,G0=][,/help])

 INPUTS:
    file = file name to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st: output structure

 OPTIONAL OUTPUT PARAMETERS:
    key_str : a string containing grain keywords
    G0      : The G0 value (scaling factor for radiation field)

 ACCEPTED KEY-WORDS:
    help      = If set, print this help
    silent      = If set, keeps quiet

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by JPB,NF,DP Jan-2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_grain.pro)


DUSTEM_READ_IONFRAC

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_ionfrac

 PURPOSE:
   reads information for the fractions of neutral, positive, negative PAHs
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_ionfrac(file)

 INPUTS:
    file  : output file to be read

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_ionfrac.pro)


DUSTEM_READ_ISRF

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_isrf

 PURPOSE:
   reads information relating to the ISRF and associated wavelength grid

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_isrf(file,nisrf=nisrf)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
        Nisrf : number of elements in the wavelength grid where ISRF
        is defined

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_isrf.pro)


DUSTEM_READ_LAMBDA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_lambda

 PURPOSE:
   reads information relating to wavelengths used for the dust spectra

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_lambda(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_lambda.pro)


DUSTEM_READ_MIX

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_mix

 PURPOSE:
   reads information relating to the grain mixture
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_mix(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_mix.pro)


DUSTEM_READ_POL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_pol

 PURPOSE:
   reads information relating to the grain polarization parameters
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_pol(dir_in,file)

 INPUTS:
    dir_in  : directory with input file
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Written VG (?)
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_pol.pro)


DUSTEM_READ_PROPMASS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_propmass

 PURPOSE:
   reads information relating to the mass of different grain types
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_propmass(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_propmass.pro)


DUSTEM_READ_QABS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_qabs

 PURPOSE:
   reads information relating to the grain Qabs 
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_qabs(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_qabs.pro)


DUSTEM_READ_QABS_DESERT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_qabs_desert

 PURPOSE:
   reads information relating to the grain qabsture
   from the corresponding .DAT file for the Desert fortran version. Deprecated.

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization. Deprecated.

 CALLING SEQUENCE:
   st=dustem_read_qabs_desert(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_qabs_desert.pro)


DUSTEM_READ_QABS_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_qabs_lv

 PURPOSE:
   reads information relating to the grain QABS
   from the corresponding .DAT file for the LV fortran version

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_qabs_lv(file)

 INPUTS:
   file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    read_densities : if grain densities are size-dependent they should be
    read here
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_qabs_lv.pro)


DUSTEM_READ_SECTEFFIR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_secteffir

 PURPOSE:
   reads information relating to the grain cross section in the IR
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_secteffir(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_secteffir.pro)


DUSTEM_READ_SECTEFFUV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_secteffuv

 PURPOSE:
   reads information relating to the grain cross section in the UV
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_secteffuv(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_secteffuv.pro)


DUSTEM_READ_SIZE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_size

 PURPOSE:
   reads information relating to the grain size distribution
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_size(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_size.pro)


DUSTEM_READ_SPECEM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_specem

 PURPOSE:
   reads information relating to the model emission spectrum from each grain type
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_specem(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_specem.pro)


DUSTEM_READ_SPIN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_spin

 PURPOSE:
   reads information relating to the grain spin
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_spin(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_spin.pro)


DUSTEM_READ_TAILLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_taille

 PURPOSE:
   reads information relating to the grain size distribution 
   from the corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_taille(file)

 INPUTS:
    file  : input file to be read

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    st   : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_taille.pro)


DUSTEM_READ_TLS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_read_tls

 PURPOSE:
   read information relating to TLS model parameters from the .DAT
   files into a structure.

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   st=dustem_read_tls(dir,file)

 INPUTS:
    file : TLS .dat file name to be read
    dir  : input directory to find TLS .dat file

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st : dustem data structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    silent     : quiet mode
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Written DP (?)
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_read_tls.pro)


DUSTEM_RESTORE_SED_FIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_restore_sed_fit
 PURPOSE:
    Restore Dustem SED fit results from a file.
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_restore_sed_fit,file[,/help]
 INPUTS:
    file      = File name
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    The !dustem_fit structure is updated
    The !dustem_data, !dustem_filters, !dustem_verbose and
    !run_ionfrac are also affected.
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    dustem_fit_sed_readme
    file=getenv('DUSTEM_RES')+'DUSTEM_fit_example.sav'
    dustem_restore_sed_fit,file
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_restore_sed_fit.pro)


DUSTEM_RESTORE_SYSTEM_VARIABLES

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_restore_system_variables
 PURPOSE:
    Restores Dustem system variables a file
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_restore_system_variables,file[,/help]
 INPUTS:
    file      = File name
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    File is restored.
    The following system variables are resstored:
    !dustem_fit
    !dustem_data
    !dustem_filters
    !run_ionfrac
    !dustem_verbose
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_restore_system_variables.pro)


DUSTEM_RUN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_run

 PURPOSE:
    Runs the DUSTEM code and returns the results into a structure.

 CATEGORY:
    DustEMWrap, Distributed, Mid-Level, Fortran

 CALLING SEQUENCE:
    st=dustem_run(params[,/help])

 INPUTS:
    params = model parameter values

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    st: output structure

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURE:
    None

 EXAMPLES
    st=dustem_run(params)

 MODIFICATION HISTORY:
    Written by JPB 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_run.pro)


DUSTEM_RUN_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_run_example

 PURPOSE:
    This is an example of how to run the DustEM fortran code using DustEMWrap

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_run_example,model,show=show,postscript=postscript,help=help

 INPUTS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.

 OPTIONAL INPUT PARAMETERS:
       show = vector specifying the type of plot(s) to show. Possible
       values (for all dust models) are
       ["emis", "extuv", "extir", "alb", "sdist","rfield"]
       Additionally, for the G17_MODEL?s with polarisation, you can specify
        [ "polext", "polsed", "align"]
       "emis" -- Stokes I SED in emission predicted by the model
       "extuv" -- Extinction in the UV predicted by the model
       "extir" -- Extinction in the IR predicted by the model
       "alb" -- Albedo of the grain types
       "sdist" -- Size distribution of the grain types
       "rfield" -- Dust-heating radiation field
       "polsed" -- Polarised intensity SED predicted by the model
       "polext" -- Polarised extinction predicted by the model
       "align" -- Grain alignment fraction predicted by the model
       "all" -- All plots appropriate to the model  

 OUTPUTS:
    Plots

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    postscript = on/off if set, plots are saved as postscript in the
                 current working directory (and not shown on screen)
    help      = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES
    dustem_run_example,'DBP90',show="all",/post

 MODIFICATION HISTORY:
    Written JPB Apr-2011
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_run_example.pro)


DUSTEM_RUN_PLUGINS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_run_plugins
  
 PURPOSE:
    runs the plugins according to their scopes
    a N_ELEMENTS(PLUGINS)X N_ELEMENTS(SCOPES) matrix is created to achieve this 

 CATEGORY:
    DustEMWrap, Distributed, Mid-Level, Plugins

 CALLING SEQUENCE:
    dustem_run_plugins,p_dim,param_descs,param_values,scopes,[,st][,avoid][,dustem_run][,/help] 

 INPUTS:
    p_dim  = parameter values 
    param_descs = parameter description vector
    param_values = current parameter values
    param-func   = plugin indices array 
    scopes       = scopes of plugins 

 OPTIONAL INPUT PARAMETERS:
    avoid      = scopes should be avoided
    dustem_run = Dustem should be run

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    st         = Dustem output structure

 ACCEPTED KEY-WORDS:
    help                  = if set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
    dustem_activate_plugins, p_min, pram_descs, param_values, param_func, scopes, st=st, avoid=avoid, dustem_run=dustem_run 

 MODIFICATION HISTORY:
    Written by IC 
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_run_plugins.pro)


DUSTEM_SAVE_SED_FIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_save_sed_fit
 PURPOSE:
    Save Dustem SED fit results in a file
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_save_sed_fit,file[,/help]
 INPUTS:
    file      = File name
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    File is stored.
    The stored data are taken from !dustem_fit, !dustem_data,
    !dustem_filters, !dustem_verbose and !run_ionfrac
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_save_sed_fit.pro)


DUSTEM_SAVE_SYSTEM_VARIABLES

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_save_system_variables
 PURPOSE:
    Save Dustem system variables a file
 CATEGORY:
    Dustem
 CALLING SEQUENCE:
    dustem_save_system_variables,file[,/help]
 INPUTS:
    file      = File name
 OPTIONAL INPUT PARAMETERS:
    None
 OUTPUTS:
    None
 OPTIONAL OUTPUT PARAMETERS:
    None
 ACCEPTED KEY-WORDS:
    help      = If set, print this help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    File is stored.
    The following system variables are stored:
    !dustem_fit
    !dustem_data
    !dustem_filters
    !run_ionfrac
    !dustem_verbose
 RESTRICTIONS:
    The dustem idl wrapper must be installed
 PROCEDURE:
    None
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    see evolution details on the dustem cvs maintained at CESR
    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.

(See src/idl/dustem_save_system_variables.pro)


DUSTEM_SED_EXTRACTOR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_sed_extractor

 PURPOSE:
    Extract SEDs from a set of maps 

 CATEGORY:
    DustEMWrap, Distributed, High-Level, Analysis Helper

 CALLING SEQUENCE:
	sed=sed_extractor(maps,index,filters[,comments=][,maps_order=][,method=][,mask_I_undef=][,/total_intensity_only])

 INPUTS:
    maps      : a set of Nmaps maps of same dimension [Nx,Ny,Nmaps,Ndata_sets]
    index_roi : spatial index in Nx,Ny where the SED is to be extracted from (ROI=region of interest)
    filters   : DustEMWrap filters corresponding to each dataset [Ndata_sets]

 OPTIONAL INPUT PARAMETERS:
    comments   = a vector of strings to be attached to the SED. Also an output.
    maps_order = a vector of 9 integers giving the 0-based index for I,Q,U,II,QQ,UU,IQ,IU,QU in that order
                 (default [0,1,2,3,4,5,6,7,8]). For total intensity only, use something like [0,-1,-1,1,-1,-1,-1,-1,-1].
    method = extraction method (default = 'MEAN')/ Possible values : 'MEAN','MEAN_ONOFF','QU_CORREL'
    index_off = same as index for the OFF region (needed only for method='MEAN_ONOFF')
    reference_filter = reference filter to be correlated with each map (needed only for method='QU_CORREL')

 OUTPUTS:
    SED  : a dustemwrap SED structure containing te extracted SED

 OPTIONAL OUTPUT PARAMETERS:
    mask_I_undef = a map of saturated pixels found in Stokes I
    comments   = a vector of strings to be written as comments into the SED.

 ACCEPTED KEY-WORDS:
    total_intensity_only   = if set, data is assumed to contain only total intensity (no polarization)
    comments               = comments to be added to the sed. sed_extractor adds comments to this

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    None

 PROCEDURE:
    None

 EXAMPLES

 MODIFICATION HISTORY:
    Written by JPB 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_sed_extractor.pro)


DUSTEM_SERKWOSKI

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_serkwoski
  
 PURPOSE:
   computes the Serkowski law (as per Draine & Fraisse 2009)
  
 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Helper
  
 CALLING SEQUENCE:
   serk = DUSTEM_SERKOWSKI(X,[KA=KA,XMAX=XMAX,PMAX=PMAX])

 INPUTS:
  X  -- array(n_qabs) inverse wavenumber in 1/microns'

  OPTIONAL INPUT PARAMETERS:
     KA   (I): K factor, default = 0.92
     XMAX (I): x-position of max, default = 1.82
     PMAX (I): max polar. fraction, default = 0.03

 OUTPUTS:

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help = print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURES AND SUBROUTINES USED:
   
 EXAMPLES
  
 MODIFICATION HISTORY:
    Written by LV (VG ?)
    Initially distributed with the Fortran, incorporated into DustEMWrap 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_serkowski.pro)


DUSTEM_SET_DATA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_set_data

 PURPOSE:
    Set the *!dustem data (and *!dustem_show) datasets in emission and/or extinction from input data structures
    *!dustem_data is important for the fitting of data and its general handling by DustEMWrap.

 CATEGORY:
    DustEMWrap, Mid-Level, Distributed, Initialization

 CALLING SEQUENCE:
    dustem_set_data,[,m_fit=,x_fit=][,m_show=,x_show=],[,rchi2_weight=][,f_HI=][,/help]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    m_fit : DustEMWrap structure contaning emission data to be fitted 
    m_show : DustEMWrap structure containing emission data to be displayed
    x_fit : DusteEMWrap structure containing extinction data to be fitted
    x_show : DustEMWrap structure containing extinctiond data to be displayed
    rchi2_weight : DustEMWrap structure containing the wieghts for chi2 calculation
    f_HI : multiplicative factor for the SED values (extinction and emission)

 OUTPUTS:
    None/ALL OF THE ABOVE? 

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    initializes !dustem_data and !dustem_show
    wavelengths are forced to be the central filter wavelength for photometric data

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 
 PROCEDURE:
    None

 EXAMPLES
    dustem_init
    dir=!dustem_wrap_soft_dir+'/Data/EXAMPLE_OBSDATA/'
    file=dir+'example_SED_1.xcat'
    spec=read_xcat(file,/silent)
    dustem_set_data,m_fit=spec,m_show=spec
    nb: in this example *!dustem_data and *!dustem_show end up identical

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2007
    V. Guillet (2012) : dustem_set_data is turned into a function which can be used 
                        indifferently for sed, ext, polext
    I. Choubani (2022): dustem_set_data is turned into a procedure for emission/extinction with/without polarization.
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_set_data.pro)


DUSTEM_SET_FUNC_IND

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       dustem_set_func_ind
 CALLING SEQUENCE:
       dustem_set_func_ind
 PURPOSE:
	Sorts the parameter descriptions and values the way they must
	be processed.
 INPUTS:
       None
 OPTIONAL INPUT:
       None
 OUTPUTS:
       None
 PROCEDURE AND SUBROUTINE USED
       Parameter description (!param_desc) and values (!init_value) are
       ordered the way they should be processed. The ordered information
       is put into system variables !PDO and !IDO respectively
       If the isrf is being modified, then, PAH ionization fraction
       is set to be updated as well.
 SIDE EFFECTS:
       !PDO and !IDO variables are set.
       Optionally !ionfrac is set.
       The !func_ind variable is set.
 MODIFICATION HISTORY:
       See cvs logs
       Written by NF,JPB,DP Jan-2007

(See src/idl/dustem_set_func_ind.pro)


DUSTEM_SET_PARAMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_set_params

 PURPOSE:
    Initialise the *!dustem_fit system variable with the free
    parameters used in the fit and their general handling by DustEMWrap.

 CATEGORY:
    DustEMWrap, Mid-Level, Distributed, Initialization

 CALLING SEQUENCE:
    dustem_set_params,params[,/help]

 INPUTS:
    params -- free parameters to be used in the fit

 OPTIONAL INPUT PARAMETERS:

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    initializes information in !dustem_fit

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
 
 PROCEDURE:
    None

 EXAMPLES

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard 2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_set_params.pro)


DUSTEM_SET_PLOT_RANGE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_set_plot_range

 PURPOSE:
    Sets the X and Y plotting ranges for the different datasets in emission and extinction when in polarization mode and not (using the _extra structure).

 CATEGORY:
    DustEMWrap

 CALLING SEQUENCE:
    dustem_set_plot_range,test_m,test_x,_extra=_extra 

 INPUTS:
    test_m : (Boolean) signaling emission mode
    test_x : (Boolean) signaling extinction mode

 OPTIONAL INPUT PARAMETERS:
    _extra structure containing the plotting keywords

 OUTPUTS:
    NONE
 OPTIONAL OUTPUT PARAMETERS:
    
 ACCEPTED KEY-WORDS:
    help
 COMMON BLOCKS:
    None
 SIDE EFFECTS:
    Changes the default plotting parameters in the !dustem_plot_range pointer.
    The procedure only works with the presence of the _extra structure
 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed
 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
   dustem_set_plot_range ,test_m,test_x, _extra=_extra 
 MODIFICATION HISTORY:
    Written by Ilyes Choubani
    Evolution details on the DustEMWrap gitlab.

(See src/idl/dustem_set_plot_range.pro)


DUSTEM_SORT_PARAMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       dustem_sort_params

 CATEGORY:
    DustEMWrap, Distributed, Low-Level

 CALLING SEQUENCE:
       dustem_sort_params

 PURPOSE:
	Sorts the parameter descriptions and values the way they must
	be processed.

 INPUTS:
       None

 OPTIONAL INPUT:
       None

 OUTPUTS:
       None

 PROCEDURE AND SUBROUTINE USED
       Parameter description (!param_desc) and values (!init_value) are
       ordered the way they should be processed. The ordered information
       is put into system variables !PDO and !IDO respectively
       If the isrf is being modified, then, PAH ionization fraction
       is set to be updated as well.

 SIDE EFFECTS:
       !PDO and !IDO variables are set.
       Optionally !ionfrac is set.
       The !func_ind variable is set.

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed
  
 MODIFICATION HISTORY:
    Written by NF,JPB,DP Jan-2007
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_sort_params.pro)


DUSTEM_STELLARPOPISRF_EXAMPLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_stellarpopisrf_example  

 PURPOSE:
 This routine is an example of how to fit an observational SED
 (StokesI only) with DustEM and DustEMWrap, and an ISRF that is due
 to a user-defined population of nearby main sequence stars.

 DustEMWrap reads information about the stellar spectral types (effective
 temperature, radius) from the EEM_dwarf_UBVIJHK_colors_Teff.txt file
 that is located in the Data/STELLARPOPS/ directory. This data file was
 authored by Prof. Erik Mamajek (see the file for more details).
  
 For this example, we generate an SED using an input model and then
 launch the fit with a starting guess that has been shifted away from
 the true parameter values.

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Example

 CALLING SEQUENCE:
    dustem_fit_stellarpopisrf_example[,model=][sed_file=][isrf_file=][,postscript=][,Nitermax=][,fits_save=][,/help,/wait,/verbose]

 INPUTS:
    None

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    Plots, results structure in binary FITS table format

 ACCEPTED KEY-WORDS:
    model = specifies the interstellar dust mixture used by
            DustEM. See userguide or dustem_test_model_exists.pro
            for more details about available models in current release.
    sed_file = string naming the path to text file in .xcat format that
          describes the observational SED. If not set, the file
          'Data/EXAMPLE_OBSDATA/example_SED_2.xcat' is used.  
    isrf_file = text file describing ISRF
    postscript = if set, final plot is saved as postscript file
    Nitermax = maximum number of fit iterations. Default is 5.
    fits_save = if set, save the fit results in a binary
               FITS file. 
    postscript = if set, final plot is saved as postscript file
    help      = if set, print this help
    wait      = if set, wait this many seconds between each step of
                the code (for illustration purposes)
    verbose      = if set, subroutines will run in verbose mode
    noobj     = if set, runs with no object graphics

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:
    
 EXAMPLES
    dustem_fit_stellarpopisrf_example
    dustem_fit_stellarpopisrf_example,Nitermax=10,fits_save='/tmp/mysavefile.fits'
    dustem_fit_stellarpopisrf_example,model='DBP90',isrf_file='./myisrf_habing.dat',sed_file='./mysed.xcat'

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_stellarpopisrf_example.pro)


DUSTEM_TEST_MODEL_EXISTS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_test_model_exists

 PURPOSE:
    Test if DustEMWrap user has entered a string that matches a known dust model
  
 CATEGORY:
    DustEMWrap, Distributed, Low-Level, helper parse I/O

 CALLING SEQUENCE:
    exist_status=dustem_test_model_exists(model)
  
 INPUTS:
    model : string provided by user to indicate an ISM dust model

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    exist_status : 1 = exists, 0 = does not exists

 OPTIONAL OUTPUT PARAMETERS:

 ACCEPTED KEY-WORDS:
    help = print this help
    silent = determine status, but don't print anything
    polarisation =  check if model includes polarisation
  
 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    If model is unknown, code will stop.

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:

 EXAMPLES
   dustem_test_model_exists,'DL01'
   dustem_test_model_exists,'G17_MODELA',/pol,/silent
  
 MODIFICATION HISTORY:
    Written by AH Feb 2023
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_test_model_exists.pro)


DUSTEM_WRITE_ALIGN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_align

 PURPOSE:
   writes the ALIGN.DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_align,file,st_align


 INPUTS:
    file     : name of the file to be written
    st_align : structure describing alignment parameters for various grains (usually !dustem.grains.align)

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : whrites this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    a File is written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED  

 EXAMPLES

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_align.pro)


DUSTEM_WRITE_ALL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_write_all

 PURPOSE:
    Manages writing of DustEM input data files

 CATEGORY:
    DustEM, Distributed, Low-level, Fortran

 CALLING SEQUENCE:
    dustem_write_all,st,dir_out[,/help]

 INPUTS:
    st: DustEM input structure
    dir_out: output directory

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    None

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed
    The DustEM fortran code must be installed

 PROCEDURE:
    None

 EXAMPLES

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_all.pro)


DUSTEM_WRITE_ALL_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_all_lv

 PURPOSE:
  Manages writing of information to .DAT files used by the
  fortran. 

 CATEGORY:
    DustEMWrap, Distributed, MidLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_all_lv,st,dir_out

 INPUTS:
    st   : dustem data structure
    dir_out  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_all_lv.pro)


DUSTEM_WRITE_ALL_RELEASE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_all_release

 PURPOSE:
   writes .DAT files necessary to run dustem within dustemwrap

 CATEGORY:
    DustEMWrap, Distributed, HighLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_all_release,st,dir_out

 INPUTS:
    st       : dustem structure
    dir_out  : output directory where files will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap idl code must be installed

 PROCEDURES AND SUBROUTINES USED  

 EXAMPLES

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_all_release.pro)


DUSTEM_WRITE_CALOR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_calor

 PURPOSE:
   writes information relating to grain heat capacities in the
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_calor,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_calor.pro)


DUSTEM_WRITE_CALOR_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_calor_lv

 PURPOSE:
   copies .DAT files relating to grain heat capacities into the
   runtime directory

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_calor_lv,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory for files 

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_calor_lv.pro)


DUSTEM_WRITE_CHRG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_chrg

 PURPOSE:
   writes information relating to grain charge in the
   appropriate .DAT files

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_chrg,dir,st

 INPUTS:
    st   : dustem data structure
    file  : output directory for file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_chrg.pro)


DUSTEM_WRITE_FITS_TABLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_write_fits_table

 PURPOSE:
    Write a FITS table with content of current DustEMWrap system variables

 CATEGORY:
    DustEMWrap, Distributed, High-Level, User Convenience

 CALLING SEQUENCE:
    dustem_write_fits_table,file[,/help]

 INPUTS:
    filename   = File name to be written (default='./dustemwrap_results.fits')

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set, print this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Output FITS file is written to disk.
    All dustem system variables are reinitialized

 RESTRICTIONS:
    The DustEMWrap IDL code must be installed

 PROCEDURE:
    None

 EXAMPLES

 MODIFICATION HISTORY:
    Written by J.-Ph. Bernard July 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_fits_table.pro)


DUSTEM_WRITE_GAS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_gas

 PURPOSE:
   writes information relating to gas properties in the
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_gas,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_gas.pro)


DUSTEM_WRITE_GEMISSIV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_gemissiv

 PURPOSE:
   writes information relating to grain emissivity in the
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_gemissiv,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_gemissiv.pro)


DUSTEM_WRITE_GRAIN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_grain

 PURPOSE:
   Old method for writing information relating to grain properties in the
   corresponding GRAIN.DAT file. DEPRECATED.

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization, Deprecated

 CALLING SEQUENCE:
   dustem_write_grain,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_grain.pro)


DUSTEM_WRITE_GRAIN_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_grain_lv

 PURPOSE:
   Old method for writing information relating to grain properties in the
   corresponding GRAIN.DAT file. DEPRECATED.

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization, Deprecated

 CALLING SEQUENCE:
   dustem_write_grain_lv,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_grain_lv.pro)


DUSTEM_WRITE_GRAIN_RELEASE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_grain_release

 PURPOSE:
   writes information relating to grain parameters to the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_grain_release,dir,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_grain_release.pro)


DUSTEM_WRITE_IONFRAC

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_ionfrac

 PURPOSE:
   writes information relating to the ionization fraction to the .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_tls,dir,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_ionfrac.pro)


DUSTEM_WRITE_ISRF

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_isrf

 PURPOSE:
   writes information relating to the ISRF in the
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_isrf,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_isrf.pro)


DUSTEM_WRITE_ISRF_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_write_isrf_lv

 PURPOSE:
    Writes file ISRF.DAT used by DustemWrap

 CATEGORY:
    DustEMWrap, Distributed, Low-level, Fortran

 CALLING SEQUENCE:
    dustem_write_isrf_lv,file,st[,/help]

 INPUTS:
    file : file name 
    st   : input structure containing ISRF information (will be modified)

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS: 
    None

 SIDE EFFECTS:
    Writes a file

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE AND SUBROUTINES
    
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_isrf_lv.pro)


DUSTEM_WRITE_ISRF_RELEASE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    dustem_write_isrf_release

 PURPOSE:
    Writes file ISRF.DAT used by DustemWrap

 CATEGORY:
    DustEMWrap, Distributed, Low-level, Fortran

 CALLING SEQUENCE:
    dustem_write_isrf_release,file,st[,/help]

 INPUTS:
    file : file name 
    st   : input structure containing ISRF information (will be modified)

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help      = If set print this help

 COMMON BLOCKS: 
    None

 SIDE EFFECTS:
    Writes a file

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURE AND SUBROUTINES
    
 EXAMPLES
    
 MODIFICATION HISTORY:
    Written by Ilyes Choubani 2022
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_isrf_release.pro)


DUSTEM_WRITE_LAMBDA

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_lambda

 PURPOSE:
   writes information relating to wavelength grid
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_lambda,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_lambda.pro)


DUSTEM_WRITE_MIX

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_mix

 PURPOSE:
   writes information relating to grain mixture parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_mix,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_mix.pro)


DUSTEM_WRITE_POL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_pol

 PURPOSE:
   writes information relating to model polarization parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_pol,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_pol.pro)


DUSTEM_WRITE_PROPMASS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_propmass

 PURPOSE:
   writes information relating to grain abundances to 
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_propmass,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_propmass.pro)


DUSTEM_WRITE_QABS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qabs

 PURPOSE:
   writes information relating to QABS parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_qabs,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qabs.pro)


DUSTEM_WRITE_QABSPOL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qabspol

 PURPOSE:
   writes information relating to polarized QABS properties in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_qabspol,dir,st

 INPUTS:
    st   : dustem data structure
    i_axis   : indicate whether we are writing params for Stokes I,Q or U
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qabspol.pro)


DUSTEM_WRITE_QABS_DESERT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qabs_desert

 PURPOSE:
   writes information relating to absorption/scattering coefficients in the
   corresponding .DAT file for the Desert format version of the .DAT FILES. DEPRECATED.

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization, Deprecated.

 CALLING SEQUENCE:
   dustem_write_qabs_desert,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qabs_desert.pro)


DUSTEM_WRITE_QABS_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qabs_lv

 PURPOSE:
   writes information relating to QABS parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_qabs_lv,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qabs_lv.pro)


DUSTEM_WRITE_QH

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qh

 PURPOSE:
   writes information relating to QH/QABS/QSCA parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_qh,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qh.pro)


DUSTEM_WRITE_QPOL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_qpol

 PURPOSE:
   writes information relating to polarized QABS, QSCA properties in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_qpol,dir,st

 INPUTS:
    st   : dustem data structure
    i_axis   : indicate whether we are writing params for Stokes I,Q or U
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_qpol.pro)


DUSTEM_WRITE_SIZE_LV

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_size_lv

 PURPOSE:
   writes information relating to size distribution parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_size_lv,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_size_lv.pro)


DUSTEM_WRITE_SPECEM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_specem

 PURPOSE:
   writes information relating to model spectrum in the
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_specem,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_specem.pro)


DUSTEM_WRITE_SPIN

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_spin

 PURPOSE:
   writes information relating to grain spin parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_spin,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_spin.pro)


DUSTEM_WRITE_TAILLE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   dustem_write_taille

 PURPOSE:
   writes information relating to grain size distribution
   corresponding .DAT file

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_taille,file,st

 INPUTS:
    st   : dustem data structure
    file  : output file to be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_taille.pro)


DUSTEM_WRITE_TLS

[Previous Routine] [List of Routines]
 NAME:
   dustem_write_tls

 PURPOSE:
   writes information relating to TLS model parameters in the .DAT files 

 CATEGORY:
    DustEMWrap, Distributed, LowLevel, Initialization

 CALLING SEQUENCE:
   dustem_write_tls,dir,st

 INPUTS:
    st   : dustem data structure
    dir  : output directory where file will be written

 OPTIONAL INPUT PARAMETERS:
    None

 OUTPUTS:
    None

 OPTIONAL OUTPUT PARAMETERS:
    None

 ACCEPTED KEY-WORDS:
    help     : writes this help

 COMMON BLOCKS:
    None

 SIDE EFFECTS:
    Files are written

 RESTRICTIONS:
    The DustEM fortran code must be installed
    The DustEMWrap IDL code must be installed

 PROCEDURES AND SUBROUTINES USED:  

 EXAMPLES:

 MODIFICATION HISTORY:
    Evolution details on the DustEMWrap gitlab.
    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  

(See src/idl/dustem_write_tls.pro)