dustem_write_all_release.pro
2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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