我是超级菜鸟。。。最近遇到点问题老是搞不通,求大家帮忙。我有一个文件,记录了晶体材料的原子种类,原子位置。我编了一个小程序,就是读取原子名(atname)还有坐标,然后计算原子离原点的距离(r),然后把一定距离以内的的原子再重新写在一个文件里。这个我实现了,但是我想进一步把一定距离以内的某种原子挑出来,却老是编译不过,请大家帮我看看错在哪里?
Character*1 atname(8) [这里定义原子名的变量atname]
...
Read(9,'(8a1)')atname [这里从文件9中读取原子名]
...
If (r.lg.200d0.and.atname.eq.'Cd') then
[问题出在这,如果没有and以及后面的条件,程序没问题,但是我加上atname等于'Cd'这个条件以后,总是编译不过去,说:requires a scalar logical expression...]
Write...
...
我认为比较两个字符串是否相等是可以的啊。。。
先谢谢大家帮助!
写错了 lt,不是lg。。。
fortran编程的小问题
答案:2 悬赏:50 手机版
解决时间 2021-04-15 04:44
- 提问者网友:心牵心
- 2021-04-14 14:04
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-04-14 14:58
可能有两个问题:
1,字符串数组定义方法,你改成这样定义试试
character(len=8) atname
2. 你定义了一个8个长度的字符数组,Cd是一个两个长度的字符串
改成
atname(1:2)=='Cd'试试
我手边fortran出了问题没法帮你调试,你先试试
1,字符串数组定义方法,你改成这样定义试试
character(len=8) atname
2. 你定义了一个8个长度的字符数组,Cd是一个两个长度的字符串
改成
atname(1:2)=='Cd'试试
我手边fortran出了问题没法帮你调试,你先试试
全部回答
- 1楼网友:爱难随人意
- 2021-04-14 15:11
很多xp系统和win7系统(至少我了解的)安装fortran6.5后都不能正常运行,估计是安装少了一个license.lic文件。建议你使用fortran6.6,连vsta系统上照样可以运行起来。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯