Fortran 中 IF 中的不可分类语句和其他错误 [英] Unclassifiable statement and other errors in an IF in Fortran

查看:42
本文介绍了Fortran 中 IF 中的不可分类语句和其他错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有代码:

   if i < n then
        x = topsep(1)
        y = topsep(2)
        realvor(n,1) = x + dx
        realvor(n,2) = x + dy   
        imvor(n,1) = (realvor(n,1)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
        imvor(n,2) = (realvor(n,2)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
        tf = .TRUE.
    else 
        x = botsep(1)
        y = botsep(2)
        realvor(n,1) = x + dx
        realvor(n,2) = y - dy
        imvor(n,1) = (realvor(n,1)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
        imvor(n,2) = (realvor(n,2)*(a**2))/((realvor(n,1))**2+(realvor(n,2))**2)
        tf = .FALSE.
    endif

in 都定义为整数,我在 n = 1,100 的 do 循环中.这会引发以下错误:

Both i and n are defined as integers and I am inside a do loop for n = 1,100. This throws up the following errors:

错误:在 (1) 处 'if i< 处的不可分类语句n 然后'
错误:else"处的 (1) 处出现意外的 ELSE 语句
错误:'endif' 处的 (1) 处应有 END DO 语句

Error: Unclassifiable statement at (1) at the 'if i< n then'
Error: Unexpected ELSE statement at (1) at the 'else'
Error: Expecting END DO statement at (1) at the 'endif'

我看不出这些错误来自哪里,无论我如何编写 if 语句(.NE. 等),它似乎都抛出了相同的东西.

I can't see where these errors are coming from, no matter how I write the if statement (.NE. etc.) it seems to throw up the same things.

推荐答案

你忘记了括号!根据 Fortran 标准 (2008, ch. 8.1.7.4),if 语句应为

You forgot the parenthesis! According to the Fortran standard (2008, ch. 8.1.7.4), the if statement should read

if ( i < n ) then

这篇关于Fortran 中 IF 中的不可分类语句和其他错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆