open the output file of low level of theory by Gauss View and save it as input file. Now you can change the functional and basis set of this input file according to the level of theory you desire. I will not recommend to use output of HF as input of DFT as they are different methods of calculation
I assume you have a fully completed and converged calculation, that you submitted with the statement %chk=.chk .
You can now read in anything from that file supplying %oldcheck=.chk. You should also provide a new %chk=.chk for more references. This works after g09.c01.
Reading in the geometry, add geometry=check to the route section. You can also read in the orbitals for the guess with guess=read.
Lets say, your first calculation is optimization using HF/3-21G and second calculation is B3LYP/6-31G. Then, you can set up your two jobs in a single input file in following way:
%chk=filename
# HF/3-21G opt
Title
0 1
O
H 1 1.
H 1 1. 2 109.5
--Link1--
%chk=filename
# B3LYP/6-31G guess=read geom=allcheck
Other way to read the geometry from the checkpoint file of one optimization is:
Open the output file of low level of theory by Gauss View and save as input file. Now you can change the functional and basis set of this input file according to the level of theory you desire.
There are several ways to get low level information to use in high level theory as mentioned by others above. One other simple way is just copy the last coordinates set named "Standard orientation" at the end of Gaussian output file (just before the "optimized parameters" section and use them as input coordinates for your high level calculation (you might need to do some MS excel editing before that to get rid of unwanted columns). This solution is good only if you are a novice to Gaussian like me!! or if you don't have Gauss View.