Вы должны полностью понять старый код FORTRAN. EQUIVALENCE использует память без преобразования значений между различными типами данных. Возможно, программист сохранял память с помощью перекрывающихся массивов, которые не использовались одновременно, и EQUIVALENCE можно игнорировать. Возможно, они делали что-то очень сложное, основанное на двоичном представлении определенной платформы, и вам нужно будет выяснить, что они делают.
Существует очень мало оснований использовать ЭКВИВАЛЕНТНОСТЬ в современном Фортране. В большинстве случаев, когда бит необходимо передавать из одного типа в другой без преобразования, вместо него следует использовать внутреннюю функцию TRANSFER.
Это действительно зависит от того, _why_ 'EQUIVALENCE' был использован в первую очередь - это было сделано, чтобы быть« дешевым »в памяти, или было сделано, чтобы обеспечить« структуры », или было сделано для предоставления идентичных данных в разные представления? Я чувствую, что это была ужасная функция, которая значительно усложнила понимание и отладку кода FORTRAN. Перемещение на Java потребует особой осторожности. – sarnold