dustem_write_all_release.pro 2.61 KB
PRO dustem_write_all_release,st,dir_out,help=help

;+
; 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     : whrites 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.  
;-

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

if strmid(!dustem_dat,0,/reverse) ne '/' then !dustem_dat=!dustem_dat+'/' 

dir_out_dat=dir_out+'data/'
dir_out_qabs=dir_out+'oprop/'
dir_out_capa=dir_out+'hcap/'

;== ISRF
file_out=dir_out_dat+'ISRF.DAT'
dustem_write_isrf_release,file_out,st.isrf

;== LAMBDA
file_out=dir_out_qabs+'LAMBDA.DAT'
dustem_write_lambda,file_out,st.lambda

;== GRAIN
file_out=dir_out_dat+'GRAIN.DAT'

dustem_write_grain_release,file_out,st.grains

;== GAS
file_out=dir_out_dat+'GAS.DAT'

dustem_write_gas,file_out,st.GAS





;== SPIN
dustem_write_spin,dir_out_dat,st.spin

;stop
;== CHRG
dustem_write_chrg,dir_out_dat,st.chrg

;== MIX
dustem_write_mix,dir_out_dat,st.mix

;== SIZE
dustem_write_size_lv,dir_out_dat,st.size

;== QABS
dustem_write_qabs_lv,dir_out_qabs,st.qabs

;== CALOR
dustem_write_calor_lv,dir_out_capa,st.calor

;== POL
;dustem_write_pol,dir_out_dat,st.pol
;FOR i_axis = 1, 3 DO dustem_write_qabspol,dir_out_qabs,st,i_axis

;== POL
IF !run_pol THEN BEGIN
    ;stop
	file_out=dir_out_dat+'ALIGN.DAT'
    ;stop
	;Write the grain alignment file
	dustem_write_align,file_out,st.align

	; Linear polarization
	file_out=dir_out_qabs
	IF not stregex(st.align.keywords, 'rrf', /bool) THEN for i_axis = 1, 2 do dustem_write_qpol,file_out,st,i_axis
	
	; Circular polarization
	if !run_circ then dustem_write_qcirc,file_out,st

	; Anisotropic heating
	IF (st.align.anisG0 > 0) THEN for i_axis = 1, 2 do dustem_write_qh,file_out,st,i_axis

	; RRF Files
	IF stregex(st.align.keywords, 'rrf', /bool) THEN for i_axis = 1, 2 do dustem_write_qpol_rrf,file_out,st,i_axis

ENDIF

;== TLS
file_out=dir_out_dat
dustem_write_tls,dir_out_dat,st.tls

the_end:

END