dustem_run_readme.pro 3.42 KB
PRO dustem_run_readme,postcript=postcript,mode=mode,help=help,plot_it=plot_it

;+
; NAME:
;    dustem_run_readme
; PURPOSE:
;    This is an example of how to run dustem SEDs with the dustem wrapper.
; CATEGORY:
;    Dustem
; CALLING SEQUENCE:
;    dustem_run_readme,mode=mode,help=help,/postcript,/help,/plot_it
; INPUTS:
;    None
; OPTIONAL INPUT PARAMETERS:
;    None
; OUTPUTS:
;    None
; OPTIONAL OUTPUT PARAMETERS:
;    None
; ACCEPTED KEY-WORDS:
;    mode = Selects one of the dust mixture used by dustem
;           'COMPIEGNE_ETAL2010' from Compiegne et al 2010 (default)
;           'DBP90' from Desert et al 1990
;           'DL01' from Draine & Li 2001
;           'DL07' from Draine & Li 2007
;    postcript = if set, plot is done in DUSTEM/Docs/Figures/Last_dustem_fit.ps
;    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:
;    None
; EXAMPLES
;    dustem_run_readme,mode='COMPIEGNE_ETAL2010'
; MODIFICATION HISTORY:
;    Written by J.P. Bernard April 1st 2011
;    see evolution details on the dustem cvs maintained at CESR
;    Contact J.-Ph. Bernard (Jean-Philippe.Bernard@cesr.fr) in case of problems.
;-

;This Readme shows how to run dustem from the wrapper
;Obviously, the dustem package must have been installed succesfully (see
;dustem_cvs_readme.txt for install instructions).

IF keyword_set(help) THEN BEGIN
  doc_library,'dustem_run_readme'
  goto,the_end
ENDIF

loadct,13

IF keyword_set(mode) THEN BEGIN
  use_mode=strupcase(mode)
ENDIF ELSE BEGIN
  use_mode='COMPIEGNE_ETAL2010'    ;Default is last dustem model
ENDELSE

;== This just initializes 
dustem_init,mode=use_mode
!dustem_verbose=1
!dustem_show_plot=1

IF not keyword_set(dir) THEN BEGIN
;  CASE getenv('DUSTEM_WHICH') OF
  CASE !dustem_which OF
    'DESERT':dir='DESERT_POST_ISO_MORE/'
    'COMPIEGNE': dir='MC_DAT/'
    'VERSTRAETE': dir='d_3.5/'
    'VERSTRAETE': dir='LV_DAT/'
;    'WEB3p8': dir_in='dustem3.8_web/'
    'WEB3p8': dir_in=!dustem_soft_dir
    ELSE: dir='les_DAT/'
  ENDCASE
ENDIF
;== This is the input directory selected for Dustem
;dir_in=getenv('DUSTEM_SOFT_DIR')+'/src/'+dir
;dir_in=!dustem_soft_dir+'/src/'+dir
;== The following structure contains the inputs to the model
st_model=dustem_read_all(dir_in)
help,st_model,/str

;=== You can here modify the model inputs
;=== e.g.
;stop
;st_model.G0=2.
st_model.grains[0].type_keywords='logn-chrg-spin'
st_model.gas.NH=1.e2
st_model.gas.Tgas=1.e5

;== The following line writes inputs to the Fortran
;dustem_write_all,st_model,getenv('DUSTEM_DAT')
dustem_write_all,st_model,!dustem_dat
;== This runs the Fortran. The ouput structure contains the results
st=dustem_run()
;== Optionaly, this creates an SED to be overploted
;stop
;filters=['IRAS1','IRAS4']
;Nfilt=n_elements(filters)
;sed=dustem_initialize_sed(Nfilt)
;sed.filter=filters
;sed.wave=dustem_filter2wav(filters)
;sed.instru=dustem_filter2instru(filters)
;stop
;stt=dustem_set_data(sed=sed)

;== The following just plots the resulting emission SED
window,0
;dustem_plot_nuinu_em,st,yr=[1e-28,1.e-22],/ysty,xr=[1,5e3],/xsty
dustem_plot_nuinu_em,st,yr=[1e-11,6.e-7],/ysty,xr=[1,5e3],/xsty
;== The following just plots the resulting extinction
window,1
;dustem_plot_extinction,st,st_model,yr=[1.e-4,1.e7],/ysty,xr=[1.e-2,1e5],/xsty
dustem_plot_extinction,st,st_model,yr=[1.e-6,1.e0],/ysty,xr=[1.,400],/xsty

the_end:

END