pro vmain, value, name, default_name = default_name, group = group
    
if n_params() eq 1 then begin
    if keyword_set(default_name) then dn = default_name $
    else dn = ''

    if keyword_set(group) then begin
        

        base = widget_base(/column, $
                           title = "Top-level name", $
                           /modal, $
                           group = group)

        label = widget_label(base, $
                            value = "Save value to $MAIN$")
        junk = widget_label(base, $
                            value = "or to file")

        junk = cw_ffield(base, $
                         label = "Name:", $
                         uvalue = 'NAME', $
                         /text, $
                         xsize = 10, $
                         /all_events, $
                         value = dn)

        junk = cw_bgroup(base, $
                         /row, $
                         ['Apply', 'Cancel'], $
                         button_uvalue = ['DO', 'DONT'], $
                         uvalue = 'DO', $
                         ids = bids)
        widget_control, bids[1], sensitive = dn ne ''


        state = {vmain_state, $
                 doid: bids[1], $
                 name: dn, $
                 value: ptr_new(value)}

        widget_control, label, set_uvalue = state
        widget_control, base, /real

        xmanager, 'vmain', base

    endif else begin
        name = ''
        read, "Enter variable name (or space to cancel) ["+dn+"] :_", $
          name
        if name eq '' then name = dn
        if name ne ' ' then (scope_varfetch(name, level = 1, /enter)) $
          = value
; junk = routine_names(name, value, $
;                                                 store = 1) 
    endelse
    
endif else if n_params() eq 2 then (scope_varfetch(name, level = 1, /enter)) $
          = value
; junk = routine_names(name, value, $
;                                                         store = 1) 
end