dustem_write_mix.pro 1.11 KB
PRO dustem_write_mix,dir,st

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)
  

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
      frmts=replicate('(A)',n_elements((*st(i)).fmix))
        ;Get filename
        ffile=(*st(i)).file
        fv=str_sep(ffile,'/')
        file=dir+fv(n_elements(fv)-1)
        ;Open file
        message,'Will write MIX 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 FMIX
        FOR k=0L,n_elements((*st(i)).fmix)-1 DO BEGIN
            printf,unit,((*st(i)).fmix)(k),format=frmts[k]
        ENDFOR
        close,unit
        free_lun,unit
   ENDIF ELSE BEGIN
      ;left blank intentionally
   ENDELSE
ENDFOR

END