Software Archive
Read-only legacy content
17060 Discussions

Sending a double (floating-point) field over tcp from OpenVMS 7.2 to Tru64 4.0 using C.

Deleted_U_Intel
Employee
802 Views
My question doesn't involve Fortran. This forum was the closest I could find to my question content. I work for a software vendor and I have a customer that is receiving the double on the Tru64 machine incorrectly. Incorrectly, meaning that one of the bytes is zeroed out when it should have a number in it. This missing byte makes the actual number being represented slightly off. For example, a 4.712000000000000e+03 is sent from the VMS program and is received by the Tru64 program as 4.608000000000000e+03. There is some translation done on the Tru64 side to handle DecG real-format to IEEE real-format. The customer is seeing this problem but I cannot reproduce it here at my company. The customer is using the following compilers: Compaq C++ V6.2-048 for OpenVMS V7.2-1 on VMS and Compaq C++ V6.2-024 for Digital UNIX V4.0F(Rev.1229) on Tru64. My company has a similar setup, but not exactly the same. I'm looking to find out if there are any known problems related to the compilers, hardware or anything else that could affect real numbers.
0 Kudos
1 Reply
Steven_L_Intel1
Employee
802 Views
I'd suggest the comp.os.vms newsgroup as a place to start, but I have a hard time believing that the compilers or hardware are responsible for this behavior.

It would be much more useful to know the binary value sent and received, to see exactly what the difference is. Of course, it would also be necessary to know what code you use to send and receive the data.

Since this isn't related to Fortran, I'd again suggest comp.os.vms, where there are many people who might have some experience in this area.

Steve
0 Kudos
Reply