Commit b3f6f0166d5f0018193a595c674d6bc367c3dd91

Authored by Annie Hughes
1 parent daa89ea5
Exists in master

implemented changes due to plugin structure

src/idl/dustem_compute_polext.pro
... ... @@ -90,27 +90,29 @@ frac=POLEXT_spec/EXT_spec
90 90 tes=where(finite(frac) eq 0)
91 91 frac(tes)=0.
92 92  
93   -
94   -scopes=tag_names((*!dustem_plugin))
95   -IF scopes[0] NE 'NONE' THEN BEGIN
  93 +plugin_tags=(*!dustem_plugin).name
  94 +ind=where(plugin_tags NE 'NONE',Nplugins)
  95 +IF Nplugins NE 0 THEN BEGIN
96 96 ;IF ptr_valid(!dustem_plugin) THEN BEGIN
97   - for i=0L,n_tags(*!dustem_plugin)-1 do begin
98   - if total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) eq 'ADD_EXT') then EXT_spec+=(*(*!dustem_plugin).(i).spec)[*,0]
  97 + for i=0L,Nplugins-1 do begin
  98 + if total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) eq 'ADD_EXT') then EXT_spec+=(*(*!dustem_plugin)[i].spec)[*,0]
99 99 endfor
100 100 ENDIF
101 101  
102   -
103   -IF scopes[0] NE 'NONE' THEN BEGIN
104   -
105   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
106   -
107   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'REPLACE_POLEXT') THEN BEGIN
108   -
109   - QEXT_spec=(*(*!dustem_plugin).(i).spec)[*,1]
110   - UEXT_spec=(*(*!dustem_plugin).(i).spec)[*,2]
111   -
  102 +;scopes=tag_names((*!dustem_plugin))
  103 +;IF scopes[0] NE 'NONE' THEN BEGIN
  104 +;IF ptr_valid(!dustem_plugin) THEN BEGIN
  105 +; for i=0L,n_tags(*!dustem_plugin)-1 do begin
  106 +; if total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) eq 'ADD_EXT') then EXT_spec+=(*(*!dustem_plugin).(i).spec)[*,0]
  107 +; endfor
  108 +;ENDIF
  109 +
  110 +IF Nplugins NE 0 THEN BEGIN
  111 + FOR i=0L,Nplugins-1 DO BEGIN
  112 + IF total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) EQ 'REPLACE_POLEXT') THEN BEGIN
  113 + QEXT_spec=(*(*!dustem_plugin)[i].spec)[*,1]
  114 + UEXT_spec=(*(*!dustem_plugin)[i].spec)[*,2]
112 115 ENDIF
113   -
114 116 ENDFOR
115 117 ENDIF
116 118  
... ... @@ -119,19 +121,13 @@ ENDIF
119 121 SPEXT_spec = frac
120 122 ENDIF
121 123  
122   -IF scopes[0] NE 'NONE' THEN BEGIN
123   -
124   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
125   -
126   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'ADD_POLEXT') THEN BEGIN
127   -
128   - QEXT_spec+=(*(*!dustem_plugin).(i).spec)[*,1]
129   - UEXT_spec+=(*(*!dustem_plugin).(i).spec)[*,2]
130   -
  124 +IF Nplugins NE 0 THEN BEGIN
  125 + FOR i=0L,Nplugins-1 DO BEGIN
  126 + IF total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) EQ 'ADD_POLEXT') THEN BEGIN
  127 + QEXT_spec+=(*(*!dustem_plugin)[i].spec)[*,1]
  128 + UEXT_spec+=(*(*!dustem_plugin)[i].spec)[*,2]
131 129 ENDIF
132   -
133 130 ENDFOR
134   -
135 131 ENDIF
136 132  
137 133 POLEXT_spec=sqrt(QEXT_spec^2+UEXT_spec^2)
... ...
src/idl/dustem_compute_polsed.pro
... ... @@ -93,29 +93,29 @@ frac(tes)=0.
93 93 ;NB: if plugins that replace the total emission given by the fortran executable exist,
94 94 ;the need to add a block with a 'REPLPACE_SED' scope as for the 'REPLACE_POLSED' below, may arise.
95 95  
96   -scopes=tag_names((*!dustem_plugin))
97   -IF scopes[0] NE 'NONE' THEN BEGIN
  96 +;scopes=tag_names((*!dustem_plugin))
  97 +;IF scopes[0] NE 'NONE' THEN BEGIN
98 98 ;IF ptr_valid(!dustem_plugin) THEN BEGIN
99   - for i=0L,n_tags(*!dustem_plugin)-1 do begin
100   - if total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) eq 'ADD_SED') then stI+=(*(*!dustem_plugin).(i).spec)[*,0]
  99 +; for i=0L,n_tags(*!dustem_plugin)-1 do begin
  100 +
  101 +plugin_tags=(*!dustem_plugin).name
  102 +ind=where(plugin_tags NE 'NONE',Nplugins)
  103 +IF Nplugins NE 0 THEN BEGIN
  104 +;IF ptr_valid(!dustem_plugin) THEN BEGIN
  105 + for i=0L,Nplugins-1 do begin
  106 + if total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) eq 'ADD_SED') then stI+=(*(*!dustem_plugin)[i].spec)[*,0]
101 107 endfor
102 108 ENDIF
103 109  
104 110  
105   -IF scopes[0] NE 'NONE' THEN BEGIN
106   -
107   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
108   -
109   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'REPLACE_POLSED') THEN BEGIN
110   -
  111 +IF Nplugins NE 0 THEN BEGIN
  112 + FOR i=0L,Nplugins-1 DO BEGIN
  113 + IF total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) EQ 'REPLACE_POLSED') THEN BEGIN
111 114 Q_spec=(*(*!dustem_plugin).(i).spec)[*,1]
112 115 U_spec=(*(*!dustem_plugin).(i).spec)[*,2]
113 116 ;make sure sti hasn't been replaced. But this is not happening in the near future
114   -
115 117 ENDIF
116   -
117 118 ENDFOR
118   -
119 119 ENDIF
120 120  
121 121 IF ~isa(Q_spec) && ~isa(U_spec) THEN BEGIN
... ... @@ -123,27 +123,19 @@ ENDIF
123 123 SP_spec = frac
124 124 ENDIF
125 125  
126   -IF scopes[0] NE 'NONE' THEN BEGIN
127   -
128   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
129   -
130   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'ADD_POLSED') THEN BEGIN
131   -
132   - Q_spec+=(*(*!dustem_plugin).(i).spec)[*,1]
133   - U_spec+=(*(*!dustem_plugin).(i).spec)[*,2]
134   -
  126 +IF Nplugins NE 0 THEN BEGIN
  127 + FOR i=0L,Nplugins-1 DO BEGIN
  128 + IF total(strsplit(((*!dustem_plugin)[i].scope),'+',/extract) EQ 'ADD_POLSED') THEN BEGIN
  129 + Q_spec+=(*(*!dustem_plugin)[i].spec)[*,1]
  130 + U_spec+=(*(*!dustem_plugin)[i].spec)[*,2]
135 131 ENDIF
136   -
137 132 ENDFOR
138   -
139 133 ENDIF
140 134  
141 135 P_spec=sqrt(Q_spec^2+U_spec^2)
142 136 SP_spec=P_spec/Sti
143 137  
144   -
145 138 dustem_polsed = (*(*!dustem_data).qsed).values * 0.
146   -
147 139  
148 140 if not isarray(P_spec) THEN stop ;I don't understand this test. The only thing it can indicate is a problem with the dust parameters or the fortran executable. But in my opinion these tests would be
149 141  
... ...
src/idl/dustem_compute_sed.pro
... ... @@ -69,11 +69,14 @@ fact = 1.e4*(*!dustem_HCD)/(4.*!pi)/(3.e8/1.e-6/st.sed.wav)*1.e20/1.e7 ;this is
69 69 SED_spec = st.sed.em_tot * fact
70 70  
71 71 ;===== Adding plugin output to spectrum ----------------
72   -Nplugins=n_elements(*!dustem_plugin)
73   -scopes=(*!dustem_plugin).scope
  72 +;Nplugins=n_elements(*!dustem_plugin)
  73 +;scopes=(*!dustem_plugin).scope
74 74  
  75 +plugin_tags=(*!dustem_plugin).name
  76 +ind=where(plugin_tags NE 'NONE',Nplugins)
  77 +IF Nplugins NE 0 THEN BEGIN
75 78 ;stop
76   -IF scopes[0] NE 'NONE' THEN BEGIN
  79 +;IF scopes[0] NE 'NONE' THEN BEGIN
77 80 FOR i=0L,Nplugins-1 DO BEGIN
78 81 IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) eq 'ADD_SED') THEN BEGIN
79 82 SED_spec+=(*(*!dustem_plugin)[i].spec)[*,0]
... ...
src/idl/dustem_compute_stokes.pro
... ... @@ -82,14 +82,13 @@ frac=P/stI
82 82 tes=where(finite(frac) eq 0)
83 83 frac(tes)=0.
84 84  
85   -scopes=(*!dustem_plugin).scope
86   -n_plugins=n_elements(scopes)
87   -
88   -IF scopes[0] NE 'NONE' THEN BEGIN
89   - FOR i=0L,n_plugins-1 DO BEGIN
  85 +plugin_tags=(*!dustem_plugin).name
  86 +ind=where(plugin_tags NE 'NONE',Nplugins)
  87 +IF Nplugins NE 0 THEN BEGIN
  88 + FOR i=0L,nplugins-1 DO BEGIN
90 89 ;IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'REPLACE_POLSED') THEN BEGIN
91 90 ;IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'REPLACE_POLSED') THEN BEGIN
92   - IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'REPLACE_SED') THEN BEGIN
  91 + IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'REPLACE_POLSED') THEN BEGIN
93 92 Q_spec = (*(*!dustem_plugin)[i].spec)[*,1]
94 93 U_spec = (*(*!dustem_plugin)[i].spec)[*,2]
95 94 ENDIF
... ... @@ -100,11 +99,13 @@ ENDIF
100 99 polar_ippsi2iqu,stI,Q_spec,U_spec,frac,replicate(!dustem_psi,Nwaves);
101 100 ENDIF
102 101  
103   -IF scopes[0] NE 'NONE' THEN BEGIN
104   - FOR i=0L,n_plugins-1 DO BEGIN
  102 +plugin_tags=(*!dustem_plugin).name
  103 +ind=where(plugin_tags NE 'NONE',Nplugins)
  104 +IF Nplugins NE 0 THEN BEGIN
  105 + FOR i=0L,Nplugins-1 DO BEGIN
105 106 ;IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'ADD_POLSED') THEN BEGIN
106 107 ;IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'ADD_POLSED') THEN BEGIN
107   - IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'ADD_SED') THEN BEGIN
  108 + IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'ADD_POLSED') THEN BEGIN
108 109 Q_spec+=(*(*!dustem_plugin)[i].spec)[*,1]
109 110 U_spec+=(*(*!dustem_plugin)[i].spec)[*,2]
110 111 ENDIF
... ...
src/idl/dustem_compute_stokext.pro
... ... @@ -105,18 +105,14 @@ frac=POLEXT_spec/EXT_spec
105 105 tes=where(finite(frac) eq 0)
106 106 frac(tes)=0.
107 107  
108   -scopes=tag_names((*!dustem_plugin))
109   -IF scopes[0] NE 'NONE' THEN BEGIN
110   -
111   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
112   -
113   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'REPLACE_POLEXT') THEN BEGIN
114   -
115   - QEXT_spec = (*(*!dustem_plugin).(i).spec)[*,1]
116   - UEXT_spec = (*(*!dustem_plugin).(i).spec)[*,2]
117   -
  108 +plugin_tags=(*!dustem_plugin).name
  109 +ind=where(plugin_tags NE 'NONE',Nplugins)
  110 +IF Nplugins NE 0 THEN BEGIN
  111 + FOR i=0L,Nplugins-1 DO BEGIN
  112 + IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'REPLACE_POLEXT') THEN BEGIN
  113 + QEXT_spec = (*(*!dustem_plugin)[i].spec)[*,1]
  114 + UEXT_spec = (*(*!dustem_plugin)[i].spec)[*,2]
118 115 ENDIF
119   -
120 116 ENDFOR
121 117 ENDIF
122 118  
... ... @@ -125,16 +121,12 @@ IF ~isa(QEXT_spec) && ~isa(UEXT_spec) THEN BEGIN
125 121 ENDIF
126 122  
127 123  
128   -IF scopes[0] NE 'NONE' THEN BEGIN
129   - FOR i=0L,n_tags(*!dustem_plugin)-1 DO BEGIN
130   -
131   - IF total(strsplit((*(*!dustem_plugin).(i).scope),'+',/extract) EQ 'ADD_POLEXT') THEN BEGIN
132   -
133   - QEXT_spec+=(*(*!dustem_plugin).(i).spec)[*,1]
134   - UEXT_spec+=(*(*!dustem_plugin).(i).spec)[*,2]
135   -
  124 +IF Nplugins NE 0 THEN BEGIN
  125 + FOR i=0L,Nplugins-1 DO BEGIN
  126 + IF total(strsplit((*!dustem_plugin)[i].scope,'+',/extract) EQ 'ADD_POLEXT') THEN BEGIN
  127 + QEXT_spec+=(*(*!dustem_plugin)[i].spec)[*,1]
  128 + UEXT_spec+=(*(*!dustem_plugin)[i].spec)[*,2]
136 129 ENDIF
137   -
138 130 ENDFOR
139 131 ENDIF
140 132 ;-----------------------------------------
... ...