Blame view

src/idl/dustem_plugin_modify_spinning_polarization.pro 2.15 KB
ba82c5cf   Ilyes Choubani   improved with mod...
1
FUNCTION dustem_plugin_modify_spinning_polarization, key=key, val=val, scope=scope, help=help
7d2d66e7   Ilyes Choubani   replacing polsed,...
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

;+
; NAME:
;    dustem_create_stext
; PURPOSE:
;    MODIFIES THE SPINNING DUST SED BY INTRODUCING A POLARIZATION FRACTION p AND A POLARIZATION ANGLE psi
; CATEGORY:
;    DUSTEM Wrapper
; CALLING SEQUENCE:
;    dustem_plugin_modify_spinning_sed(st,key=key,val=val)
; INPUTS:
;    st (st = dustem_run(p_dim))
; OPTIONAL INPUT PARAMETERS:
;    key  = input parameter number
;    val  = input parameter value
; OUTPUTS:
;    out = array containing the extinction stokes parameters
; OPTIONAL OUTPUT PARAMETERS:
;    None
; ACCEPTED KEY-WORDS:
;    help                  = if set, print this help
; COMMON BLOCKS:
;    None
; SIDE EFFECTS:
;    None
; RESTRICTIONS:
;    The dustem fortran code must be installed
;    The dustem idl wrapper must be installed
; PROCEDURE:
;    This is a dustem plugin
;-

607060e5   Ilyes Choubani   test version
34

7d2d66e7   Ilyes Choubani   replacing polsed,...
35
IF keyword_set(help) THEN BEGIN
ba82c5cf   Ilyes Choubani   improved with mod...
36
  doc_library,'dustem_plugin_modify_spinning_polarization'
7d2d66e7   Ilyes Choubani   replacing polsed,...
37
38
39
40
  goto,the_end
ENDIF


607060e5   Ilyes Choubani   test version
41

7d2d66e7   Ilyes Choubani   replacing polsed,...
42
43
44

IF  ptr_valid((*!dustem_fit).CURRENT_PARAM_VALUES) THEN BEGIN
    p_dii=(*(*!dustem_fit).CURRENT_PARAM_VALUES)    
7d2d66e7   Ilyes Choubani   replacing polsed,...
45
46
    
ENDIF ELSE BEGIN
607060e5   Ilyes Choubani   test version
47
48
49
50
51
52
53
54
          
          
          p_dii=(*(*!dustem_fit).PARAM_INIT_VALUES)
          
                    
      ENDELSE  
      
st=dustem_run(p_dii)      
7d2d66e7   Ilyes Choubani   replacing polsed,...
55

7d2d66e7   Ilyes Choubani   replacing polsed,...
56
57
58

psi=0.
smallp=0. ;supposing the spinning dust is 
607060e5   Ilyes Choubani   test version
59

7d2d66e7   Ilyes Choubani   replacing polsed,...
60
IF keyword_set(key) THEN BEGIN 
ba82c5cf   Ilyes Choubani   improved with mod...
61
  
7d2d66e7   Ilyes Choubani   replacing polsed,...
62
63
  ind1=where(key EQ 1,count1)
  ind2=where(key EQ 2,count2)
ba82c5cf   Ilyes Choubani   improved with mod...
64
  IF count1 NE 0 THEN smallp=val[ind1[0]] ; setting smallp from pd   
7d2d66e7   Ilyes Choubani   replacing polsed,...
65
  IF count2 NE 0 THEN psi=val[ind2[0]] ; setting psi from pd
ba82c5cf   Ilyes Choubani   improved with mod...
66

7d2d66e7   Ilyes Choubani   replacing polsed,...
67
68
ENDIF

607060e5   Ilyes Choubani   test version
69
70
print, 'smallp:'
print, smallp
7d2d66e7   Ilyes Choubani   replacing polsed,...
71

607060e5   Ilyes Choubani   test version
72
73
print, 'psi'
print, psi
7d2d66e7   Ilyes Choubani   replacing polsed,...
74
75


ba82c5cf   Ilyes Choubani   improved with mod...
76

607060e5   Ilyes Choubani   test version
77
fact = 1.e4*1.E20/(4.*!pi)/(3.e8/1.e-6/((st.polsed).wav))*1.e20/1.e7
ba82c5cf   Ilyes Choubani   improved with mod...
78

607060e5   Ilyes Choubani   test version
79
filee=!dustem_dat+'out/SPIN.RES'
7d2d66e7   Ilyes Choubani   replacing polsed,...
80

607060e5   Ilyes Choubani   test version
81
82
readcol,filee,waves,em_g1,em_g2,em_g3,em_tot,format='D,D,D,D,D',delimiter=' ',silent=silent,skipline=8;comment='#'
spawn,'rm -rf '+!dustem_dat+'out/*SPIN*'
7d2d66e7   Ilyes Choubani   replacing polsed,...
83

607060e5   Ilyes Choubani   test version
84
85
Nwaves=n_elements(waves)
out=fltarr(Nwaves,3)
ba82c5cf   Ilyes Choubani   improved with mod...
86

7d2d66e7   Ilyes Choubani   replacing polsed,...
87

607060e5   Ilyes Choubani   test version
88
89
90
out[*,0]=em_tot*fact

polar_ippsi2iqu,out[*,0],SpinningQ,SpinningU,replicate(smallp,Nwaves),replicate(psi,Nwaves) 
7d2d66e7   Ilyes Choubani   replacing polsed,...
91

7d2d66e7   Ilyes Choubani   replacing polsed,...
92
93
out[*,1]=SpinningQ
out[*,2]=SpinningU
ba82c5cf   Ilyes Choubani   improved with mod...
94

7d2d66e7   Ilyes Choubani   replacing polsed,...
95

607060e5   Ilyes Choubani   test version
96
97
98
99

scope='ADD_QSED+ADD_USED'


7d2d66e7   Ilyes Choubani   replacing polsed,...
100
101
return, out

607060e5   Ilyes Choubani   test version
102
103
104

;clean pointers
heap_gc
7d2d66e7   Ilyes Choubani   replacing polsed,...
105
106
107
108
the_end:


end