Set value field before submit
From hook_node_submit():


  This hook is intended for adjusting non-field-related properties


I think the proper place for this will be hook_node_presave() . To change field there you need to set, for example:

$node-&gt;some_field_name[LANGUAGE_NONE][0]['value'] = 'your value';


If you want to set reference field then:

$node-&gt;some_reference_field_name[LANGUAGE_NONE][0]['target_id'] = 'your value';


You may also want to consider using computed_field module for this.