Fortran90 Несекретное заявление в то время как цикл

Я пытаюсь сделать небольшой фрагмент кода, работающего в Fortran90, и я получаю несекретную ошибку оператора с оператором while. Я посмотрел онлайн и не смог найти, почему это произойдет с помощью оператора while. Вот ошибки, которые я получаю:

Test.f90:11.4:

    while (R < MinimumEnergy) do
    1
Error: Unclassifiable statement at (1)
Test.f90:15.8:

        while (f < R) do
        1
Error: Unclassifiable statement at (1)
Test.f90:19.11:

        enddo
           1
Error: Expecting END PROGRAM statement at (1)
Test.f90:23.7:

    enddo
       1
Error: Expecting END PROGRAM statement at (1)

и вот мой код:

program FD_Number
      REAL :: MinimumEnergy = 4.5;
      REAL :: a = -9;
      REAL :: b = 9;
      REAL R, randomN, f

      REAL :: FD
            FD(R) = (1 + exp(R))**(-1)
      R = 0;

    while (R < MinimumEnergy) do
        R = 999999;
        f = FD(a + (b - a)*R);

        while (f < R) do
            call random_number(randomN)
            f = FD(a + (b - a)*randomN);
            call random_number(R)
        enddo

        R = a + (b - a)*R;
        f = FD(R);
    enddo

    print *, f
end

1 ответ

Решение

У меня был код

while (statement) do
  code
enddo

скорее, чем

identifier: do while (statement
  code
end do identifier
Другие вопросы по тегам