Blame view

src/idl/dustem_write_chrg.pro 2.35 KB
eafc1f8f   Annie Hughes   updated help info
1
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
PRO dustem_write_chrg,dir,st,help=help

;+
; NAME:
;   dustem_write_chrg
;
; PURPOSE:
;   writes information relating to grain charge in the
;   appropriate .DAT files
;
; CATEGORY:
;    DustEMWrap, Distributed, LowLevel, Initialization
;
; CALLING SEQUENCE:
;   dustem_write_chrg,dir,st
;
; INPUTS:
;    st   : dustem data structure
;    file  : output directory for file to 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
51
52
53

;Writes ALL needed CHRG_xxx.DAT files in temporary dustem directory

eafc1f8f   Annie Hughes   updated help info
54
55
56
57
58
59
  IF keyword_set(help) THEN BEGIN
     doc_library,'dustem_write_chrg'
     goto,the_end
  ENDIF

  
98d63e54   Jean-Philippe Bernard   added new files
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
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)
  
;stop
  
;  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)']

e71a7ada   Jean-Philippe Bernard   modified to work ...
85
86
;stop

98d63e54   Jean-Philippe Bernard   added new files
87
88
89
90
;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
e71a7ada   Jean-Philippe Bernard   modified to work ...
91
      frmts=replicate('(A)',n_elements((*st(i)).fchrg))
98d63e54   Jean-Philippe Bernard   added new files
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
      ;Get filename
      ffile=(*st[i]).file
      fv=str_sep(ffile,'/')
      file=dir+fv(n_elements(fv)-1)
      ;Open file
      message,'Will write CHRG 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]).fchrg)-1 DO BEGIN
        printf,unit,((*st[i]).fchrg)[k],format=frmts[k]
      ENDFOR
      close,unit
      free_lun,unit
  ENDIF ELSE BEGIN
    ;left blank intentionally
  ENDELSE
ENDFOR

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