“DATA INT / 'STRING' /” problem when compiling with gfortran

浪尽此生 提交于 2019-12-01 11:27:29

Wow - and this was written in 1995? Eep.

As far as I can tell, this is basically Hollerith encoding, encoding character constants in integers (from back before there was a CHARACTER data type). As a quick test, setting one of those integers equal to 4HKYAN seems to give the same answer.

The reason for this here just seems to be to set a flag equal to some constant to test against afterwards. If you want to do the same thing, the modern way to do this is ckyan = transfer('KYAN',ckyan), which takes the bit representation of the character string, converts it to the format of the variable passed as it's second parameter, and returns it.

But here, it looks like the value of the named constant isn't critical as long as the values IWVTX can take on for the different cases are distinct...

By the way, you may already know about this, but the Fortran Wiki has a very handy page on Modernizing Old Fortran; it doens't cover everything (like this one, which I hadn't seen in quite this form before), but it has help for translating a lot of old, non-standard contstructs into modern Fortran.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!