First of all, take a closer look at your un-vectorized loop. The first few iterations will look like this:
a(2) = b(2)
c(1) = d(2) + d(1)
d(2) = e(2) + 12
a(3) = b(3)
c(2) = d(3) + d(2)
d(3) = e(3) + 12
a(4) = b(4)
c(3) = d(4) + d(3)
d(4) = e(4) + 12
Unless d has been initialized earlier in the code, this could lead to unpredictable behavior (specifically, d(2) is used to calculate c(1) before d(2) itself is assigned).
EDIT: The rest of this post is incorrect, as pointed out by High Performance Mark. I'm leaving it here anyways for reference.
Note that c depends on d, but d does not depend on c. Thus, you could rewrite your code as follows:
a(2: 101) = b(2: 101)
d(2: 101) = e(2: 101) + 12
c(1: 100) = d(2: 101) + d(1: 100)
This is very similar to mtrw's answer, but note the + instead of - and the indices of c in the last line.
cdoes not depend oneat all. ( Both of the present answers are wrong.. )d, and the Nth value ofe. See my new answer.