dustem_write_all_release.pro
2.59 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
PRO dustem_write_all_release,st,dir_out,help=help
;+
; NAME:
; dustem_write_all_release
; PURPOSE:
; writes .DAT fiules 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