Many vowels in Russian, including o, are pronounced differently depending on whether they occur on the stressed position, before the stressed position, or after. In case of o it's like this:
stressed: o
before stressed: a
after stressed: ə (shwa)
Еxample:
хорошо (stressed on the last syllable, therefore pronounced as харашо)
облако (stressed on the first syllable, therefore pronounced as облəкə)
поточечно (stressed on the second syllable, therefore pronounced as паточəчнə.Тhe word has three o's and all are pronounced differently because the first o is before the stressed vowel, the second is stressed, and the third is after the stressed vowel. Note that this is a slightly contrived word meaning point-by-point, I just couldn't come up with a simpler example with three o's with the stress on the middle o).
The masculine понял is stressed on the first syllable, so o is pronounced as o. The feminine поняла is stressed on the last syllable, so o is pronounced as a. In some dialects and by some uneducated people, поняла is stressed on the first syllable, in which case it is pronounced as понял with a schwa in the end.
The shift of stress between different forms of the same word is more than common in Russian.