Blame view

src/idl/dustem_write_qabspol.pro 2.11 KB
eafc1f8f   Annie Hughes   updated help info
1
PRO dustem_write_qabspol,dir,st,i_axis,help=help
427f1205   Jean-Michel Glorian   version 4.2 merged
2

eafc1f8f   Annie Hughes   updated help info
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
;+
; NAME:
;   dustem_write_qabspol
;
; PURPOSE:
;   writes information relating to polarized QABS properties in the .DAT files 
;
; CATEGORY:
;    DustEMWrap, Distributed, LowLevel, Initialization
;
; CALLING SEQUENCE:
;   dustem_write_qabspol,dir,st
;
; INPUTS:
;    st   : dustem data structure
;    i_axis   : indicate whether we are writing params for Stokes I,Q or U
;    dir  : output directory where file will be written
;
; OPTIONAL INPUT PARAMETERS:
;    None
;
; OUTPUTS:
;    None
;
; OPTIONAL OUTPUT PARAMETERS:
;    None
;
; ACCEPTED KEY-WORDS:
;    help     : writes 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_qabspol'
     goto,the_end
  ENDIF

  
427f1205   Jean-Michel Glorian   version 4.2 merged
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
;Caution: dir is the directory only
;Filenames are constructed inside the routine

;stop
Estring='.DAT'
Nfiles=n_elements(st.grains)
frmt="(100E15.5)"

FOR i=0L,Nfiles-1 DO BEGIN

  IF stregex(st.grains(i).type_keywords, 'pol', /bool) THEN BEGIN

  	filename=dir+'Q'+strtrim(i_axis,2)+'_'+st.grains(i).grain_type+Estring
  	Nsizes=n_elements((*st.qabs(i)).sizes)
  	OPENW,unit,filename,/get_lun
  	printf,unit,Nsizes
  	printf,unit,(*st.qabs(i)).sizes,format=frmt
  	NLines=n_elements((*st.qabspol(i_axis-1,i)).qabs)
  	NQabs=n_tags((*st.qabspol(i_axis-1,i)).qabs)
  	vars=fltarr(NQabs,Nlines)

	; Separator
	printf,unit,"# QABS"
  	FOR k=0L,NQabs-1 DO vars(k,*)=((*st.qabspol(i_axis-1,i)).qabs).(k)
  	FOR j=0L,Nlines-1 DO printf,unit,vars(*,j),format=frmt

	; Separator
	printf,unit,"# QSCA"
  	FOR k=0L,NQabs-1 DO vars(k,*)=((*st.qabspol(i_axis-1,i)).qsca).(k)
  	FOR j=0L,Nlines-1 DO printf,unit,vars(*,j),format=frmt
	
  	close,unit
  	free_lun,unit
	
   endif

ENDFOR

END
  close,unit
  free_lun,unit
endif
ENDFOR

eafc1f8f   Annie Hughes   updated help info
102
the_end:
427f1205   Jean-Michel Glorian   version 4.2 merged
103
END