Как решить функцию между диапазоном (0,2) с различными шагами для х и у в Фортране без массивов? - PullRequest
0 голосов
/ 26 сентября 2018

По сути, мне нужно решить функцию, я буду использовать x^2 * y^3 в качестве примера, но с использованием значений x и y в диапазоне (0,2), с различными шагами для значений x и дляy значений.Например, если шаг был равен 1 для x и y, я бы просто решил функцию для (0,0),(0,2),(2,0), and (2,2).

Я не уверен, как это сделать в Фортране без использования массивов.Я думал об использовании «DO», а затем решал функцию для всех начальных значений "y", используя правильное количество шагов для "x,", но я не уверен, как получить второе значение "y" сзначения "x" сбрасываются, так что "y" можно рассчитать по всем значениям x.

Спасибо!

1 Ответ

0 голосов
/ 27 сентября 2018

Вот простое решение, основанное на конструкции do concurrent в современном Fortran (> 2008), которая гарантированно будет такой же или более эффективной, чем обычные циклы do в Fortran:

program hello
    integer :: x,y
    real    :: stepSizeX = 0.1, stepSizeY = 0.2
    do concurrent(x=0:2:1,y=0:2:1)
        write(*,*) (stepSizeX*x)**2 * (stepSizey*y)**3
    end do
end program Hello

Youможете проверить это здесь (установите стандарт компилятора Fortran на -std = f2008 или -std = gnu).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...