主题:关于windows下cvf写的fortran程序在linux下编译遇到的一个问题
在用CVF写fortran程序时,用的数据类型是隐式声明的,即变量以I到N开头的都是2字节整型:IMPLICIT INTEGER*2(I-N)
但是在data语句:
DATA NAMEI/'SP',' ','GR',' ','AC',' ','DE','N ','CN','L ',
1 'CO','ND','RT',' ','RX','O ','RX','O1','CA','L ','NG',' ',
2 'PO','TA','TH','OR','UR','AN','CG','R ','RX','O2','X1',' ',
3 'X2',' ','X3',' ','X4',' '/
也就是对2字节整型变量赋了字符初值。
这在CVF编译能通过,而且得到了正确的结果。也就是CVF编译器接受这样的赋值
现在程序需要跨平台,所以就在linux下编译,我用gfortran编译器编译它不支持这样的赋值方式,我想问下有没有遇到这种情况的,linux编译器有对应的CVF编译器吗,在网上搜了搜,有个ivf for linux系统有点沾边。
现在我只能
1,找到一个在linux下的编译器支持上面的赋值方式。
2,改变量类型(这太费事了,很多个这样的变量)
3,能将字符转换成所需要的2字节整数,比如'sp'->acsii值115112->二进制01110011 01110000->二字节整数29552.
这样也很复杂,而且不知道行不行的通。
希望专家们出出主意,提提建议。
但是在data语句:
DATA NAMEI/'SP',' ','GR',' ','AC',' ','DE','N ','CN','L ',
1 'CO','ND','RT',' ','RX','O ','RX','O1','CA','L ','NG',' ',
2 'PO','TA','TH','OR','UR','AN','CG','R ','RX','O2','X1',' ',
3 'X2',' ','X3',' ','X4',' '/
也就是对2字节整型变量赋了字符初值。
这在CVF编译能通过,而且得到了正确的结果。也就是CVF编译器接受这样的赋值
现在程序需要跨平台,所以就在linux下编译,我用gfortran编译器编译它不支持这样的赋值方式,我想问下有没有遇到这种情况的,linux编译器有对应的CVF编译器吗,在网上搜了搜,有个ivf for linux系统有点沾边。
现在我只能
1,找到一个在linux下的编译器支持上面的赋值方式。
2,改变量类型(这太费事了,很多个这样的变量)
3,能将字符转换成所需要的2字节整数,比如'sp'->acsii值115112->二进制01110011 01110000->二字节整数29552.
这样也很复杂,而且不知道行不行的通。
希望专家们出出主意,提提建议。