Blame view

src/idl/dustem_show_file_dependencies.pro 2.55 KB
50bb5343   Annie Hughes   minor changes to ...
1
PRO dustem_show_file_dependencies,help=help,outfile=outfile
11e99b65   Annie Hughes   first commit
2
3
4
5
6
7
8
9
10
11
12
13
14
15

;== 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:
50bb5343   Annie Hughes   minor changes to ...
16
17
;    outfile = string, .xcat file (and path) with list of compiled routines and
;            functions. Default is './DustEMWrap_dependencies.xcat'
11e99b65   Annie Hughes   first commit
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
; 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

50bb5343   Annie Hughes   minor changes to ...
42
43
44
45
46
47
48
49
50
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

11e99b65   Annie Hughes   first commit
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
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)

50bb5343   Annie Hughes   minor changes to ...
103
104
write_xcat,st,use_outfile,/wiki
message,'Wrote '+use_outfile,/info
11e99b65   Annie Hughes   first commit
105
106
107
108

;stop
the_end:
END