Fortran90格式.f90代码转换为Fortran77格式.f代码咨询
Fortran90代码转Fortran77格式适配方案
针对你需要将.f90后缀的Fortran90代码改为适配.f后缀的Fortran77规范的需求,核心改动点如下:
- 移除Fortran90新增的
::变量声明语法,改用Fortran77标准声明格式 - 替换Fortran90的
do while循环结构,改用Fortran77支持的带标签条件判断+跳转实现同等循环逻辑 - 适配Fortran77固定格式要求:代码从第7列开始书写,前6列为标签/续行标记保留区,补充变量初始化逻辑避免未赋值变量导致的运行异常
转换后可直接编译运行的完整Fortran77代码如下:
PROGRAM P1 IMPLICIT NONE INTEGER CHOICE REAL INPUTVALUE C 初始化选择变量避免随机垃圾值导致逻辑错误 CHOICE = 1 C 循环入口标签 10 IF (CHOICE .NE. 0) THEN PRINT *, ' ' PRINT *, '请输入转换选项(1-6,输入0退出程序):' PRINT *, '-------------' PRINT *, '(1) 磅转千克' PRINT *, '(2) 千克转磅' PRINT *, '(3) 英尺转米' PRINT *, '(4) 米转英尺' PRINT *, '(5) 华氏度转摄氏度' PRINT *, '(6) 摄氏度转华氏度' PRINT *, '(0) 退出程序' PRINT *, '-------------' READ(*,*) CHOICE IF (CHOICE .EQ. 1) THEN PRINT *, '请输入要转换为千克的磅数(整数):' READ(*,*) INPUTVALUE INPUTVALUE = INPUTVALUE / 2.20 PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 2) THEN PRINT *, '请输入要转换为磅的千克数(整数):' READ(*,*) INPUTVALUE INPUTVALUE = INPUTVALUE * 2.20 PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 3) THEN PRINT *, '请输入要转换为米的英尺数(整数):' READ(*,*) INPUTVALUE INPUTVALUE = INPUTVALUE / 3.28 PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 4) THEN PRINT *, '请输入要转换为英尺的米数(整数):' READ(*,*) INPUTVALUE INPUTVALUE = INPUTVALUE * 3.28 PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 5) THEN PRINT *, '请输入要转换为摄氏度的华氏度数值(整数):' READ(*,*) INPUTVALUE INPUTVALUE = (5.0/9.0) * (INPUTVALUE - 32) PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 6) THEN PRINT *, '请输入要转换为华氏度的摄氏度数值(整数):' READ(*,*) INPUTVALUE INPUTVALUE = (INPUTVALUE * 9.0/5.0) + 32 PRINT *, '转换后结果为:', INPUTVALUE ELSE IF (CHOICE .EQ. 0) THEN PRINT *, '程序退出' ENDIF GOTO 10 ENDIF END
如果需要保留英文操作界面,直接替换代码中双引号内的对应字符串即可。
内容的提问来源于stack exchange,提问作者user12577766
相关产品推荐
相关产品推荐

