dustem_show_file_dependencies.pro
2.55 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
PRO dustem_show_file_dependencies,help=help,outfile=outfile
;== make a list of routines used by DustEMWrap
;+
; NAME:
; dustem_show_file_dependencies
; PURPOSE:
; Generate a list of routines called by DustEMWrap runs
; CATEGORY:
; DustEMWrap, Distributed, Low-Level
; CALLING SEQUENCE:
; dustem_show_file_dependencies[,help=help]
; INPUTS:
; None
; OPTIONAL INPUT PARAMETERS:
; outfile = string, .xcat file (and path) with list of compiled routines and
; functions. Default is './DustEMWrap_dependencies.xcat'
; OUTPUTS:
; OPTIONAL OUTPUT PARAMETERS:
; ACCEPTED KEY-WORDS:
; help = If set, print this help
; COMMON BLOCKS:
; None
; SIDE EFFECTS:
; None
; RESTRICTIONS:
; The DustEM fortran code must be installed
; The DustEMWrap IDL code must be installed
; PROCEDURES AND SUBROUTINES USED:
; *** COMMENT AH --> is this really NONE? ****
; EXAMPLES
; MODIFICATION HISTORY:
; Written by JPB Apr-2011
; 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_show_file_dependencies'
goto,the_end
END
use_outfile='./DustEMWrap_dependencies.xcat'
if keyword_set(outfile) then use_outfile=outfile
; HERE IS WHERE YOU PUT THE TOP-LEVEL ROUTINES TO RUN
;dustem_init
;dustem_run_example
dustem_fit_intensity_example
; END LIST OF TOP-LEVEL ROUTINES
help,/function,output=ff
help,/pro,output=pp
ff=ff[1:*]
pp=pp[2:*]
nff=n_elements(ff)
npp=n_elements(pp)
one_func={name:'',path:'',args:ptr_new()}
one_pro={name:'',path:'',args:ptr_new()}
func_list=replicate(one_func,nff)
pro_list=replicate(one_pro,npp)
message,'Found '+string(nff)+' functions',/info
FOR i=0L,nff-1 DO BEGIN
str=strcompress(ff(i))
vv=str_sep(str,' ')
func_list(i).name=vv(0)
func_list(i).args=ptr_new(vv(1:*))
wh=which_pro(strlowcase(func_list(i).name))
func_list(i).path=wh(0)
ENDFOR
message,'Found '+string(npp)+' routines',/info
FOR i=0L,npp-1 DO BEGIN
str=strcompress(pp(i))
vv=str_sep(str,' ')
pro_list(i).name=vv(0)
pro_list(i).args=ptr_new(vv(1:*))
wh=which_pro(strlowcase(pro_list(i).name))
pro_list(i).path=wh(0)
ENDFOR
one_st={name:'',path:''}
st=replicate(one_st,nff+npp)
st.name=[func_list.name,pro_list.name]
st.path=[func_list.path,pro_list.path]
;=== remove empty names
ind=where(st.name NE '')
st=st(ind)
;=== remove empty path (are entries without .pro)
ind=where(st.path NE '')
st=st(ind)
;=== order by path
order=sort(st.path)
st=st(order)
write_xcat,st,use_outfile,/wiki
message,'Wrote '+use_outfile,/info
;stop
the_end:
END