dustem_extend_linear_params2grid.pro 3.38 KB
PRO dustem_extend_linear_params2grid,pd,iv_min,iv_max,iv_Nvalues,plog,test=test,grid_type=grid_type,isrf_class=isrf_class,help=help

;+
; NAME:
;    dustem_extend_linear_params2grid
; PURPOSE:
;    extends entries for a linear parameter in a Dustemwrap grid fits file
; CATEGORY:
;    Dustem
; CALLING SEQUENCE:
;    dustem_extend_linear_params2grid,pd,iv_min,iv_max,iv_Nvalues[,/test][,grid_type=][,isrf_class=][,/help]
; INPUTS:
;    pd                     : dustemwrap parameter descriptions array
;    iv_min                 : minimum values for parameters in pd
;    iv_max                 : maximum values for parameters in pd
;    iv_Nvalues             : number of parameter values for parameters in pd
;    plog                   : array indicating if the parameters are to be sampled in linear (0) or log scale (1)
; OPTIONAL INPUT PARAMETERS:
;    grid_type           : grid type (see code)
;    isrf_class          : isrf_class
; OUTPUTS:
;    None
; OPTIONAL OUTPUT PARAMETERS:
;    None
; ACCEPTED KEY-WORDS:
;    help      = If set, print this help
; COMMON BLOCKS:
;    None
; SIDE EFFECTS:
;    A file is written
; RESTRICTIONS:
;    The DustEM fortran code must be installed
; PROCEDURE:
;    Note: grids do not retain scattering and absorption spectra separately, only totalm extinction. So these are not handled here.
; EXAMPLES
;    see test_dustem_extend_linear_params2grid
; MODIFICATION HISTORY:
;    Written by J.-Ph. Bernard (May 2024)
;    Evolution details on the DustEMWrap gitlab.
;    See http://dustemwrap.irap.omp.eu/ for FAQ and help.  
;-

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

dir=!phangs_data_dir+'/ISRF/GRIDS/'

test_str=''
IF keyword_set(test) THEN BEGIN
  test_str='TEST_'
ENDIF

use_grid_type=0
IF keyword_set(grid_type) THEN BEGIN
  use_grid_type=grid_type
ENDIF

CASE use_grid_type OF
   22: BEGIN          ;This is DL07 model with PHANGS ISRF classes, with only G0 as free parameter. Same as 2, but for DL07 model
      !quiet=1
      model='DL07'   ;This is to use the DBP90 dust model
 
      IF keyword_set(isrf_class) THEN BEGIN  ;do just one table
         use_isrf_class=isrf_class
      ENDIF ELSE BEGIN
         use_isrf_class=0  ;This is for Mathis field
      ENDELSE
      isrf_class_str='_isrfclass'+strtrim(use_isrf_class,2)

      input_table_name0=dir+model+'_MuseISRF_JWST_G0_Ypah1added_Ypah2added_Yvsgadded_4Phangs_noionis'+isrf_class_str+'.fits'

      message,'Marginalizing grid over given parameter',/continue
      isrf_class_str=''
      input_table_name=input_table_name0
      output_table_name='/tmp/test.fits'
      spawn,'rm '+output_table_name
      dustem_marginalize_table,input_table_name,output_table_name,pd

      ;stop

      message,'Adding Dust abundances to grid',/continue
      input_table_name='/tmp/test.fits'
      output_table_name='/tmp/test_extended.fits'
      pd_extend=[pd]
      dustem_add_linear_params2grid,input_table_name,pd_extend,iv_min,iv_max,iv_Nvalues,out_filename=output_table_name,plog=plog,show_seds=show_seds

      message,'Merging grids',/continue
      input_table_name1=input_table_name0
      input_table_name2='/tmp/test_extended.fits'

      output_table_name=dir+test_str+model+'_MuseISRF_JWST_G0_Ypah1added_Ypah2added_YvsgaddedExtended_4Phangs_noionis'+isrf_class_str+'.fits'
      dustem_merge_grids,input_table_name1,input_table_name2,output_table_name
   END
ENDCASE

the_end:

END