you might find integer pointers helpful (sometimes called Cray pointers), which are non-standard Fortran but supported also by Intel compilers and gfortran:
I don't know in which context you like to use it, but maybe the associate construct is what you like to have?
Best regards, Johannes
Fortran tries to prevent you from aliasing the same data as integer, real, and double. That's really really bad programming practice, hopefully you know this. In Fortran you can also look at the TRANSFER intrinsic if you really want to treat the data as different intrinsic data types for different purposes.