Blame view

src/idl/dustem_write_spin.pro 2.21 KB
eafc1f8f   Annie Hughes   updated help info
1
PRO dustem_write_spin,dir,st,help=help
98d63e54   Jean-Philippe Bernard   added new files
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
;+
; NAME:
;   dustem_write_spin
;
; PURPOSE:
;   writes information relating to grain spin parameters in the .DAT files 
;
; CATEGORY:
;    DustEMWrap, Distributed, LowLevel, Initialization
;
; CALLING SEQUENCE:
;   dustem_write_spin,dir,st
;
; INPUTS:
;    st   : dustem data structure
;    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.  
;-
98d63e54   Jean-Philippe Bernard   added new files
50

eafc1f8f   Annie Hughes   updated help info
51
52
53
54
55
  IF keyword_set(help) THEN BEGIN
     doc_library,'dustem_write_spin'
     goto,the_end
  ENDIF
 
98d63e54   Jean-Philippe Bernard   added new files
56
57
58
59
60
61
62
63
64
IF ptr_valid(st[0]) THEN BEGIN
  comments=(*st[0]).comments
  Ncomments=n_elements(comments)
ENDIF ELSE BEGIN
  Ncomments=0L
ENDELSE
  
Nst=n_elements(st)
  
98d63e54   Jean-Philippe Bernard   added new files
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
  
;  frmts=[ $
;         '(F8.5,F8.5,F8.5,F8.5,E8.5,E8.5,F8.5)', $
;         '(F8.5,F8.5,F8.5,F8.5,F8.5,F8.5)', $
;         '(F8.5,F8.5,F8.5,F8.5,F8.5)', $
;         '(F8.5,F8.5,F8.5,F8.5,F8.5)', $
;         '(F8.5)']

frmts=[ $
         '(A)', $
         '(A)', $
         '(A)', $
         '(A)', $
         '(A)']

;Start loop over type of grain
FOR i=0L,Nst-1 DO BEGIN
  ;Test if the pointer is pointing to something
  IF ptr_valid(st[i]) THEN BEGIN
      ;Get filename
      ffile=(*st[i]).file
      fv=str_sep(ffile,'/')
      file=dir+fv(n_elements(fv)-1)
      ;Open file
      message,'Will write SPIN file '+file,/continue
      openw,unit,file,/get_lun
      ;Print comments
      IF Ncomments NE 0 THEN BEGIN
        FOR ii=0,Ncomments-1 DO BEGIN
          printf,unit,comments[ii]
        ENDFOR
      ENDIF
      ;Print data
      FOR k=0L,n_elements((*st[i]).fspin)-1 DO BEGIN
        printf,unit,((*st[i]).fspin)[k],format=frmts[k]
      ENDFOR
      close,unit
      free_lun,unit
  ENDIF ELSE BEGIN
    ;left blank intentionally
  ENDELSE
ENDFOR

eafc1f8f   Annie Hughes   updated help info
108
the_end:
98d63e54   Jean-Philippe Bernard   added new files
109
END