You need a real*16 higher precision software emulation library; they must exist. (google quad precision ?)
I have no experience with using these but expect it would be messy and slow !!
I presume you would require a derived type to store the "real*16" variables and have limited access to the calculations.
Would complex(2) provide the storage ?