Let's backup a bit,
You say you need to convert a IEEE754 real to 2 integers and need to write a Real via Modbus is the reason for all this.
A real is a number that is two words long (32 bits) and formatted to accommodate a decimal point. If you only need to transfer a number that is less than 65535 or 32767 you can do the math needed to rid yourself of the decimal point (multiply by 10,100,1000 ,ect) and convert to a UINT or INT and transfer through Modbus as one UINT or INT (16bits), you can divide on the other side to return the decimal place as needed. Of course this method limits the size of the number you can transfer depending on the digits needed.
If you need to use a larger real on the receiving end. You will have to look at how memory space is allocated. An INT, UINT and WORD are all just 16 bits of memory space. The INT, UINT, etc comes into play when that 16 bits of memory space is converted between data types or presented to the "real world" as a displayed value. Converting a real to an INT gets messy. Due the need to round to an integer value and the limitation of number size you will potentially lose some of the precision of the real. Your trying to fit 32 bits of data into 16 bits of space with the accompanying limitations of the INT or DINT data type. A real isn't two integers, it's two words or one simplified integer. Taking each of the words of the real and placing them AS-IS (no conversion) into Modbus to be transferred is the easiest way to go if you can't transfer as a real directly. Even if the Modbus register says it is transferring INTs it doesn't matter as it's really just moving 16 bits of memory space. An INT is a word too. In other words, Modbus is transferring words, what's contained in the word is not relevant at least as far as Modbus is concerned (somewhat simplified).
As has been mentioned before, a real is just address space of 2 consecutive words (32 bits) that is two 16 bit spaces put together and interpreted.
Hope this helps
Ken