(form "20040" (size 70 17)
  (heading "DATA SOURCE SPECIFICATIONS")
  (label (position  4  3) (text "Data source type"))
  (label (position  4  5) (text "STRING FILE"))
  (label (position  8  6) (text "Location"))
  (label (position  8  7) (text "Id range"))
  (label (position  8  8) (text "String range"))
  (label (position  8  9) (text "D field"))
  (label (position 35  5) (text "BLOCK MODEL"))
  (label (position 39  6) (text "Model name")) 
  (label (position 39  7) (text "Attribute"))
  (label (position 22 11) (text "Constrain data"))
  (field "datasrc" (position 20  3) (display_length 15) (input allowed)
    (value_in "STRING FILE" "BLOCK MODEL") (default "STRING FILE")
    (auto_next off)
    (translate upper) (null disallowed) (max_length 12) 
    )
  (field "location" (position 20  6) (display_length 10) (input allowed)
    (translate lower) (null allowed) (max_length 26)
    (file (link "id") (extension "*.str"))
    (dependency (value "datasrc") == "STRING FILE")
    )
  (field "id" (position 20  7) (display_length 10) (input allowed)
    (translate upper) (format real_8) (null disallowed) (max_length 16)
    (default "1") (dependency (value "datasrc") == "STRING FILE")
    (help (field "location")))
  (field "range" (position 20   8) (display_length 10) (input allowed)
    (format range) (null disallowed) (max_length 26) (default "1")
    (dependency (value "datasrc") == "STRING FILE")
    (help (field "location")))
  (field "field" (position 20   9) (display_length  3) (input allowed)
    (low_bound 1) (high_bound 100) (default "1")
    (format integer_4) (null disallowed) (max_length 3)
    (dependency (value "datasrc") == "STRING FILE")
    (help (field "location")))
  (field "model" (position 49  6) (display_length 15) (input allowed)
    (translate lower) (null disallowed) (max_length 40)
    (dependency (value "datasrc") == "BLOCK MODEL")
    )
  (field "attribute" (position 49  7) (display_length 15) (input allowed)
    (translate lower) (null disallowed) (max_length "BM_MAX_ATT_NAME_LEN")
    (dependency (value "datasrc") == "BLOCK MODEL")
    (help (field "model")))
  (field "constrain" (position 38  11) (display_length  1) (input allowed)
    (value_in "Y" "N") (default "N")
    (translate upper) (null disallowed) (max_length 1)
    )
  (field "save_points" (position 38 12) (display_length  1) (input allowed)
    (dependency (value "constrain") == "Y")
    (value_in "Y" "N")
    (default "N") (translate upper) (null allowed) (max_length 1)
    )
  (field "point_location" (position 38 13) (display_length 15) (input allowed)
    (translate lower) (null allowed) (max_length 40)
    (file output (link "id") (extension "*.str"))
    (dependency (value "save_points") == "Y")
    )
  (field "point_id" (position 38 14) (display_length 10) (input allowed)
    (translate upper) (format real_8) (null disallowed) (max_length 16)
    (default "1")
    (dependency (value "save_points") == "Y")
    (help (field "point_location")))
  (default_buttons)
)
